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:{},appName:"",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;case"left":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;case"left":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 b=O;if(N.css){O.css(N.css)}if(N.shadow){D.addClass("feedbacker-content-shadow")}if(N.contentCss){D.css(N.contentCss)}var Z=0,Q=0;if(N.display==="float"){O.addClass("feedbacker-float feedbacker-float-open");if(N.target!=="body"){var c=B(N.target).css("position");if(c!=="relative"&&c!=="absolute"){B(N.target).css("position","relative")}}var R="paddingLeft";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;case"left":O.addClass("feedbacker-floatLeft");R="paddingRight";break;default:break}if(N.openButton){var U=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(U);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-imgtab")}O.css(R,(K.width()+4)+"px");b=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(Z,Q)}})}}if(N.topText){B("<span/>").appendTo(D).append(N.topText)}var V=B('<ul class="feedbacker-list feedbacker-fieldlist"></ul>').appendTo(D);var T,X,Y,a,W;B.each(N.fields,function(e,f){var g=f.defaultVal||"";if(N.hideDefaulted&&g){f.type="hidden"}T=N.id+"-"+f.id;X=B('<li class="feedbacker-field"></li>').appendTo(V);Y=B('<label for="'+T+'">'+f.label+"</label>").appendTo(X);if(f.required){Y.append('<span class="feedbacker-required">*</span>');W=true}switch(f.type){case"yesno":break;case"longtext":a=B('<textarea id="'+T+'" name="'+T+'" class="feedbacker-textinput feedbacker-biginput"></textarea>').appendTo(X).val(g);break;case"list":var d=J(f.list);a=B('<select id="'+T+'" name="'+T+'" class="feedbacker-listinput"></select>').appendTo(X).append(d).val(g);break;case"hidden":a=B('<input id="'+T+'" name="'+T+'" type="hidden" />').appendTo(X).val(g);X.hide();break;default:a=B('<input id="'+T+'" name="'+T+'" type="text" class="feedbacker-textinput" />').appendTo(X).val(g);break}});Z=D.outerHeight();Q=D.outerWidth();if(N.display==="float"&&N.openButton){G(true)}if(W){B('<span class="feedbacker-required">* = Required</span>').appendTo(D)}var S=B('<div class="feedbacker-buttons"></div>').appendTo(D);if(N.display==="float"){B('<button class="feedbacker-button">Cancel</button>').appendTo(S).click(function(){G();B(".feedbacker-error",D).removeClass("feedbacker-error");return false})}B('<button class="feedbacker-button">Submit</button>').appendTo(S).click(function(){if(M()){var d=B.extend({appName:N.appName},N.customValues);B.each(N.fields,function(f,g){var e="#"+N.id+"-"+g.id;var h=B(e,D).val();d[g.id]=h});E(d);if(N.display==="float"){G()}}return false})}function H(){var Q=document.getElementsByTagName("head")[0]||document.documentElement;if(B('link[href*="feedbacker.css"]',Q).length===0&&N.cssPath){var R=document.createElement("link");R.setAttribute("type","text/css");R.setAttribute("rel","stylesheet");R.setAttribute("class","feedbacker-theme");R.href=N.cssPath;Q.insertBefore(R,Q.firstChild)}}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.addCSS=function(){H()};L.init=function(){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);D.addCSS();B(document).ready(function(){D.init()})}}(Feedbacker,jQuery));
