var GiftCard=function(){return{blnMoreCharsAllowed:false,blnHitLineLimit:false,intMaxLines:5,intMaxCharsPerLine:42,intMaxCharCount:142,intLineCount:1,intTotalCount:0,strOldFormattedText:"",strOldText:"",intOldLineCount:1,intOldTotalCount:0,addText:function(D){var C=getObj("giftcard_message");var B=getObj("previewText");var F="";var E="";var A=0;GiftCard.blnHitLineLimit=false;if(C&&B){E=C.value;F=GiftCard.getFormattedPreviewText(E);if((GiftCard.intLineCount<=GiftCard.intMaxLines)&&(GiftCard.intTotalCount<=GiftCard.intMaxCharCount)){GiftCard.strOldText=E;GiftCard.strOldFormattedText=F;B.innerHTML=F;GiftCard.intOldLineCount=GiftCard.intLineCount;GiftCard.intOldTotalCount=GiftCard.intTotalCount}else{if(GiftCard.intLineCount>GiftCard.intMaxLines){GiftCard.blnHitLineLimit=true}A=GiftCard.getCursorPosition();B.innerHTML=GiftCard.strOldFormattedText;GiftCard.intLineCount=GiftCard.intOldLineCount;GiftCard.intTotalCount=GiftCard.intOldTotalCount;C.value=GiftCard.strOldText;if(A>=1){GiftCard.setCursorPosition(A-1)}}}GiftCard.displayCharacterCount()},getFormattedPreviewText:function(H){var J=1;var K=0;var G=0;var D=0;var C=0;var M=new Array();var F="";var B="";var I="";var L;var A="<br/><br/>";H=GiftCard.replaceCarriageReturns(H,A+" ");H=GiftCard.replaceAll(H," ","\001\002");H=GiftCard.replaceAll(H,"\002"," ");M=H.split("\001");D=M.length;for(var E=0;E<D;E++){L=false;I=M[E];C=I.length;if(I.indexOf(A)>=0){L=true;J++;C-=(A.length+1)}K+=C;if((G+C)>GiftCard.intMaxCharsPerLine){if(C>GiftCard.intMaxCharsPerLine){F=I;if(G!=0){B+=A;J++}while(C>GiftCard.intMaxCharsPerLine){B+=F.substring(0,GiftCard.intMaxCharsPerLine)+A;F=F.substring(GiftCard.intMaxCharsPerLine);J++;C=F.length;if(F.indexOf(A)>=0){C-=(A.length+1)}G=C}B+=F}else{G=0;B+=A+GiftCard.replaceAll(I," ","");J++}}else{B+=I}if(L){G=0}else{G+=C}}GiftCard.intLineCount=J;GiftCard.intTotalCount=K;B=GiftCard.getDisplayableMessage(B);return B},replaceCarriageReturns:function(A,B){A=escape(A);if(A.indexOf("%0D%0A")>-1){A=GiftCard.replaceAll(A,"%0D%0A",B)}else{if(A.indexOf("%0A")>-1){if(/WebKit/i.test(navigator.userAgent)&&/Windows/i.test(navigator.userAgent)){A=GiftCard.replaceAll(A,"%0A%0A",B)}A=GiftCard.replaceAll(A,"%0A",B)}else{if(A.indexOf("%0D")>-1){A=GiftCard.replaceAll(A,"%0D",B)}}}return unescape(A)},getDisplayableMessage:function(A){A=GiftCard.replaceAll(A,"<br/>","\001");A=GiftCard.replaceAll(A,"<","&lt;");A=GiftCard.replaceAll(A,">","&gt;");A=GiftCard.replaceAll(A,"\001","<br/>");A=GiftCard.replaceAll(A," ","&nbsp;");return A},replaceAll:function(A,D,C){var B=A.indexOf(D);while(B!=-1){A=A.replace(D,C);B=A.indexOf(D)}return A},displayCharacterCount:function(){var B="";var D=getObj("charCountText");var C=GiftCard.intMaxCharCount-GiftCard.intTotalCount;var F=GiftCard.intMaxLines-GiftCard.intLineCount;var A="#000000";var E=" characters remaining";if(D){if(C==0){A="#ff0000"}if(C==1){E=" character remaining"}B='<span style="color:'+A+';">'+C+E+"</span>";if(GiftCard.blnHitLineLimit){B+=', <span style="color:red;">Message cannot exceed '+GiftCard.intMaxLines+" lines</span>"}D.innerHTML=B;D.style.color=A}},getCursorPosition:function(){var C=0;var A=getObj("giftcard_message");if(A){if(A.setSelectionRange){C=A.selectionStart}else{if(A.createTextRange){var E="\001";var D=document.selection.createRange();if(D){var B=D.duplicate();B.moveToElementText(A);D.text=E;C=(B.text.indexOf(E));D.moveStart("character",-1);D.text=""}}}}return C},setCursorPosition:function(B){var A=getObj("giftcard_message");if(A){if(A.createTextRange){var C=A.createTextRange();if(C){C.move("character",B);C.select()}}else{if(A.setSelectionRange){A.focus();A.setSelectionRange(B,B)}}}},initAdvancedCard:function(){var A=getObj("previewBackground");var B=getObj("basic");if(A&&B){A.style.display="block";B.value="0"}},cancelEvent:function(A){if(!A){A=window.event}A.cancelBubble=true;if(A.stopPropagation){A.stopPropagation()}},GiftCardRules:{"#giftcard_message":function(A){addEvent(A,"keyup",GiftCard.addText,false);addEvent(A,"keydown",GiftCard.addText,false)}},initGiftCard:function(){if(Behaviour){GiftCard.initAdvancedCard();GiftCard.displayCharacterCount();GiftCard.addText();Behaviour.register(GiftCard.GiftCardRules)}}}}();if(LoadState.addToLoadQueue){LoadState.addToLoadQueue(GiftCard.initGiftCard,null,"GiftCard.initGiftCard()")};