var Feedbacker={};(function(A,B){var C=function(P){var L={},N=B.extend({id:"feedbacker",target:"body",display:"float",orientation:"topright",topText:"",css:null,contentCss:null,animate:true,tabButton:true,tabImage:true,shadow:true,shadowHidden:true,hideDefaulted:false,openButton:{text:"Feedback",target:"",cssClass:""},cssPath:"client/feedbacker/css/feedbacker.css",submitUrl:"handlers/feedbacker/feedback.ashx",jsonp:false,onSuccess:null,onError:null,typeList:["General","Inquiry","Suggestion","Other"],customValues:{},fields:[{id:"Firstname",type:"text",label:"First Name"},{id:"Lastname",type:"text",label:"Last Name"},{id:"Email",type:"text",label:"Email Address",required:true},{id:"Type",type:"list",label:"Type of Feedback",list:[]},{id:"Comment",type:"longtext",label:"Comments",required:true}]},P);var O,D,K;function M(){var Q=true;B.each(N.fields,function(T,U){if(U.required){var R="#"+N.id+"-"+U.id;var S=B(R,D);if(!S.val()){Q=false;S.addClass("feedbacker-error").focus();return false}else{S.removeClass("feedbacker-error")}}});return Q}function E(Q){Q._method="PUT";var R={url:N.submitUrl,data:Q,type:"POST",dataType:"json",success:function(S){if(N.onSuccess&&typeof N.onSuccess==="function"){N.onSuccess.call(L,S)}L.reset()},error:function(S){if(N.onError&&typeof N.onError==="function"){N.onError.call(L,S)}else{alert("Error occurred submitting feedback.")}}};if(N.jsonp){R.type="GET";R.dataType="jsonp";R.jsonp="jsonp_callback"}B.ajax(R)}function G(Q){if(N.tabButton){var R={};switch(N.orientation.toLowerCase()){case"topright":R.height=0;break;case"topleft":R.height=0;break;case"topcenter":R.height=0;break;case"topfull":R.height=0;break;case"right":R.width=0;break;default:break}var S=K.outerHeight()+K.position().top;if(N.animate&&!Q){D.animate(R,"fast",function(){O.css({height:S,width:0});D.hide()})}else{D.css(R);O.css({height:S,width:0});D.hide()}}else{O.hide()}O.removeClass("feedbacker-float-open");if(N.shadow&&N.shadowHidden){D.removeClass("feedbacker-content-shadow")}}function I(Q,S){if(N.tabButton){var R={};switch(N.orientation.toLowerCase()){case"topright":R.height=Q+"px";break;case"topleft":R.height=Q+"px";break;case"topcenter":R.height=Q+"px";break;case"topfull":R.height=Q+"px";break;case"right":R.width=S+"px";break;default:break}if(N.animate){O.css({height:"auto",width:"auto"});D.show();D.animate(R,"fast")}else{O.css({height:"auto",width:"auto"});D.show();D.css(R)}}else{O.show()}O.addClass("feedbacker-float-open");if(N.shadow&&N.shadowHidden){D.addClass("feedbacker-content-shadow")}}function J(Q){var S="";if(Q&&B.isArray(Q)){var T,R;B.each(Q,function(U,V){T="";R="";if(typeof V==="string"){T=V;R=V}else{if(B.isArray(V)){T=V[0];R=V[1]}else{T=V.value;R=V.name}}if(T&&R){S+='<option value="'+T+'">'+R+"</option>"}})}return S}function F(){O=B('<div id="'+N.id+'" class="feedbacker"></div>').appendTo(N.target);D=B('<div class="feedbacker-content"></div>').appendTo(O);var a=O;if(N.css){O.css(N.css)}if(N.shadow){D.addClass("feedbacker-content-shadow")}if(N.contentCss){D.css(N.contentCss)}var Y=0,Q=0;if(N.display==="float"){O.addClass("feedbacker-float feedbacker-float-open");if(N.target!=="body"){var b=B(N.target).css("position");if(b!=="relative"&&b!=="absolute"){B(N.target).css("position","relative")}}switch(N.orientation.toLowerCase()){case"topright":O.addClass("feedbacker-floatTopRight");break;case"topleft":O.addClass("feedbacker-floatTopLeft");break;case"topcenter":O.addClass("feedbacker-floatTopCenter");break;case"topfull":O.addClass("feedbacker-floatTopFull");break;case"right":O.addClass("feedbacker-floatRight");break;default:break}if(N.openButton){var T=N.openButton.target||N.target;if(typeof N.openButton==="string"){K=B(N.openButton)}else{if(N.openButton.target){K=B('<span class="feedbacker-openbutton">'+N.openButton.text+"</span>").appendTo(T);if(N.openButton.cssClass){K.addClass(N.openButton.cssClass)}}else{if(N.tabButton){K=B('<div class="feedbacker-openbutton feedbacker-openbutton-tab"><strong>'+N.openButton.text+"</strong></div>").appendTo(O);if(N.tabImage){K.addClass("feedbacker-openbutton-imgtag")}O.css("paddingLeft",(K.width()+4)+"px");a=D;if(N.openButton.cssClass){K.addClass(N.openButton.cssClass)}}else{K=N.openButton}}}K.click(function(){if(O.hasClass("feedbacker-float-open")){G()}else{I(Y,Q)}})}}if(N.topText){B("<span/>").appendTo(D).append(N.topText)}var U=B('<ul class="feedbacker-list feedbacker-fieldlist"></ul>').appendTo(D);var S,W,X,Z,V;B.each(N.fields,function(d,e){var f=e.defaultVal||"";if(N.hideDefaulted&&f){e.type="hidden"}S=N.id+"-"+e.id;W=B('<li class="feedbacker-field"></li>').appendTo(U);X=B('<label for="'+S+'">'+e.label+"</label>").appendTo(W);if(e.required){X.append('<span class="feedbacker-required">*</span>');V=true}switch(e.type){case"yesno":break;case"longtext":Z=B('<textarea id="'+S+'" name="'+S+'" class="feedbacker-textinput feedbacker-biginput"></textarea>').appendTo(W).val(f);break;case"list":var c=J(e.list);Z=B('<select id="'+S+'" name="'+S+'" class="feedbacker-listinput"></select>').appendTo(W).append(c).val(f);break;case"hidden":Z=B('<input id="'+S+'" name="'+S+'" type="hidden" />').appendTo(W).val(f);W.hide();break;default:Z=B('<input id="'+S+'" name="'+S+'" type="text" class="feedbacker-textinput" />').appendTo(W).val(f);break}});Y=D.outerHeight();Q=D.outerWidth();if(N.display==="float"&&N.openButton){G(true)}if(V){B('<span class="feedbacker-required">* = Required</span>').appendTo(D)}var R=B('<div class="feedbacker-buttons"></div>').appendTo(D);if(N.display==="float"){B('<button class="feedbacker-button">Cancel</button>').appendTo(R).click(function(){G();B(".feedbacker-error",D).removeClass("feedbacker-error");return false})}B('<button class="feedbacker-button">Submit</button>').appendTo(R).click(function(){if(M()){var c=B.extend({},N.customValues);B.each(N.fields,function(e,f){var d="#"+N.id+"-"+f.id;var g=B(d,D).val();c[f.id]=g});E(c);if(N.display==="float"){G()}}return false})}function H(){if(!B("link.feedbacker-theme").length&&N.cssPath){var Q=new Date().getTime();B("head").append('<link href="'+N.cssPath+"?_sc="+Q+'" type="text/css" rel="stylesheet" class="feedbacker-theme" />')}}L.reset=function(){var Q;B.each(N.fields,function(R,S){Q=N.id+"-"+S.id;var T=S.defaultVal||"";B("#"+Q).val(T)})};L.init=function(){H();if(N.typeList.length){B.each(N.fields,function(Q,R){if(R.id.toLowerCase()==="type"&&R.type==="list"){if(!R.list||(R.list&&B.isArray(R.list)&&R.list.length===0)){R.list=N.typeList}}})}F()};return L};A.init=function(E){var D=C(E);B(document).ready(function(){D.init()})}})(Feedbacker,jQuery);