// JavaScript Document
//selectbox
(function($){$.fn.addOption=function(){var a=arguments;if(a.length==0)return this;var sO=true;var m=false;var items,v,t;if(typeof(a[0])=="object"){m=true;items=a[0]}if(a.length>=2){if(typeof(a[1])=="boolean")sO=a[1];else if(typeof(a[2])=="boolean")sO=a[2];if(!m){v=a[0];t=a[1]}}this.each(function(){if(this.nodeName.toLowerCase()!="select")return;if(m){for(var item in items){$(this).addOption(item,items[item],sO)}}else{var option=document.createElement("option");option.value=v,option.text=t;var r=false;var o=this.options;var oL=o.length;var i;for(i=0;i<oL;i++){if(o[i].value==option.value){r=true;break}}if(i<oL&&!r)i=oL;this.options[i]=option;if(sO){o[i].selected=true}}});return this};$.fn.ajaxAddOption=function(url,params,select,fn,args){if(typeof(url)!="string")return this;if(typeof(params)!="object")params={};if(typeof(select)!="boolean")select=true;this.each(function(){var el=this;$.getJSON(url,params,function(r){$(el).addOption(r,select);if(typeof fn=="function"){if(typeof args=="object"){fn.apply(el,args)}else{fn.call(el)}}})});return this};$.fn.removeOption=function(){var a=arguments;if(a.length==0)return this;var ta=typeof(a[0]);var v,i;if(ta=="string"||ta=="object"||ta=="function")v=a[0];else if(ta=="number")i=a[0];else return this;this.each(function(){if(this.nodeName.toLowerCase()!="select")return;if(!!v){var o=this.options;var oL=o.length;for(var i=oL-1;i>=0;i--){if(v.constructor==RegExp){if(o[i].value.match(v)){o[i]=null}}else if(o[i].value==v){o[i]=null}}}else{this.remove(i)}});return this};$.fn.sortOptions=function(ascending){var a=typeof(ascending)=="undefined"?true:!!ascending;this.each(function(){if(this.nodeName.toLowerCase()!="select")return;var o=this.options;var oL=o.length;var sA=[];for(var i=0;i<oL;i++){sA[i]={v:o[i].value,t:o[i].text}}sA.sort(function(o1,o2){o1t=o1.t.toLowerCase(),o2t=o2.t.toLowerCase();if(o1t==o2t)return 0;if(a){return o1t<o2t?-1:1}else{return o1t>o2t?-1:1}});for(var i=0;i<oL;i++){o[i].text=sA[i].t;o[i].value=sA[i].v}});return this};$.fn.selectOptions=function(value,clear){var v=value;var vT=typeof(value);var c=clear||false;if(vT!="string"&&vT!="function"&&vT!="object")return this;this.each(function(){if(this.nodeName.toLowerCase()!="select")return this;var o=this.options;var oL=o.length;for(var i=0;i<oL;i++){if(v.constructor==RegExp){if(o[i].value.match(v)){o[i].selected=true}else if(c){o[i].selected=false}}else{if(o[i].value==v){o[i].selected=true}else if(c){o[i].selected=false}}}});return this};$.fn.copyOptions=function(to,which){var w=which||"selected";if($(to).size()==0)return this;this.each(function(){if(this.nodeName.toLowerCase()!="select")return this;var o=this.options;var oL=o.length;for(var i=0;i<oL;i++){if(w=="all"||(w=="selected"&&o[i].selected)){$(to).addOption(o[i].value,o[i].text)}}});return this};$.fn.containsOption=function(value,fn){var found=false;var v=value;var vT=typeof(v);var fT=typeof(fn);if(vT!="string"&&vT!="function"&&vT!="object")return fT=="function"?this:found;this.each(function(){if(this.nodeName.toLowerCase()!="select")return this;if(found&&fT!="function")return false;var o=this.options;var oL=o.length;for(var i=0;i<oL;i++){if(v.constructor==RegExp){if(o[i].value.match(v)){found=true;if(fT=="function")fn.call(o[i])}}else{if(o[i].value==v){found=true;if(fT=="function")fn.call(o[i])}}}});return fT=="function"?this:found}})(jQuery);
//dom
$.defineTag=function(tag){$[tag.toUpperCase()]=function(){return $._createNode(tag,arguments)}};(function(){var tags=['a','br','button','canvas','div','fieldset','form','h1','h2','h3','hr','img','input','label','legend','li','ol','optgroup','option','p','pre','select','span','strong','table','tbody','td','textarea','tfoot','th','thead','tr','tt','ul'];for(var i=tags.length-1;i>=0;i--){$.defineTag(tags[i])}})();$.NBSP='\u00a0';$._createNode=function(tag,args){var fix={'class':'className','Class':'className'};var e;try{var attrs=args[0]||{};if(tag.toUpperCase()=='INPUT'||tag.toUpperCase()=='SELECT'||tag.toUpperCase()=='TEXTAREA'){var strArgs='<'+tag;var className='';for(var attr in attrs){var a=fix[attr]||attr;if(a!='className'){strArgs+=' '+a+'="'+attrs[attr]+'"'}else{className=attrs[attr]}}strArgs+='>';e=jQuery(strArgs).get(0);if(className!=''){jQuery(e).addClass(className)}}else{e=document.createElement(tag);for(var attr in attrs){var a=fix[attr]||attr;e[a]=attrs[attr]}}for(var i=1;i<args.length;i++){var arg=args[i];if(arg==null)continue;if(arg.constructor!=Array)append(arg);else for(var j=0;j<arg.length;j++)append(arg[j])}}catch(ex){alert('Cannot create <'+tag+'> element:\n'+args.toSource()+'\n'+args);e=null}function append(arg){if(arg==null)return;var c=arg.constructor;switch(typeof arg){case'number':arg=''+arg;case'string':arg=document.createTextNode(arg)}e.appendChild(arg)}return e};
//context menu
(function($){var menu,trigger,content,hash;var defaults={menuStyle:{listStyle:"none",padding:"1px",margin:"0px",backgroundColor:"#fff",border:"1px solid #999",width:"200px"},itemStyle:{margin:"0px",color:"#000",display:"block",cursor:"default",padding:"3px",border:"1px solid #fff",backgroundColor:"#fff"},itemHoverStyle:{border:"1px solid #0a246a",backgroundColor:"#b6bdd2"}};$.fn.contextMenu=function(id,options){options=options||defaults;if(!menu){menu=$("<div id='jqContextMenu'></div>").hide().css({position:"absolute",zIndex:"500"}).appendTo("body").bind("click",function(e){e.stopPropagation()})}hash=hash||[];hash.push({id:id,menuStyle:$.extend({},defaults.menuStyle,options.menuStyle||{}),itemStyle:$.extend({},defaults.itemStyle,options.itemStyle||{}),itemHoverStyle:$.extend({},defaults.itemHoverStyle,options.itemHoverStyle||{}),bindings:options.bindings||{}});var index=hash.length-1;$(this).bind("contextmenu",function(e){display(index,this,e);return false});return this};function display(index,trigger,e){cur=hash[index];content=$(cur.id).find("ul:first").clone(true);content.css(cur.menuStyle).find("li").css(cur.itemStyle).hover(function(){$(this).css(cur.itemHoverStyle)},function(){$(this).css(cur.itemStyle)}).find("img").css({verticalAlign:"middle",paddingRight:"2px"});menu.html(content);$.each(cur.bindings,function(id,func){$(id,menu).bind("click",function(){hide();func(trigger)})});menu.css({"left":e.pageX,"top":e.pageY}).show();$(document).one("click",hide)}function hide(){menu.hide()}$.contextMenu={defaults:function(userDefaults){$.each(userDefaults,function(i){$.extend(defaults[i],this)})}}})(jQuery);$(function(){$("div.contextMenu").hide()});
//json
(function($){var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},s={'array':function(x){var a=['['],b,f,i,l=x.length,v;for(i=0;i<l;i+=1){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=='string'){if(b){a[a.length]=','}a[a.length]=v;b=true}}}a[a.length]=']';return a.join('')},'boolean':function(x){return String(x)},'null':function(x){return"null"},'number':function(x){return isFinite(x)?String(x):'null'},'object':function(x){if(x){if(x instanceof Array){return s.array(x)}var a=['{'],b,f,i,v;for(i in x){v=x[i];f=s[typeof v];if(f){v=f(v);if(typeof v=='string'){if(b){a[a.length]=','}a.push(s.string(i),':',v);b=true}}}a[a.length]='}';return a.join('')}return'null'},'string':function(x){if(/["\\\x00-\x1f]/.test(x)){x=x.replace(/([\x00-\x1f\\"])/g,function(a,b){var c=m[b];if(c){return c}c=b.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16)})}return'"'+x+'"'}};$.toJSON=function(v){var f=isNaN(v)?s[typeof v]:s['number'];if(f)return f(v)};$.parseJSON=function(v,safe){if(safe===undefined)safe=$.parseJSON.safe;if(safe&&!/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(v))return undefined;return eval('('+v+')')};$.parseJSON.safe=false})(jQuery);
//calendar
var popUpCal={selectedDay:new Date().getDate(),selectedMonth:new Date().getMonth(),selectedYear:new Date().getFullYear(),closeText:'Close',prevText:'&lt;Prev',nextText:'Next&gt;',currentText:'Today',appendText:'',buttonText:'...',buttonImage:'',dayNames:new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'),monthNames:new Array('January','February','March','April','May','June','July','August','September','October','November','December'),dateFormat:'DMY/',yearRange:'-10:+10',firstDay:0,minDate:null,maxDate:null,speed:'medium',autoPopUp:false,init:function(){this.popUpShowing=false;this.lastInput=null;$('<div id="calendar_div"></div>').appendTo('body');this.showFunction=function(target){input=(target.nodeName&&target.nodeName.toLowerCase()=='input'?target:this);if(popUpCal.lastInput==input){return}if(input.nodeName.toLowerCase()!='input'){input=$('../input',input)[0]}popUpCal.input=$(input);popUpCal.hideCalendar();popUpCal.setDateFromField();popUpCal.setPos(input,$('#calendar_div'));popUpCal.showCalendar();popUpCal.lastInput=input};this.keyDownFunction=function(e){if(popUpCal.popUpShowing){if(e.keyCode==9){popUpCal.hideCalendar()}else if(e.keyCode==27){popUpCal.hideCalendar(popUpCal.speed)}else if(e.keyCode==33){popUpCal.adjustDate(-1,(e.ctrlKey?'Y':'M'))}else if(e.keyCode==34){popUpCal.adjustDate(+1,(e.ctrlKey?'Y':'M'))}else if(e.keyCode==36&&e.ctrlKey){$('#calendar_current').click()}else if(e.keyCode==37&&e.ctrlKey){popUpCal.adjustDate(-1,'D')}else if(e.keyCode==38&&e.ctrlKey){popUpCal.adjustDate(-7,'D')}else if(e.keyCode==39&&e.ctrlKey){popUpCal.adjustDate(+1,'D')}else if(e.keyCode==40&&e.ctrlKey){popUpCal.adjustDate(+7,'D')}else if(e.keyCode==13){popUpCal.selectDate()}}else if(e.keyCode==36&&e.ctrlKey){popUpCal.showFunction(this);popUpCal.showCalendar()}};this.keyPressFunction=function(e){chr=String.fromCharCode(e.charCode==undefined?e.keyCode:e.charCode);if(chr>' '&&chr!=popUpCal.dateFormat.charAt(3)&&(chr<'0'||chr>'9')){return false}return true}},connectCalendar:function(target){var $input=$(target);$input.after('<span class="calendar_append">'+this.appendText+'</span>');if(this.autoPopUp){$input.focus(this.showFunction)}else{$input.wrap('<span class="calendar_wrap" id="'+$input.attr('name')+'" title="'+($input.attr('title')||'')+'"></span>').after('<button class="calendar_trigger" type="button">'+(this.buttonImage!=''?'<img src="'+this.buttonImage+'" alt="'+this.buttonText+'"/>':this.buttonText)+'</button>');$('button.calendar_trigger',$input.parent('span')).click(this.showFunction)}$input.keydown(this.keyDownFunction).keypress(this.keyPressFunction)},showCalendar:function(){html='<a id="calendar_close">'+this.closeText+'</a>'+'<div id="calendar_links"><a id="calendar_prev">'+this.prevText+'</a>'+'<a id="calendar_current">'+this.currentText+'</a>'+'<a id="calendar_next">'+this.nextText+'</a></div>'+'<div id="calendar_header"><select id="calendar_newMonth">';inMinYear=(this.minDate!=null&&this.minDate.getFullYear()==this.selectedYear);inMaxYear=(this.maxDate!=null&&this.maxDate.getFullYear()==this.selectedYear);for(var month=0;month<12;month++){if(!((inMinYear&&month<this.minDate.getMonth())||(inMaxYear&&month>this.maxDate.getMonth()))){html+='<option value="'+month+'"'+(month==this.selectedMonth?' selected="selected"':'')+'>'+this.getMonthName(month)+'</option>'}}html+='</select> <select id="calendar_newYear">';years=this.yearRange.split(':');if(years.length!=2){year=this.selectedYear-10;endYear=this.selectedYear+10}else if(years[0].charAt(0)=='+'||years[0].charAt(0)=='-'){year=this.selectedYear+parseInt(years[0]);endYear=this.selectedYear+parseInt(years[1])}else{year=parseInt(years[0]);endYear=parseInt(years[1])}if(this.minDate!=null){year=Math.max(year,this.minDate.getFullYear())}if(this.maxDate!=null){endYear=Math.min(endYear,this.maxDate.getFullYear())}for(;year<=endYear;year++){html+='<option value="'+year+'"'+(year==this.selectedYear?' selected="selected"':'')+'>'+year+'</option>'}html+='</select></div>'+'<table id="calendar" cellpadding="0" cellspacing="0"><thead>'+'<tr class="calendar_titleRow">';for(var dow=0;dow<this.dayNames.length;dow++){html+='<td>'+this.dayNames[(dow+this.firstDay)%7].charAt(0)+'</td>'}html+='</tr></thead><tbody>';daysInMonth=this.getDaysInMonth(this.selectedYear,this.selectedMonth);this.selectedDay=Math.min(this.selectedDay,daysInMonth);noPrintDays=(this.getFirstDayOfMonth(this.selectedYear,this.selectedMonth)-this.firstDay+7)%7;printDate=1;numRows=Math.ceil((noPrintDays+daysInMonth)/7);today=new Date();inMinMonth=(this.minDate!=null&&this.minDate.getFullYear()==this.selectedYear&&this.minDate.getMonth()==this.selectedMonth);inMaxMonth=(this.maxDate!=null&&this.maxDate.getFullYear()==this.selectedYear&&this.maxDate.getMonth()==this.selectedMonth);for(var row=0;row<numRows;row++){html+='<tr class="calendar_daysRow">';for(var dow=0;dow<7;dow++){unselectable=((inMinMonth&&printDate<this.minDate.getDate())||(inMaxMonth&&printDate>this.maxDate.getDate()));html+='<td class="calendar_daysCell'+((dow+this.firstDay+6)%7>=5?' calendar_weekEndCell':'')+(printDate==this.selectedDay&&noPrintDays==0?' calendar_daysCellOver':'')+(unselectable?' calendar_unselectable':'')+'"';if((printDate==this.currentDay)&&(this.selectedMonth==this.currentMonth)&&(this.selectedYear==this.currentYear)&&(noPrintDays==0)){html+=' id="calendar_currentDay"'}else if((printDate==today.getDate())&&(this.selectedMonth==today.getMonth())&&(this.selectedYear==today.getFullYear())&&(noPrintDays==0)){html+=' id="calendar_today"'}html+='>';if(noPrintDays==0){if(unselectable){html+=(printDate<=daysInMonth?printDate:'&nbsp;')}else{html+=(printDate<=daysInMonth?'<a>'+printDate+'</a>':'&nbsp;')}printDate++}else{html+='&nbsp;'}html+='</td>';if(noPrintDays>0)noPrintDays--}html+='</tr>'}html+='</tbody></table><!--[if lte IE 6.5]><iframe id="calendar_cover"></iframe><![endif]-->';$('#calendar_div').empty().append(html).show(this.speed);this.popUpShowing=true;this.input[0].focus();this.setupDayLinks();$('#calendar_close').click(function(){popUpCal.hideCalendar(popUpCal.speed)});$('#calendar_prev').click(function(){popUpCal.adjustDate(-1,'M')});$('#calendar_next').click(function(){popUpCal.adjustDate(+1,'M')});$('#calendar_current').click(function(){this.currentDay=new Date().getDate();popUpCal.selectedDay=new Date().getDate();popUpCal.selectedMonth=new Date().getMonth();popUpCal.selectedYear=new Date().getFullYear();popUpCal.showCalendar()});$('#calendar_newMonth').change(function(){popUpCal.selectedMonth=this.options[this.selectedIndex].value-0;popUpCal.adjustDate()});$('#calendar_newYear').change(function(){popUpCal.selectedYear=this.options[this.selectedIndex].value-0;popUpCal.adjustDate()})},setupDayLinks:function(){$('#calendar td[a]').hover(function(){$(this).addClass('calendar_daysCellOver')},function(){$(this).removeClass('calendar_daysCellOver')});$('#calendar a').click(function(){popUpCal.selectedDay=$(this).html();popUpCal.selectDate()})},hideCalendar:function(speed){if(this.popUpShowing){$('#calendar_div').hide(speed);this.popUpShowing=false;this.lastInput=null}},selectDate:function(){this.hideCalendar(this.speed);setVal=this.formatDate(this.selectedDay,this.selectedMonth,this.selectedYear);this.input.val(setVal)},formatDate:function(day,month,year){month++;if(month<10)month='0'+month;if(day<10)day='0'+day;var dateString='';for(var i=0;i<3;i++){dateString+=this.dateFormat.charAt(3)+(this.dateFormat.charAt(i)=='D'?day:(this.dateFormat.charAt(i)=='M'?month:(this.dateFormat.charAt(i)=='Y'?year:'?')))}return dateString.substring(1)},setDateFromField:function(){currentDate=this.input.val().split(this.dateFormat.charAt(3));if(currentDate.length==3){this.currentDay=parseInt(this.trimNumber(currentDate[this.dateFormat.indexOf('D')]));this.currentMonth=parseInt(this.trimNumber(currentDate[this.dateFormat.indexOf('M')]))-1;this.currentYear=parseInt(this.trimNumber(currentDate[this.dateFormat.indexOf('Y')]))}else{this.currentDay=new Date().getDate();this.currentMonth=new Date().getMonth();this.currentYear=new Date().getFullYear()}this.selectedDay=this.currentDay;this.selectedMonth=this.currentMonth;this.selectedYear=this.currentYear;this.adjustDate(0,'D',true)},trimNumber:function(value){if(value=='')return'';while(value.charAt(0)=='0'){value=value.substring(1)}return value},adjustDate:function(offset,period,dontShow){if(period=='D'){this.selectedDay=this.selectedDay+offset}else if(period=='M'){this.selectedMonth=this.selectedMonth+offset}else if(period=='Y'){this.selectedYear=this.selectedYear+offset}date=new Date(this.selectedYear,this.selectedMonth,this.selectedDay);if(this.minDate!=null){date=(date>this.minDate?date:this.minDate)}if(this.maxDate!=null){date=(date<this.maxDate?date:this.maxDate)}this.selectedDay=date.getDate();this.selectedMonth=date.getMonth();this.selectedYear=date.getFullYear();if(!dontShow){this.showCalendar()}},getMonthName:function(month){return this.monthNames[month]},getDayName:function(day){return this.dayNames[day]},getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},setPos:function(targetObj,moveObj){var coords=this.findPos(targetObj);moveObj.css('position','absolute');moveObj.css('left',coords[0]+'px');moveObj.css('top',(coords[1]+targetObj.offsetHeight)+'px')},findPos:function(obj){var curleft=curtop=0;if(obj.offsetParent){curleft=obj.offsetLeft;curtop=obj.offsetTop;while(obj=obj.offsetParent){var origcurleft=curleft;curleft+=obj.offsetLeft;if(curleft<0){curleft=origcurleft}curtop+=obj.offsetTop}}return[curleft,curtop]}};$.fn.calendar=function(a){this.each(function(){if(this.nodeName.toLowerCase()=='input'){popUpCal.connectCalendar(this)}});return this};$(document).ready(function(){popUpCal.init()});
//star rating
jQuery.fn.rating=function(settings){settings=jQuery.extend({cancel:'Cancel Rating',currentValue:''},settings);var prevElem=null;var valueElem=null;var container=jQuery(this);var CancelElem=null;var event={fill:function(el){var stars=jQuery(valueElem).siblings('.star');var index=stars.index(el)+1;jQuery(stars).children('a').css('width','100%').end().lt(index).addClass('star_on').end()},drain:function(){var stars=jQuery(valueElem).siblings('.star');jQuery(stars).filter('.star_on').removeClass('star_on').end().filter('.star_hover').removeClass('star_hover').end()},reset:function(){var stars=jQuery(valueElem).siblings('.star');jQuery(stars).lt(settings.currentValue).addClass('star_on').end()}};return this.each(function(i){if(i==0){valueElem=jQuery('<input type="hidden" name="'+this.name+'" value="" class="'+(this.className||'ajaxRating')+'" >');jQuery(this).before(valueElem);var CancelElem=jQuery('<div class="cancel"><a href="#" title="'+settings.cancel+'">'+settings.cancel+'</a></div>');prevElem=CancelElem;jQuery(this).before(prevElem);jQuery(CancelElem).mouseover(function(){event.drain();jQuery(this).addClass('star_on')}).mouseout(function(){event.reset();jQuery(this).removeClass('star_on')});jQuery(CancelElem).click(function(){settings.currentValue=jQuery(this).children('a').attr('title');$(valueElem).val(settings.currentValue);event.drain();return false})}preElemTemp=jQuery('<div class="star"><a href="#" title="'+this.value+'">'+this.value+'</a></div>');jQuery(prevElem).after(preElemTemp);jQuery(preElemTemp).mouseover(function(){event.drain();event.fill(this)}).mouseout(function(){event.drain();event.reset()});jQuery(preElemTemp).click(function(){settings.currentValue=jQuery(this).children('a').attr('title');jQuery(valueElem).val(settings.currentValue);event.drain();event.fill(this)});prevElem=preElemTemp;preElemTemp=null;$(this).remove();if(i+1==this.length){event.reset()}})};
//catfish
var id=null;var settings=null;$.fn.catfish=function(options){this.settings={closeLink:'none',animation:'slide',height:'50'};if(options)$.extend(this.settings,options);if(this.settings.animation!='slide'&&this.settings.animation!='none'&&this.settings.animation!='fade'){alert('animation can only be set to \'slide\', \'none\' or \'fade\'')}id=this.id;settings=this.settings;$(this).css('position','fixed').css('bottom','0').css('left','0').css('padding','0').css('height',this.settings.height+'px').css('cursor','pointer').css('margin','0').css('width','100%');$('html').css('padding','0 0 '+this.settings.height+'px 0');if(jQuery.browser.msie){$('html').add('body').css('height','100%').css('overflow','hidden').css('width','auto');$(this).css('position','absolute').css('z-index','100').css('overflow','hidden');var wrapper=document.createElement('div');wrapper.id='catfish-wrapper';$('body').append(wrapper);$('body').children().appendTo('#catfish-wrapper');$('body').append(this);$('#catfish-wrapper').css('width','100%').css('padding','0').css('margin','0').css('height','100%').css('overflow','auto').css('position','relative')}if(this.settings.animation=='slide'){$(this).slideDown('slow')}else if(this.settings.animation=='fade'){$(this).fadeIn('slow')}if(this.settings.closeLink!='none'){$(this.settings.closeLink).click(function(){$.closeCatfish();return false})}return this};$.closeCatfish=function(){this.catfish=$('#'+id);$(this.catfish).hide();$('html').css('padding','0')};
//form_builder
jQuery.formBuilder={isXHTML:true,elem:null,classRow:'formRow',classTH:'formLabel',defaultLabel:'......',elemRadio:function(elemName,settings){settings=jQuery.extend({type:'radio',title:"{required:'"+formInitSettings.required+"', 'direction':'horizontal', 'err_msg':'', 'init_val':''}",Class:'ajaxRadio'},settings);jQuery.formBuilder.elem=jQuery.TR({Class:jQuery.formBuilder.classRow},jQuery.TH({Class:jQuery.formBuilder.classTH},jQuery.LABEL({},jQuery.formBuilder.defaultLabel)),jQuery.TD({}));var td=$('td',jQuery.formBuilder.elem);for(var i=1;i<=3;i++){if(i>1)settings.title='';settings.value='<'+i+'>';$(td).append($.INPUT(settings));$(td).append($.LABEL({},settings.value))}return jQuery.formBuilder.getElem()},elemCheckbox:function(elemName,settings){settings=jQuery.extend({type:'checkbox',title:"{required:'"+formInitSettings.required+"', 'direction':'horizontal', 'err_msg':'', 'init_val':''}",Class:'ajaxCheckbox'},settings);jQuery.formBuilder.elem=jQuery.TR({Class:jQuery.formBuilder.classRow},jQuery.TH({Class:jQuery.formBuilder.classTH},jQuery.LABEL({},jQuery.formBuilder.defaultLabel)),jQuery.TD({}));var td=$('td',jQuery.formBuilder.elem);for(var i=1;i<=3;i++){if(i>1)settings.title='';settings.value='<'+i+'>';$(td).append($.INPUT(settings));$(td).append($.LABEL({},settings.value))}return jQuery.formBuilder.getElem()},elemSubmit:function(elemName,settings){settings=jQuery.extend({Class:'button'},settings);jQuery.formBuilder.elemInput(elemName,'submit',settings);return jQuery.formBuilder.getElem()},elemButton:function(elemName,settings){settings=jQuery.extend({Class:'button'},settings);jQuery.formBuilder.elemInput(elemName,'button',settings);return jQuery.formBuilder.getElem()},elemInput:function(elemName,elemType,settings,extra){jQuery.formBuilder.clearElem();settings=jQuery.extend({value:'',Class:'input',type:elemType,name:elemName},settings);var extraSettings=extra||{};jQuery.formBuilder.elem=jQuery.TR({Class:jQuery.formBuilder.classRow},jQuery.TH({Class:jQuery.formBuilder.classTH},jQuery.LABEL({},jQuery.formBuilder.defaultLabel)),jQuery.TD({}));switch(elemType){case'radio':break;default:$('td',jQuery.formBuilder.elem).append(jQuery.INPUT(settings))}},elemSelect:function(elemName,settings){jQuery.formBuilder.clearElem();settings=jQuery.extend({title:"{required:'"+formInitSettings.required+"', 'err_msg':'', 'init_val':''}",Class:'ajaxMenu',name:elemName},settings);jQuery.formBuilder.elem=jQuery.TR({Class:jQuery.formBuilder.classRow},jQuery.TH({Class:jQuery.formBuilder.classTH},$.LABEL({},jQuery.formBuilder.defaultLabel)),jQuery.TD({},jQuery.SELECT(settings)));var slt=$('select',jQuery.formBuilder.elem);var val='';for(var i=1;i<=3;i++){val='<'+i+'>';$(slt).addOption(val,val)}return jQuery.formBuilder.getElem()},elemMultipleSelect:function(elemName,settings){jQuery.formBuilder.clearElem();settings=jQuery.extend({title:"{required:'"+formInitSettings.required+"', 'err_msg':'', 'init_val':''}",Class:'ajaxMenu',multiple:true,size:5,name:elemName},settings);jQuery.formBuilder.elem=jQuery.TR({Class:jQuery.formBuilder.classRow},jQuery.TH({Class:jQuery.formBuilder.classTH},$.LABEL({},jQuery.formBuilder.defaultLabel)),jQuery.TD({},jQuery.SELECT(settings)));var slt=$('select',jQuery.formBuilder.elem);var val='';for(var i=1;i<=3;i++){val='<'+i+'>';$(slt).addOption(val,val,false)}return jQuery.formBuilder.getElem()},elemTextarea:function(elemName,settings){jQuery.formBuilder.clearElem();settings=jQuery.extend({value:'',Class:'ajaxTextarea',rows:'5',cols:'60',name:elemName},settings);jQuery.formBuilder.elem=jQuery.TR({Class:jQuery.formBuilder.classRow},jQuery.TH({Class:jQuery.formBuilder.classTH},$.LABEL({},jQuery.formBuilder.defaultLabel)),jQuery.TD({},jQuery.TEXTAREA(settings)));return jQuery.formBuilder.getElem()},elemFile:function(elemName,settings){settings=jQuery.extend({Class:'ajaxFile',name:elemName},settings);jQuery.formBuilder.elemInput(elemName,'file',settings);return jQuery.formBuilder.getElem()},elemPassword:function(elemName,settings){settings.Class='ajaxPwd';jQuery.formBuilder.elemInput(elemName,'password',settings);return jQuery.formBuilder.getElem()},elemText:function(elemName,settings){settings.Class=settings.Class||'ajaxText';jQuery.formBuilder.elemInput(elemName,'text',settings);return jQuery.formBuilder.getElem()},clearElem:function(){this.elem=null},getElem:function(){return jQuery.formBuilder.elem}};jQuery.extend({elemText:jQuery.formBuilder.elemText,elemPassword:jQuery.formBuilder.elemPassword,elemFile:jQuery.formBuilder.elemFile,elemTextarea:jQuery.formBuilder.elemTextarea,elemMultipleSelect:jQuery.formBuilder.elemMultipleSelect,elemSelect:jQuery.formBuilder.elemSelect,elemButton:jQuery.formBuilder.elemButton,elemSubmit:jQuery.formBuilder.elemSubmit,elemCheckbox:jQuery.formBuilder.elemCheckbox,elemRadio:jQuery.formBuilder.elemRadio});
//form_controller
var currentControlledElem=null;var conCls={text:'text',checkbox:'checkbox',menu:'select',textarea:'textarea',button:'button',radio:'radio',buttonBrowse:'buttonBrowse'};function showControlPanel(currentElem){if(currentControlledElem!=currentElem){currentControlledElem=currentElem;initControlPanel();switch(currentElem.tagName.toUpperCase()){case'TR':var label=$(currentElem).children('th').children('label').get(0);var inputElem=$(currentElem).children('td').children().get(0);$('#ajaxFormId').val($(currentElem).parent().parent().parent().attr('id'));$('#ajaxElemId').val(inputElem.id);var className=inputElem.className;switch(className){case'ajaxText':case'ajaxPwd':showTextProperty(currentElem,inputElem,label);break;case'ajaxTextarea':showTextareaProperty(currentElem,inputElem,label);break;case'calendar_wrap':showDatePickerProperty(currentElem,inputElem,label);break;case'ajaxRadio':case'ajaxMenu':case'ajaxCheckbox':showMixedProperty(currentElem,inputElem,label);break;case'ajaxRating':showRatingProperty(currentElem,inputElem,label);break;case'ajaxFile':showFileProperty(currentElem,inputElem,label);break;case'ajaxHtml':break;default:alert(errors.unknown_form_elem)}break;case'THEAD':case'TFOOT':showFormProperty(currentElem)}$('#'+ids.controlPanel).catfish();$('#'+ids.propertySave).click(function(){formSave()});$('#'+ids.propertyClose).click(function(){initControlPanel()})}else{if(document.getElementById(ids.controlPanel).style.display=='none'){$('#'+ids.controlPanel).catfish()}}};function initControlPanel(){$.closeCatfish();$('#'+ids.tableControlPanel).remove()}function showFormProperty(currentElem){var form=$(currentElem).parent().parent();var formTitle=$(form).children('table').children('thead').children('tr').children('th').html();$('#ajaxFormId').val($(form).attr('id'));var args=$.parseJSON($(form).attr('title'))||{};var btnSubmit=$('#'+$(form).attr('id')+'Submit');var tableBody=$.TABLE({Class:'tableFormController',cellPadding:'0',cellSpacing:'0',id:ids.tableControlPanel},$.THEAD({},$.TR({},$.TH({colSpan:'7'},propertyTitles.ajaxForm),$.TH({colSpan:'2'},$.A({href:'#',id:ids.propertySave},labels.ajaxSave),$.A({href:'#',id:ids.propertyClose},labels.ajaxClose)))),$.TBODY({},$.TR({},$.TH({},labels.formTitle),$.TD({},$.INPUT({type:'text',size:'20',name:'title',value:formTitle,Class:conCls.text})),$.TH({},labels.email_subject),$.TD({},$.INPUT({type:'text',size:'20',name:'email_subject',value:args.email_subject||'',Class:conCls.text})),$.TH({},labels.theme),$.TD({},$.SELECT({name:'theme',Class:conCls.menu,'id':ids.ajaxTheme,colSpan:'5'}))),$.TR({},$.TH({},labels.submit_label),$.TD({},$.INPUT({type:'text',size:'20',name:'submit_label',value:$(btnSubmit).val(),Class:conCls.text})),$.TH({},labels.email_from),$.TD({},$.INPUT({type:'text',size:'20',name:'email_from',value:args.email_from||'',Class:conCls.text})),$.TH({},labels.spam_check),$.TD({},$.INPUT({type:'checkbox',colSpan:'5',id:ids.spamCheck,name:'spam_check',value:'1',Class:conCls.checkbox}))),$.TR({},$.TH({},labels.err_msg),$.TD({},$.INPUT({type:'text',size:'20',name:'err_msg',value:args.err_msg||'',Class:conCls.text})),$.TH({},labels.email_to),$.TD({},$.INPUT({type:'text',size:'20',name:'email_to',value:args.email_to||'',Class:conCls.text})),$.TH({},$.NBSP),$.TD({colSpan:'5'},$.NBSP)),$.TR({},$.TH({},labels.save_mode),$.TD({colSpan:'3',id:ids.saveMode}),$.TH({},$.NBSP),$.TD({colSpan:'5'},$.NBSP))));$('#'+ids.formControlPanel).append(tableBody);if(args.spam_check){$('#'+ids.spamCheck,tableBody).attr('checked','checked')}var saveMode=$('#'+ids.saveMode,tableBody);var selectedMode=args.save_mode||'email';var option={};for(var code in saveModes){option={type:'radio',name:'save_mode',Class:conCls.radio,value:code};if(selectedMode==code){option.checked='checked'}$(saveMode).append($($.LABEL({},saveModes[code])).append($.INPUT(option)))}var theme=$('#'+ids.ajaxTheme,tableBody);var selectedTheme=args.theme||'sky_blue';for(var code in ajaxThemes){$(theme).addOption(code,ajaxThemes[code],(code==selectedTheme?true:false))}tableBody=null};function showTextareaProperty(row,input,label){var className=input.className;var args=$.parseJSON($(input).attr('title'))||{};var tableBody=$.TABLE({Class:'tableFormController',cellPadding:'0',cellSpacing:'0',id:ids.tableControlPanel},$.THEAD({},$.TR({},$.TH({colSpan:'7'},propertyTitles[className]),$.TH({colSpan:'2'},$.A({href:'#',id:ids.propertySave},labels.ajaxSave),$.A({href:'#',id:ids.propertyClose},labels.ajaxClose)))),$.TBODY({},$.TR({},$.TH({},labels.label),$.TD({},$.INPUT({type:'text',size:'20',name:'label',value:label.innerHTML,Class:conCls.text})),$.TH({},labels.char_width),$.TD({},$.INPUT({type:'text',size:'20',name:'char_width',value:$(input).attr('cols')||'',Class:conCls.text})),$.TH({},labels.required),$.TD({},$.INPUT({type:'checkbox',id:ids.ajaxRequired,name:'required',value:'1',Class:conCls.textarea})),$.TH({},labels.rule),$.TD({},$.SELECT({name:'rule',Class:conCls.menu,'id':ids.ajaxRule}))),$.TR({},$.TH({},labels.init_val),$.TD({},$.INPUT({type:'text',size:'20',name:'init_val',value:args.init_val||'',Class:conCls.text})),$.TH({},labels.num_lines),$.TD({},$.INPUT({type:'text',size:'20',name:'num_lines',value:$(input).attr('num_lines')||'',Class:conCls.text})),$.TH({},$.NBSP),$.TD({colSpan:'3'},$.NBSP)),$.TR({},$.TH({},labels.err_msg),$.TD({},$.INPUT({type:'text',size:'20',name:'err_msg',value:args.err_msg||'',Class:conCls.text})),$.TH({},$.NBSP),$.TD({},$.NBSP),$.TH({},$.NBSP),$.TD({colSpan:'3'},$.NBSP))));$('#'+ids.formControlPanel).append(tableBody);if(args.required){$('#'+ids.ajaxRequired,tableBody).attr('checked','checked')}var menu=$('#'+ids.ajaxRule,tableBody);var selectedRule=args.rule||'0';for(var code in rules){$(menu).addOption(code,rules[code],(code==selectedRule?true:false))}tableBody=null};function showMixedProperty(row,input,label){var className=input.className;var menuOptions='';var mixedLabel='';var extraName='';var extraId='';switch(className){case'ajaxRadio':mixedLabel=labels.direction;extraName='direction';extraId=ids.ajaxDirection;$('input[@type=radio]',row).each(function(){menuOptions+=this.value+"\r"});break;case'ajaxCheckbox':mixedLabel=labels.direction;extraId=ids.ajaxDirection;extraName='direction';$('input[@type=checkbox]',row).each(function(){menuOptions+=this.value+"\r"});break;case'ajaxMenu':mixedLabel=labels.ajaxAnswers;extraId=ids.ajaxAnswers;extraName='num_answers';var oL=input.length;for(var i=0;i<oL;i++){menuOptions+=input[i].value+"\r"}break;default:alert('Unknown element.');return false}var args=$.parseJSON($(input).attr('title'))||{};var tableBody=$.TABLE({Class:'tableFormController',cellPadding:'0',cellSpacing:'0',id:ids.tableControlPanel},$.THEAD({},$.TR({},$.TH({colSpan:'4'},propertyTitles[className]),$.TH({colSpan:'2'},$.A({href:'#',id:ids.propertySave},labels.ajaxSave),$.A({href:'#',id:ids.propertyClose},labels.ajaxClose)))),$.TBODY({},$.TR({},$.TH({},labels.label),$.TD({},$.INPUT({type:'text',size:'20',name:'label',value:label.innerHTML,Class:conCls.text})),$.TH({},mixedLabel),$.TD({id:ids.ajaxMixed},$.SELECT({name:extraName,Class:conCls.menu,'id':extraId})),$.TH({},labels.menuOptions),$.TD({rowSpan:'4'},$.TEXTAREA({name:'options',rows:'5',cols:"40",Class:conCls.textarea},menuOptions))),$.TR({},$.TH({},labels.init_val),$.TD({},$.INPUT({type:'text',size:'20',name:'init_val',value:args.init_val||'',Class:conCls.text})),$.TH({},labels.required),$.TD({},$.INPUT({type:'checkbox',id:ids.ajaxRequired,name:'required',value:'1',Class:conCls.checkbox})),$.TH({rowSpan:'3'},$.NBSP)),$.TR({},$.TH({},labels.err_msg),$.TD({},$.INPUT({type:'text',size:'20',name:'err_msg',value:args.err_msg||'',Class:conCls.text})),$.TH({},$.NBSP),$.TD({},$.NBSP)),$.TR({},$.TH({colSpan:'4'},$.NBSP))));$('#'+ids.formControlPanel).append(tableBody);if(args.required){$('#'+ids.ajaxRequired,tableBody).attr('checked','checked')}switch(className){case'ajaxRadio':case'ajaxCheckbox':var selected=args.direction||'horizontal';var slt=$('#'+extraId,tableBody);for(var code in directions){$(slt).addOption(code,directions[code],(code==selected?true:false))}$('#'+ids.ajaxMixed,tableBody).append(slt);break;case'ajaxMenu':var slt=$('#'+extraId,tableBody);var selected=(input.multiple?'multiple':'one');for(var code in answers){$(slt).addOption(code,answers[code],(code==selected?true:false))}break;default:alert('Unknown element.');return false}tableBody=null};function showFileProperty(row,input,label){var className=input.className;var args=$.parseJSON($(input).attr('title'))||{};var tableBody=$.TABLE({Class:'tableFormController',cellPadding:'0',cellSpacing:'0',id:ids.tableControlPanel},$.THEAD({},$.TR({},$.TH({colSpan:'4'},propertyTitles[className]),$.TH({colSpan:'2'},$.A({href:'#',id:ids.propertySave},labels.ajaxSave),$.A({href:'#',id:ids.propertyClose},labels.ajaxClose)))),$.TBODY({},$.TR({},$.TH({},labels.label),$.TD({},$.INPUT({type:'text',size:'20',name:'label',value:label.innerHTML,Class:conCls.text})),$.TH({},labels.max_size),$.TD({},$.INPUT({type:'text',size:'20',name:'max_size',value:args.max_size||'',Class:conCls.text})),$.TH({},labels.required),$.TD({},$.INPUT({type:'checkbox',id:ids.ajaxRequired,name:'required',value:'1',Class:conCls.textarea}))),$.TR({},$.TH({},labels.init_val),$.TD({},$.INPUT({type:'text',size:'20',name:'init_val',value:args.init_val||'',Class:conCls.text})),$.TH({},labels.upload_folder),$.TD({},$.INPUT({type:'text',id:ids.ajaxUploadFolder,size:'20',name:'upload_folder',value:args.upload_folder||'',Class:conCls.text})),$.TH({},$.INPUT({type:'button',Class:conCls.buttonBrowse,value:labels.file_browse,id:ids.folderBrowser})),$.TD({},$.NBSP)),$.TR({},$.TH({},labels.err_msg),$.TD({},$.INPUT({type:'text',size:'20',name:'err_msg',value:args.err_msg||'',Class:conCls.text})),$.TH({},$.NBSP),$.TD({},$.NBSP),$.TH({},$.NBSP),$.TD({},$.NBSP))));$('#'+ids.formControlPanel).append(tableBody);$('#'+ids.folderBrowser,tableBody).click(function(){window.open(formInitSettings.ajaxFileManagerPath,'','width:782; height:440');return false});tableBody=null};function showDatePickerProperty(row,input,label){var className=input.className;var args=$.parseJSON($(input).attr('title'))||{};var tableBody=$.TABLE({Class:'tableFormController',cellPadding:'0',cellSpacing:'0',id:ids.tableControlPanel},$.THEAD({},$.TR({},$.TH({colSpan:'4'},propertyTitles[className]),$.TH({colSpan:'2'},$.A({href:'#',id:ids.propertySave},labels.ajaxSave),$.A({href:'#',id:ids.propertyClose},labels.ajaxClose)))),$.TBODY({},$.TR({},$.TH({},labels.label),$.TD({},$.INPUT({type:'text',size:'20',name:'label',value:label.innerHTML,Class:conCls.text})),$.TH({},labels.dateFormat),$.TD({},$.SELECT({name:'date_format',Class:conCls.menu,'id':ids.ajaxDateFormat})),$.TH({},labels.required),$.TD({},$.INPUT({type:'checkbox',id:ids.ajaxRequired,name:'required',value:'1',Class:conCls.textarea}))),$.TR({},$.TH({},labels.init_val),$.TD({},$.INPUT({type:'text',size:'20',name:'init_val',value:args.init_val||'',Class:conCls.text})),$.TH({},$.NBSP),$.TD({},$.NBSP),$.TH({},$.NBSP),$.TD({},$.NBSP)),$.TR({},$.TH({},labels.err_msg),$.TD({},$.INPUT({type:'text',size:'20',name:'err_msg',value:args.err_msg||'',Class:conCls.text})),$.TH({},$.NBSP),$.TD({},$.NBSP),$.TH({},$.NBSP),$.TD({},$.NBSP))));$('#'+ids.formControlPanel).append(tableBody);if(args.required){$('#'+ids.ajaxRequired,tableBody).attr('checked','checked')}var menu=$('#'+ids.ajaxDateFormat,tableBody);var selectedDateFormat=args.date_format||defaultDateFormat;for(var code in dateFormats){$(menu).addOption(code,dateFormats[code],(code==selectedDateFormat?true:false))}tableBody=null};function showRatingProperty(row,input,label){var className=input.className;var args=$.parseJSON($(input).attr('title'))||{};var tableBody=$.TABLE({Class:'tableFormController',cellPadding:'0',cellSpacing:'0',id:ids.tableControlPanel},$.THEAD({},$.TR({},$.TH({colSpan:'4'},propertyTitles[className]),$.TH({colSpan:'2'},$.A({href:'#',id:ids.propertySave},labels.ajaxSave),$.A({href:'#',id:ids.propertyClose},labels.ajaxClose)))),$.TBODY({},$.TR({},$.TH({},labels.label),$.TD({},$.INPUT({type:'text',size:'20',name:'label',value:label.innerHTML,Class:conCls.text})),$.TH({},labels.num_stars),$.TD({},$.SELECT({name:'num_stars',Class:conCls.menu,'id':ids.ajaxNumStars})),$.TH({},labels.required),$.TD({},$.INPUT({type:'checkbox',id:ids.ajaxRequired,name:'required',value:'1',Class:conCls.textarea}))),$.TR({},$.TH({},labels.init_val),$.TD({},$.INPUT({type:'text',size:'20',name:'init_val',value:args.init_val||'',Class:conCls.text})),$.TH({},$.NBSP),$.TD({},$.NBSP),$.TH({},$.NBSP),$.TD({},$.NBSP)),$.TR({},$.TH({},labels.err_msg),$.TD({},$.INPUT({type:'text',size:'20',name:'err_msg',value:args.err_msg||'',Class:conCls.text})),$.TH({},$.NBSP),$.TD({},$.NBSP),$.TH({},$.NBSP),$.TD({},$.NBSP))));$('#'+ids.formControlPanel).append(tableBody);if(args.required){$('#'+ids.ajaxRequired,tableBody).attr('checked','checked')}var menu=$('#'+ids.ajaxNumStars,tableBody);var numOfStars=$('td div',row).not('.cancel').length;for(var i=3;i<=15;i++){$(menu).addOption(i,i,(i==numOfStars?true:false))}tableBody=null};function showTextProperty(row,input,label){var className=input.className;var args=$.parseJSON($(input).attr('title'))||{};var tableBody=$.TABLE({Class:'tableFormController',cellPadding:'0',cellSpacing:'0',id:ids.tableControlPanel},$.THEAD({},$.TR({},$.TH({colSpan:'7'},propertyTitles[className]),$.TH({colSpan:'2'},$.A({href:'#',id:ids.propertySave},labels.ajaxSave),$.A({href:'#',id:ids.propertyClose},labels.ajaxClose)))),$.TBODY({},$.TR({},$.TH({},labels.label),$.TD({},$.INPUT({type:'text',size:'20',name:'label',value:label.innerHTML,Class:conCls.text})),$.TH({},labels.char_width),$.TD({},$.INPUT({type:'text',size:'20',name:'char_width',value:$(input).attr('size')||'',Class:conCls.text})),$.TH({},labels.required),$.TD({},$.INPUT({type:'checkbox',id:ids.ajaxRequired,name:'required',value:'1',Class:conCls.textarea})),$.TH({},labels.rule),$.TD({},$.SELECT({name:'rule',Class:conCls.menu,'id':ids.ajaxRule}))),$.TR({},$.TH({},labels.init_val),$.TD({},$.INPUT({type:'text',size:'20',name:'init_val',value:args.init_val||'',Class:conCls.text})),$.TH({},labels.max_chars),$.TD({},$.INPUT({type:'text',size:'20',name:'max_chars',value:(input.maxLength||2147483647?'':input.maxLength),Class:conCls.text})),$.TH({},$.NBSP),$.TD({colSpan:'3'},$.NBSP)),$.TR({},$.TH({},labels.err_msg),$.TD({},$.INPUT({type:'text',size:'20',name:'err_msg',value:args.err_msg||'',Class:conCls.text})),$.TH({},$.NBSP),$.TD({},$.NBSP),$.TH({},$.NBSP),$.TD({colSpan:'3'},$.NBSP))));$('#'+ids.formControlPanel).append(tableBody);if(args.required){$('#'+ids.ajaxRequired,tableBody).attr('checked','checked')}var menu=$('#'+ids.ajaxRule,tableBody);var selectedRule=args.rule||'0';for(var code in rules){$(menu).addOption(code,rules[code],(code==selectedRule?true:false))}tableBody=null};
//form_save
function formSave(){if($(currentControlledElem)){switch(currentControlledElem.tagName.toUpperCase()){case'TR':var label=$(currentControlledElem).children('th').children('label').get(0);var inputElem=$(currentControlledElem).children('td').children().get(0);var className=inputElem.className;switch(className){case'ajaxText':case'ajaxPwd':saveTextProperty(currentControlledElem,inputElem,label);break;case'ajaxTextarea':saveTextareaProperty(currentControlledElem,inputElem,label);break;case'calendar_wrap':saveDatePickerProperty(currentControlledElem,inputElem,label);break;case'ajaxRadio':case'ajaxMenu':case'ajaxCheckbox':saveMixedProperty(currentControlledElem,inputElem,label);break;case'ajaxRating':saveRatingProperty(currentControlledElem,inputElem,label);break;case'ajaxFile':saveFileProperty(currentControlledElem,inputElem,label);break;case'ajaxHtml':break;default:alert(errors.unknown_form_elem)}break;case'THEAD':case'TFOOT':saveFormProperty(currentControlledElem)}}return false};function validateEmailMode(){var err="";var frm=document.formController;if(frm.email_subject.value=='')err+=errors.empty_email_subject+"\n\r";if(frm.email_from.value==''||!isValidEmail(frm.email_from.value,true))err+=errors.invalid_email_from+"\n\r";if(frm.email_to.value=='')err+=errors.invalid_email_to+"\n\r";else{var emails=frm.email_to.value.split(',');for(var i=0;i<emails.length;i++){if(!isValidEmail(emails[i],true)){err+=errors.invalid_email_to+"\n\r";break}}}return err};function saveFormProperty(currentElem){var form=$(currentElem).parent().parent();var frm=document.formController;var err='';if(frm.title.value=='')err+=errors.empty_form_title+"\n\r";if(frm.submit_label.value=='')err+=errors.empty_submit_label+"\n\r";if(frm.err_msg.value=='')err+=errors.error_msg+"\n\r";var saveMode='';for(var i=0;i<frm.save_mode.length;i++){if(frm.save_mode[i].checked)saveMode=frm.save_mode[i].value}if(saveMode){switch(saveMode){case'both':case'email':err+=validateEmailMode();break;case'db':break;default:err+=errors.empty_save_mode+"\n\r"}}else{err+=errors.empty_save_mode+"\n\r"}if(frm.theme.selectedIndex<0)err+=errors.empty_theme+"\n\r";if(err){alert(err)}else{var title='';title+='{';title+="err_msg:'"+frm.err_msg.value+"'";title+=",email_subject:'"+frm.email_subject.value+"'";title+=",email_to:'"+frm.email_to.value+"'";title+=",email_from:'"+frm.email_from.value+"'",title+=",theme:'"+frm.theme.options[frm.theme.selectedIndex].value+"'";title+=", spam_check:'"+(frm.spam_check.checked?"1":'0')+"'";title+=",save_mode:'"+saveMode+"'";title+='}';$(form).children('table').children('thead').children('tr').children('th').html(frm.title.value);$('input[@type=submit]',form).val(frm.submit_label.value);$(form).attr('title',title)}};function saveRatingProperty(row,input,label){var frm=document.formController;var err='';if(frm.elements['label'].value==''){err+=errors.empty_lebel+"\n\r"}if((frm.required.checked)&&frm.err_msg.value==''){err+=errors.error_msg+"\n\r"}if((frm.init_val.value!=''&&!isNumber(frm.init_val.value))){err+=errors.digits_init_value+"\n\r"}if(frm.num_stars.selectedIndex<0){err+=errors.empty_num_stars+"\n\r"}if(err!=''){alert(err)}else{var numOfStars=$('td div',row).not('.cancel').length;var inputName=input.name;if(frm.num_stars.options[frm.num_stars.selectedIndex].value!=numOfStars){$('td',row).children().each(function(){$(this).remove()});var settings={Class:'ajaxRating',title:"{required:'"+formInitSettings.required+"', 'err_msg':'', 'init_val':''}",value:'',type:'radio',name:inputName};for(var i=frm.num_stars.options[frm.num_stars.selectedIndex].value;i>0;i--){settings.value=i;$('td',row).prepend(jQuery.INPUT(settings))}$('input[@type=radio]',row).rating({});options={}}input=$('input',row).get(0);var title="";title+="{";$(label).html(frm.elements['label'].value);title+="required:'"+(frm.required.checked?'1':'0')+"'";title+=", num_stars:'"+frm.num_stars.options[frm.num_stars.selectedIndex].value+"'";title+=", init_val:'"+frm.init_val.value+"'";title+=", err_msg:'"+frm.err_msg.value+"'";title+="}";$(input).attr('title',title)}};function saveFileProperty(row,input,label){var frm=document.formController;var err='';if(frm.elements['label'].value==''){err+=errors.empty_lebel+"\n\r"}if((frm.required.checked)&&frm.err_msg.value==''){err+=errors.error_msg+"\n\r"}if(frm.upload_folder==''){err+=errors.empty_upload_folder+"\n\r"}if(frm.max_size.value!=''&&!isNumber(frm.max_size.value)){err+=errors.invalid_max_size}if(err!=''){alert(err)}else{var title="";title+="{";$(label).html(frm.elements['label'].value);title+="required:'"+(frm.required.checked?'1':'0')+"'";title+=", max_size:'"+frm.max_size.value+"'";title+=", upload_folder:'"+frm.upload_folder.value+"'";title+=", err_msg:'"+frm.err_msg.value+"'";title+="}";$(input).attr('title',title)}};function saveMixedProperty(row,input,label){var frm=document.formController;var err='';if(frm.elements['label'].value==''){err+=errors.empty_label+"\n\r"}if((frm.required.checked)&&frm.err_msg.value==''){err+=errors.error_msg+"\n\r"}if(frm.elements['options'].value==''){err+=errors.empty_options+"\n\r"}switch(input.className){case'ajaxRadio':case'ajaxCheckbox':if(frm.direction.selectedIndex<0){err+=errors.empty_direction+"\n\r"}break;case'ajaxMenu':if(frm.num_answers.selectedIndex<0){err+=errors.empty_num_answers+"\n\r"}}if(err!=''){alert(err)}else{var title="";title+="{";$(label).html(frm.elements['label'].value);title+="required:'"+(frm.required.checked?'1':'0')+"'";title+=", init_val:'"+frm.init_val.value+"'";title+=", err_msg:'"+frm.err_msg.value+"'";switch(input.className){case'ajaxRadio':title+=", direction:'"+frm.direction.options[frm.direction.selectedIndex].value+"'";title+="}";var optionValues=frm.elements['options'].value.split('\n');var td=$('td',row).get(0);$(td).empty();settings={name:input.name,type:'radio','title':title,Class:'ajaxRadio'};for(var i=0;i<optionValues.length;i++){settings.value=optionValues[i];if(i>0)settings.title='';if(optionValues[i]!=''){$(td).append($.INPUT(settings));$(td).append($.LABEL({},settings.value));if(frm.direction.options[frm.direction.selectedIndex].value=='vertical')$(td).append($.BR({}))}}break;case'ajaxCheckbox':title+=", direction:'"+frm.direction.options[frm.direction.selectedIndex].value+"'";title+="}";var optionValues=frm.elements['options'].value.split('\n');var td=$('td',row).get(0);$(td).empty();settings={name:input.name,type:'checkbox','title':title,Class:'ajaxCheckbox'};for(var i=0;i<optionValues.length;i++){settings.value=optionValues[i];if(i>0)settings.title='';if(optionValues[i]!=''){$(td).append($.INPUT(settings));$(td).append($.LABEL({},settings.value));if(frm.direction.options[frm.direction.selectedIndex].value=='vertical')$(td).append($.BR({}))}}break;case'ajaxMenu':title+=", direction:'"+frm.num_answers.options[frm.num_answers.selectedIndex].value+"'";title+="}";var optionValues=frm.elements['options'].value.split('\n');$(input).removeOption(/./);$(input).attr('title',title);for(var i=0;i<optionValues.length;i++){if(optionValues[i]!=''){$(input).addOption(optionValues[i],optionValues[i],(frm.init_val.value==optionValues[i]?true:false))}}if(frm.num_answers.options[frm.num_answers.selectedIndex].value=='multiple'){$(input).attr('multiple','multiple')}else{$(input).removeAttr('multiple')}break}title=null}};function saveDatePickerProperty(row,input,label){var frm=document.formController;var err='';if(frm.elements['label'].value==''){err+=errors.empty_lebel+"\n\r"}if((frm.required.checked)&&frm.err_msg.value==''){err+=errors.error_msg+"\n\r"}if(frm.date_format.selectedIndex<0){err+=errors.empty_date_format+"\n\r"}if(err!=''){alert(err)}else{var oldTitle=$.parseJSON($(input).attr('title'))||{date_format:defaultDateFormat};var title="";title+="{";$(label).html(frm.elements['label'].value);title+="required:'"+(frm.required.checked?'1':'0')+"'";title+=", date_format:'"+frm.date_format.options[frm.date_format.selectedIndex].value+"'";title+=", init_val:'"+frm.init_val.value+"'";title+=", err_msg:'"+frm.err_msg.value+"'";title+="}";var realInput=$('input',row).get(0);$(realInput).val(frm.init_val.value);$(realInput).attr('title',title);if(oldTitle.date_format!=frm.date_format.options[frm.date_format.selectedIndex].value){var canledar=$('.calendar_wrap',row).get(0);$(canledar).before(realInput);$(canledar).remove();$(realInput).calendar({dateFormat:frm.date_format.options[frm.date_format.selectedIndex].value})}}};function saveTextProperty(row,input,label){var frm=document.formController;var err='';if(frm.elements['label'].value==''){err+=errors.empty_lebel+"\n\r"}if((frm.required.checked||frm.rule.selectedIndex>0)&&frm.err_msg.value==''){err+=errors.error_msg+"\n\r"}if(frm.char_width.value!=''&&!isNumber(frm.char_width.value)){err+=errors.invalid_char_width+"\n\r"}if(frm.max_chars.value!=''&&!isNumber(frm.max_chars.value)){err+=errors.invalid_max_chars+"\n\r"}if(err!=''){alert(err)}else{var title="";title+="{";$(label).html(frm.elements['label'].value);if(frm.char_width.value==''){$(input).removeAttr('size')}else{$(input).attr('size',frm.char_width.value)}if(frm.max_chars_value==''){$(input).removeAttr('maxlength')}else{$(input).attr('maxlength',frm.max_chars_value)}title+="required:'"+(frm.required.checked?'1':'0')+"'";title+=", rule:'"+frm.rule.options[frm.rule.selectedIndex].value+"'";title+=", init_val:'"+frm.init_val.value+"'";title+=", err_msg:'"+frm.err_msg.value+"'";title+="}";$(input).val(frm.init_val.value);$(input).attr('title',title);title=null}};function saveTextareaProperty(row,input,label){var frm=document.formController;var err='';if(frm.elements['label'].value==''){err+=errors.empty_lebel+"\n\r"}if((frm.required.checked||frm.rule.selectedIndex>0)&&frm.err_msg.value==''){err+=errors.error_msg+"\n\r"}if(frm.char_width.value!=''&&!isNumber(frm.char_width.value)){err+=errors.invalid_char_width+"\n\r"}if(frm.num_lines.value!=''&&!isNumber(frm.num_lines.value)){err+=errors.invalid_num_lines+"\n\r"}if(err!=''){alert(err)}else{var title="";title+="{";$(label).html(frm.elements['label'].value);if(frm.char_width.value==''){$(input).removeAttr('cols')}else{$(input).attr('cols',frm.char_width.value)}if(frm.num_lines.value==''){$(input).removeAttr('rows')}else{$(input).attr('rows',frm.num_lines.value)}title+="required:'"+(frm.required.checked?'1':'0')+"'";title+=", rule:'"+frm.rule.options[frm.rule.selectedIndex].value+"'";title+=", init_val:'"+frm.init_val.value+"'";title+=", err_msg:'"+frm.err_msg.value+"'";title+="}";$(input).val(frm.init_val.value);$(input).attr('title',title);title=null}};
//general
function enableRowMovable(resetRequired){var rowPath='table.tableForm tbody tr th';var rows=$(rowPath);if(typeof(resetRequired)=='boolean'&&resetRequired){$(rows).DraggableDestroy();$(rows).DroppableDestroy()}$(rows).Draggable({ghosting:true,revert:true,onStart:function(){$(this).addClass('formDragging')},onStop:function(){$(this).removeClass('formDragging')},axis:'vertically'});$(rows).Droppable({accept:'formLabel',hoverclass:'formDropHover',tollerance:'pointer',onhover:function(dragged){},onOut:function(dropped){var droppedParent=$(dropped).parent().get(0);var rowParent=$(rowPath).parent();var thisParent=$(this).parent().get(0);var droppedIndex=$(rowParent).index(droppedParent);var thisIndex=rowParent.index(thisParent)},ondrop:function(dropped){var droppedParent=$(dropped).parent().get(0);var rowParent=$(rowPath).parent();var thisParent=$(this).parent().get(0);var droppedIndex=$(rowParent).index(droppedParent);var thisIndex=rowParent.index(thisParent);if(this.parentNode==dropped||droppedIndex==thisIndex||droppedIndex<0||thisIndex<0){return}else{if(droppedIndex>thisIndex){$(droppedParent).insertBefore(thisParent)}else{$(droppedParent).insertAfter(thisParent)}}}})};function enableContextMenu(rowPath){var labels={generalButton:'New Button',submitButton:'Submit'};var options={};$(rowPath).contextMenu('#formBuilderMenu',{menuStyle:{font:"bold 13px Arial, Helvetica",color:"000000",border:"solid 1px #969696"},itemStyle:{backgroundColor:"#EDEDED",backgroundImage:"url(theme/default/images/sm_back_mac.gif)"},itemHoverStyle:{backgroundColor:"#1657B8",backgroundImage:"url(theme/default/images/sm_back_mac2.gif)",cursor:"default",font:"bold 13px Arial, Helvetica",color:"#FFFFFF"},bindings:{"#newText":function(t){options={value:'',title:"{required:'"+formInitSettings.required+"', 'rule':'0', 'err_msg':'', 'init_val':''}"};addNewElement($.elemText('title',options),t);options={}},"#newPassword":function(t){options={value:'',title:"{required:'"+formInitSettings.required+"', 'rule':'0', 'err_msg':'', 'init_val':''}"};addNewElement($.elemPassword('title',options),t);options={}},"#newTextArea":function(t){options={value:'',title:"{required:'"+formInitSettings.required+"', 'rule':'0', 'err_msg':'', 'init_val':'', 'num_lines':formInitSettings.num_lines}"};addNewElement($.elemTextarea('title',options),t)},"#newCheckbox":function(t){addNewElement($.elemCheckbox('title',options),t)},"#newFile":function(t){addNewElement($.elemFile('title',options),t)},"#newMenu":function(t){var newRow=$.elemSelect('title',options);addNewElement(newRow,t);newRow=null},"#newMultipleMenu":function(t){var newRow=$.elemMultipleSelect('title',options);addNewElement(newRow,t);newRow=null},"#newSubmit":function(t){options={value:labels.submitButton};addNewElement($.elemSubmit('title',options),t);options={}},"#newButton":function(t){options={value:labels.generalButton};addNewElement($.elemButton('title',options),t);options={}},"#newDatePicker":function(t){options={Class:'ajaxDatePicker',title:"{required:'', date_format:'"+defaultDateFormat+"'}"};var newRow=$.elemText('title',options);addNewElement(newRow,t,false);$('input',newRow).calendar({dateFormat:defaultDateFormat});showControlPanel(newRow);options={}},"#newStarRating":function(t){var newRow=$.TR({Class:jQuery.formBuilder.classRow},jQuery.TH({'Class':'formLabel'},$.LABEL({},jQuery.formBuilder.defaultLabel)),jQuery.TD({}));addNewElement(newRow,t,false);var settings={Class:'ajaxRating',title:"{required:'"+formInitSettings.required+"', 'err_msg':'', 'init_val':''}",value:'',type:'radio',name:'title'};for(var i=5;i>0;i--){$('td',newRow).prepend(jQuery.INPUT(settings))}$('input[@type=radio]',newRow).rating({});showControlPanel(newRow);options={};newRow=null},"#newRadio":function(t){addNewElement($.elemRadio('title',options),t)},"#formElemDelete":function(t){if(currentControlledElem==t)initControlPanel();deleteElem(t)},"#formElemEdit":function(t){showControlPanel(t)}}})};function addNewElement(elemToAdd,addTo,displayControlPanel){var controlPanelEnable=(typeof(displayControlPanel)=='boolean'?displayControlPanel:true);switch(addTo.tagName.toUpperCase()){case'TR':$(addTo).after(elemToAdd);break;case'THEAD':$(addTo).siblings('tbody').prepend(elemToAdd);break;case'TFOOT':$(addTo).siblings('tbody').append(elemToAdd)}enableRowMovable(true);enableContextMenu(elemToAdd);if(controlPanelEnable){showControlPanel(elemToAdd)}};function deleteElem(currentElem){switch(currentElem.tagName.toUpperCase()){case'TR':if(window.confirm(warnings.delete_form_elem)){$(currentElem).remove()}break;case'THEAD':case'TFOOT':if(window.confirm(warnings.delete_form)){$(currentElem).parent().parent('form').remove()}}return false};function isNumeric(sText,validChars){var ValidChars=validChars||"0123456789.";var IsNumber=true;var Char;for(i=0;i<sText.length&&IsNumber==true;i++){Char=sText.charAt(i);if(ValidChars.indexOf(Char)==-1){IsNumber=false}}return IsNumber};function isNumber(sText){return isNumeric(sText,'0123456789')};function isValidEmail(email,required){if(required==undefined){required=true}if(email==null){if(required){return false}return true}if(email.length==0){if(required){return false}return true}if(!allValidChars(email)){return false}if(email.indexOf("@")<1){return false}else if(email.lastIndexOf(".")<=email.indexOf("@")){return false}else if(email.indexOf("@")==email.length){return false}else if(email.indexOf("..")>=0){return false}else if(email.indexOf(".")==email.length){return false}return true};function allValidChars(email){var parsed=true;var validchars="abcdefghijklmnopqrstuvwxyz0123456789@.-_";for(var i=0;i<email.length;i++){var letter=email.charAt(i).toLowerCase();if(validchars.indexOf(letter)!=-1)continue;parsed=false;break}return parsed};

