You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/03/29 03:14:49 UTC

svn commit: r928555 [3/16] - in /myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources: oam.custom.calendar.DB/ oam.custom.calendar.WH/ oam.custom.calendar.images/ oam.custom.inputHtml.kupudrawers/ oam.custom.inputHtml.kupuimages/ oam.cus...

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/diff_match_patch.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/diff_match_patch.js?rev=928555&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/diff_match_patch.js (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/diff_match_patch.js Mon Mar 29 01:14:43 2010
@@ -0,0 +1 @@
+function diff_match_patch(){this.Diff_Timeout=1.0;this.Diff_EditCost=4;this.Diff_DualThreshold=32;this.Match_Balance=0.5;this.Match_Threshold=0.5;this.Match_MinLength=100;this.Match_MaxLength=1000;this.Patch_Margin=4;function getMaxBits(){var maxbits=0;var oldi=1;var newi=2;while(oldi!=newi){maxbits++;oldi=newi;newi=newi<<1}return maxbits}this.Match_MaxBits=getMaxBits()}var DIFF_DELETE=-1;var DIFF_INSERT=1;var DIFF_EQUAL=0;diff_match_patch.prototype.diff_main=function(text1,text2,opt_checklines){if(text1==text2){return[[DIFF_EQUAL,text1]]}if(typeof opt_checklines=='undefined'){opt_checklines=true}var checklines=opt_checklines;var commonlength=this.diff_commonPrefix(text1,text2);var commonprefix=text1.substring(0,commonlength);text1=text1.substring(commonlength);text2=text2.substring(commonlength);commonlength=this.diff_commonSuffix(text1,text2);var commonsuffix=text1.substring(text1.length-commonlength);text1=text1.substring(0,text1.length-commonlength);text2=text2.substring
 (0,text2.length-commonlength);var diffs=this.diff_compute(text1,text2,checklines);if(commonprefix){diffs.unshift([DIFF_EQUAL,commonprefix])}if(commonsuffix){diffs.push([DIFF_EQUAL,commonsuffix])}this.diff_cleanupMerge(diffs);return diffs};diff_match_patch.prototype.diff_compute=function(text1,text2,checklines){var diffs;if(!text1){return[[DIFF_INSERT,text2]]}if(!text2){return[[DIFF_DELETE,text1]]}var longtext=text1.length>text2.length?text1:text2;var shorttext=text1.length>text2.length?text2:text1;var i=longtext.indexOf(shorttext);if(i!=-1){diffs=[[DIFF_INSERT,longtext.substring(0,i)],[DIFF_EQUAL,shorttext],[DIFF_INSERT,longtext.substring(i+shorttext.length)]];if(text1.length>text2.length){diffs[0][0]=diffs[2][0]=DIFF_DELETE}return diffs}longtext=shorttext=null;var hm=this.diff_halfMatch(text1,text2);if(hm){var text1_a=hm[0];var text1_b=hm[1];var text2_a=hm[2];var text2_b=hm[3];var mid_common=hm[4];var diffs_a=this.diff_main(text1_a,text2_a,checklines);var diffs_b=this.diff_
 main(text1_b,text2_b,checklines);return diffs_a.concat([[DIFF_EQUAL,mid_common]],diffs_b)}if(checklines&&(text1.length<100||text2.length<100)){checklines=false}var linearray;if(checklines){var a=this.diff_linesToChars(text1,text2);text1=a[0];text2=a[1];linearray=a[2]}diffs=this.diff_map(text1,text2);if(!diffs){diffs=[[DIFF_DELETE,text1],[DIFF_INSERT,text2]]}if(checklines){this.diff_charsToLines(diffs,linearray);this.diff_cleanupSemantic(diffs);diffs.push([DIFF_EQUAL,'']);var pointer=0;var count_delete=0;var count_insert=0;var text_delete='';var text_insert='';while(pointer<diffs.length){switch(diffs[pointer][0]){case DIFF_INSERT:count_insert++;text_insert+=diffs[pointer][1];break;case DIFF_DELETE:count_delete++;text_delete+=diffs[pointer][1];break;case DIFF_EQUAL:if(count_delete>=1&&count_insert>=1){var a=this.diff_main(text_delete,text_insert,false);diffs.splice(pointer-count_delete-count_insert,count_delete+count_insert);pointer=pointer-count_delete-count_insert;for(var j=
 a.length-1;j>=0;j--){diffs.splice(pointer,0,a[j])}pointer=pointer+a.length}count_insert=0;count_delete=0;text_delete='';text_insert='';break}pointer++}diffs.pop()}return diffs};diff_match_patch.prototype.diff_linesToChars=function(text1,text2){var lineArray=[];var lineHash={};lineArray[0]='';function diff_linesToCharsMunge(text){var chars='';var lineStart=0;var lineEnd=-1;var lineArrayLength=lineArray.length;while(lineEnd<text.length-1){lineEnd=text.indexOf('\n',lineStart);if(lineEnd==-1){lineEnd=text.length-1}var line=text.substring(lineStart,lineEnd+1);lineStart=lineEnd+1;if(lineHash.hasOwnProperty?lineHash.hasOwnProperty(line):(lineHash[line]!==undefined)){chars+=String.fromCharCode(lineHash[line])}else{chars+=String.fromCharCode(lineArrayLength);lineHash[line]=lineArrayLength;lineArray[lineArrayLength++]=line}}return chars}var chars1=diff_linesToCharsMunge(text1);var chars2=diff_linesToCharsMunge(text2);return[chars1,chars2,lineArray]};diff_match_patch.prototype.diff_cha
 rsToLines=function(diffs,lineArray){for(var x=0;x<diffs.length;x++){var chars=diffs[x][1];var text=[];for(var y=0;y<chars.length;y++){text[y]=lineArray[chars.charCodeAt(y)]}diffs[x][1]=text.join('')}};diff_match_patch.prototype.diff_map=function(text1,text2){var ms_end=(new Date()).getTime()+this.Diff_Timeout*1000;var max_d=text1.length+text2.length-1;var doubleEnd=this.Diff_DualThreshold*2<max_d;var v_map1=[];var v_map2=[];var v1={};var v2={};v1[1]=0;v2[1]=0;var x,y;var footstep;var footsteps={};var done=false;var hasOwnProperty=!!(footsteps.hasOwnProperty);var front=(text1.length+text2.length)%2;for(var d=0;d<max_d;d++){if(this.Diff_Timeout>0&&(new Date()).getTime()>ms_end){return null}v_map1[d]={};for(var k=-d;k<=d;k+=2){if(k==-d||k!=d&&v1[k-1]<v1[k+1]){x=v1[k+1]}else{x=v1[k-1]+1}y=x-k;if(doubleEnd){footstep=x+','+y;if(front&&(hasOwnProperty?footsteps.hasOwnProperty(footstep):(footsteps[footstep]!==undefined))){done=true}if(!front){footsteps[footstep]=d}}while(!done&&x<te
 xt1.length&&y<text2.length&&text1.charAt(x)==text2.charAt(y)){x++;y++;if(doubleEnd){footstep=x+','+y;if(front&&(hasOwnProperty?footsteps.hasOwnProperty(footstep):(footsteps[footstep]!==undefined))){done=true}if(!front){footsteps[footstep]=d}}}v1[k]=x;v_map1[d][x+','+y]=true;if(x==text1.length&&y==text2.length){return this.diff_path1(v_map1,text1,text2)}else if(done){v_map2=v_map2.slice(0,footsteps[footstep]+1);var a=this.diff_path1(v_map1,text1.substring(0,x),text2.substring(0,y));return a.concat(this.diff_path2(v_map2,text1.substring(x),text2.substring(y)))}}if(doubleEnd){v_map2[d]={};for(var k=-d;k<=d;k+=2){if(k==-d||k!=d&&v2[k-1]<v2[k+1]){x=v2[k+1]}else{x=v2[k-1]+1}y=x-k;footstep=(text1.length-x)+','+(text2.length-y);if(!front&&(hasOwnProperty?footsteps.hasOwnProperty(footstep):(footsteps[footstep]!==undefined))){done=true}if(front){footsteps[footstep]=d}while(!done&&x<text1.length&&y<text2.length&&text1.charAt(text1.length-x-1)==text2.charAt(text2.length-y-1)){x++;y++;fo
 otstep=(text1.length-x)+','+(text2.length-y);if(!front&&(hasOwnProperty?footsteps.hasOwnProperty(footstep):(footsteps[footstep]!==undefined))){done=true}if(front){footsteps[footstep]=d}}v2[k]=x;v_map2[d][x+','+y]=true;if(done){v_map1=v_map1.slice(0,footsteps[footstep]+1);var a=this.diff_path1(v_map1,text1.substring(0,text1.length-x),text2.substring(0,text2.length-y));return a.concat(this.diff_path2(v_map2,text1.substring(text1.length-x),text2.substring(text2.length-y)))}}}}return null};diff_match_patch.prototype.diff_path1=function(v_map,text1,text2){var path=[];var x=text1.length;var y=text2.length;var last_op=null;for(var d=v_map.length-2;d>=0;d--){while(1){if(v_map[d].hasOwnProperty?v_map[d].hasOwnProperty((x-1)+','+y):(v_map[d][(x-1)+','+y]!==undefined)){x--;if(last_op===DIFF_DELETE){path[0][1]=text1.charAt(x)+path[0][1]}else{path.unshift([DIFF_DELETE,text1.charAt(x)])}last_op=DIFF_DELETE;break}else if(v_map[d].hasOwnProperty?v_map[d].hasOwnProperty(x+','+(y-1)):(v_map[d
 ][x+','+(y-1)]!==undefined)){y--;if(last_op===DIFF_INSERT){path[0][1]=text2.charAt(y)+path[0][1]}else{path.unshift([DIFF_INSERT,text2.charAt(y)])}last_op=DIFF_INSERT;break}else{x--;y--;if(last_op===DIFF_EQUAL){path[0][1]=text1.charAt(x)+path[0][1]}else{path.unshift([DIFF_EQUAL,text1.charAt(x)])}last_op=DIFF_EQUAL}}}return path};diff_match_patch.prototype.diff_path2=function(v_map,text1,text2){var path=[];var pathLength=0;var x=text1.length;var y=text2.length;var last_op=null;for(var d=v_map.length-2;d>=0;d--){while(1){if(v_map[d].hasOwnProperty?v_map[d].hasOwnProperty((x-1)+','+y):(v_map[d][(x-1)+','+y]!==undefined)){x--;if(last_op===DIFF_DELETE){path[pathLength-1][1]+=text1.charAt(text1.length-x-1)}else{path[pathLength++]=[DIFF_DELETE,text1.charAt(text1.length-x-1)]}last_op=DIFF_DELETE;break}else if(v_map[d].hasOwnProperty?v_map[d].hasOwnProperty(x+','+(y-1)):(v_map[d][x+','+(y-1)]!==undefined)){y--;if(last_op===DIFF_INSERT){path[pathLength-1][1]+=text2.charAt(text2.length-
 y-1)}else{path[pathLength++]=[DIFF_INSERT,text2.charAt(text2.length-y-1)]}last_op=DIFF_INSERT;break}else{x--;y--;if(last_op===DIFF_EQUAL){path[pathLength-1][1]+=text1.charAt(text1.length-x-1)}else{path[pathLength++]=[DIFF_EQUAL,text1.charAt(text1.length-x-1)]}last_op=DIFF_EQUAL}}}return path};diff_match_patch.prototype.diff_commonPrefix=function(text1,text2){if(!text1||!text2||text1.charCodeAt(0)!==text2.charCodeAt(0)){return 0}var pointermin=0;var pointermax=Math.min(text1.length,text2.length);var pointermid=pointermax;var pointerstart=0;while(pointermin<pointermid){if(text1.substring(pointerstart,pointermid)==text2.substring(pointerstart,pointermid)){pointermin=pointermid;pointerstart=pointermin}else{pointermax=pointermid}pointermid=Math.floor((pointermax-pointermin)/2+pointermin)}return pointermid};diff_match_patch.prototype.diff_commonSuffix=function(text1,text2){if(!text1||!text2||text1.charCodeAt(text1.length-1)!==text2.charCodeAt(text2.length-1)){return 0}var pointerm
 in=0;var pointermax=Math.min(text1.length,text2.length);var pointermid=pointermax;var pointerend=0;while(pointermin<pointermid){if(text1.substring(text1.length-pointermid,text1.length-pointerend)==text2.substring(text2.length-pointermid,text2.length-pointerend)){pointermin=pointermid;pointerend=pointermin}else{pointermax=pointermid}pointermid=Math.floor((pointermax-pointermin)/2+pointermin)}return pointermid};diff_match_patch.prototype.diff_halfMatch=function(text1,text2){var longtext=text1.length>text2.length?text1:text2;var shorttext=text1.length>text2.length?text2:text1;if(longtext.length<10||shorttext.length<1){return null}var dmp=this;function diff_halfMatchI(longtext,shorttext,i){var seed=longtext.substring(i,i+Math.floor(longtext.length/4));var j=-1;var best_common='';var best_longtext_a,best_longtext_b,best_shorttext_a,best_shorttext_b;while((j=shorttext.indexOf(seed,j+1))!=-1){var prefixLength=dmp.diff_commonPrefix(longtext.substring(i),shorttext.substring(j));var s
 uffixLength=dmp.diff_commonSuffix(longtext.substring(0,i),shorttext.substring(0,j));if(best_common.length<suffixLength+prefixLength){best_common=shorttext.substring(j-suffixLength,j)+shorttext.substring(j,j+prefixLength);best_longtext_a=longtext.substring(0,i-suffixLength);best_longtext_b=longtext.substring(i+prefixLength);best_shorttext_a=shorttext.substring(0,j-suffixLength);best_shorttext_b=shorttext.substring(j+prefixLength)}}if(best_common.length>=longtext.length/2){return[best_longtext_a,best_longtext_b,best_shorttext_a,best_shorttext_b,best_common]}else{return null}}var hm1=diff_halfMatchI(longtext,shorttext,Math.ceil(longtext.length/4));var hm2=diff_halfMatchI(longtext,shorttext,Math.ceil(longtext.length/2));var hm;if(!hm1&&!hm2){return null}else if(!hm2){hm=hm1}else if(!hm1){hm=hm2}else{hm=hm1[4].length>hm2[4].length?hm1:hm2}var text1_a,text1_b,text2_a,text2_b;if(text1.length>text2.length){text1_a=hm[0];text1_b=hm[1];text2_a=hm[2];text2_b=hm[3]}else{text2_a=hm[0];te
 xt2_b=hm[1];text1_a=hm[2];text1_b=hm[3]}var mid_common=hm[4];return[text1_a,text1_b,text2_a,text2_b,mid_common]};diff_match_patch.prototype.diff_cleanupSemantic=function(diffs){var changes=false;var equalities=[];var equalitiesLength=0;var lastequality=null;var pointer=0;var length_changes1=0;var length_changes2=0;while(pointer<diffs.length){if(diffs[pointer][0]==DIFF_EQUAL){equalities[equalitiesLength++]=pointer;length_changes1=length_changes2;length_changes2=0;lastequality=diffs[pointer][1]}else{length_changes2+=diffs[pointer][1].length;if(lastequality!==null&&(lastequality.length<=length_changes1)&&(lastequality.length<=length_changes2)){diffs.splice(equalities[equalitiesLength-1],0,[DIFF_DELETE,lastequality]);diffs[equalities[equalitiesLength-1]+1][0]=DIFF_INSERT;equalitiesLength--;equalitiesLength--;pointer=equalitiesLength?equalities[equalitiesLength-1]:-1;length_changes1=0;length_changes2=0;lastequality=null;changes=true}}pointer++}if(changes){this.diff_cleanupMerge(d
 iffs)}this.diff_cleanupSemanticLossless(diffs)};diff_match_patch.prototype.diff_cleanupSemanticLossless=function(diffs){function diff_cleanupSemanticScore(one,two,three){var whitespace=/\s/;var score=0;if(one.charAt(one.length-1).match(whitespace)||two.charAt(0).match(whitespace)){score++}if(two.charAt(two.length-1).match(whitespace)||three.charAt(0).match(whitespace)){score++}return score}var pointer=1;while(pointer<diffs.length-1){if(diffs[pointer-1][0]==DIFF_EQUAL&&diffs[pointer+1][0]==DIFF_EQUAL){var equality1=diffs[pointer-1][1];var edit=diffs[pointer][1];var equality2=diffs[pointer+1][1];var commonOffset=this.diff_commonSuffix(equality1,edit);if(commonOffset){var commonString=edit.substring(edit.length-commonOffset);equality1=equality1.substring(0,equality1.length-commonOffset);edit=commonString+edit.substring(0,edit.length-commonOffset);equality2=commonString+equality2}var bestEquality1=equality1;var bestEdit=edit;var bestEquality2=equality2;var bestScore=diff_cleanup
 SemanticScore(equality1,edit,equality2);while(edit.charAt(0)===equality2.charAt(0)){equality1+=edit.charAt(0);edit=edit.substring(1)+equality2.charAt(0);equality2=equality2.substring(1);var score=diff_cleanupSemanticScore(equality1,edit,equality2);if(score>=bestScore){bestScore=score;bestEquality1=equality1;bestEdit=edit;bestEquality2=equality2}}if(diffs[pointer-1][1]!=bestEquality1){diffs[pointer-1][1]=bestEquality1;diffs[pointer][1]=bestEdit;diffs[pointer+1][1]=bestEquality2}}pointer++}};diff_match_patch.prototype.diff_cleanupEfficiency=function(diffs){var changes=false;var equalities=[];var equalitiesLength=0;var lastequality='';var pointer=0;var pre_ins=false;var pre_del=false;var post_ins=false;var post_del=false;while(pointer<diffs.length){if(diffs[pointer][0]==DIFF_EQUAL){if(diffs[pointer][1].length<this.Diff_EditCost&&(post_ins||post_del)){equalities[equalitiesLength++]=pointer;pre_ins=post_ins;pre_del=post_del;lastequality=diffs[pointer][1]}else{equalitiesLength=0;l
 astequality=''}post_ins=post_del=false}else{if(diffs[pointer][0]==DIFF_DELETE){post_del=true}else{post_ins=true}if(lastequality&&((pre_ins&&pre_del&&post_ins&&post_del)||((lastequality.length<this.Diff_EditCost/2)&&(pre_ins+pre_del+post_ins+post_del)==3))){diffs.splice(equalities[equalitiesLength-1],0,[DIFF_DELETE,lastequality]);diffs[equalities[equalitiesLength-1]+1][0]=DIFF_INSERT;equalitiesLength--;lastequality='';if(pre_ins&&pre_del){post_ins=post_del=true;equalitiesLength=0}else{equalitiesLength--;pointer=equalitiesLength?equalities[equalitiesLength-1]:-1;post_ins=post_del=false}changes=true}}pointer++}if(changes){this.diff_cleanupMerge(diffs)}};diff_match_patch.prototype.diff_cleanupMerge=function(diffs){diffs.push([DIFF_EQUAL,'']);var pointer=0;var count_delete=0;var count_insert=0;var text_delete='';var text_insert='';var commonlength;while(pointer<diffs.length){switch(diffs[pointer][0]){case DIFF_INSERT:count_insert++;text_insert+=diffs[pointer][1];pointer++;break;c
 ase DIFF_DELETE:count_delete++;text_delete+=diffs[pointer][1];pointer++;break;case DIFF_EQUAL:if(count_delete!==0||count_insert!==0){if(count_delete!==0&&count_insert!==0){commonlength=this.diff_commonPrefix(text_insert,text_delete);if(commonlength!==0){if((pointer-count_delete-count_insert)>0&&diffs[pointer-count_delete-count_insert-1][0]==DIFF_EQUAL){diffs[pointer-count_delete-count_insert-1][1]+=text_insert.substring(0,commonlength)}else{diffs.splice(0,0,[DIFF_EQUAL,text_insert.substring(0,commonlength)]);pointer++}text_insert=text_insert.substring(commonlength);text_delete=text_delete.substring(commonlength)}commonlength=this.diff_commonSuffix(text_insert,text_delete);if(commonlength!==0){diffs[pointer][1]=text_insert.substring(text_insert.length-commonlength)+diffs[pointer][1];text_insert=text_insert.substring(0,text_insert.length-commonlength);text_delete=text_delete.substring(0,text_delete.length-commonlength)}}if(count_delete===0){diffs.splice(pointer-count_delete-co
 unt_insert,count_delete+count_insert,[DIFF_INSERT,text_insert])}else if(count_insert===0){diffs.splice(pointer-count_delete-count_insert,count_delete+count_insert,[DIFF_DELETE,text_delete])}else{diffs.splice(pointer-count_delete-count_insert,count_delete+count_insert,[DIFF_DELETE,text_delete],[DIFF_INSERT,text_insert])}pointer=pointer-count_delete-count_insert+(count_delete?1:0)+(count_insert?1:0)+1}else if(pointer!==0&&diffs[pointer-1][0]==DIFF_EQUAL){diffs[pointer-1][1]+=diffs[pointer][1];diffs.splice(pointer,1)}else{pointer++}count_insert=0;count_delete=0;text_delete='';text_insert='';break}}if(diffs[diffs.length-1][1]===''){diffs.pop()}var changes=false;pointer=1;while(pointer<diffs.length-1){if(diffs[pointer-1][0]==DIFF_EQUAL&&diffs[pointer+1][0]==DIFF_EQUAL){if(diffs[pointer][1].substring(diffs[pointer][1].length-diffs[pointer-1][1].length)==diffs[pointer-1][1]){diffs[pointer][1]=diffs[pointer-1][1]+diffs[pointer][1].substring(0,diffs[pointer][1].length-diffs[pointer-1
 ][1].length);diffs[pointer+1][1]=diffs[pointer-1][1]+diffs[pointer+1][1];diffs.splice(pointer-1,1);changes=true}else if(diffs[pointer][1].substring(0,diffs[pointer+1][1].length)==diffs[pointer+1][1]){diffs[pointer-1][1]+=diffs[pointer+1][1];diffs[pointer][1]=diffs[pointer][1].substring(diffs[pointer+1][1].length)+diffs[pointer+1][1];diffs.splice(pointer+1,1);changes=true}}pointer++}if(changes){this.diff_cleanupMerge(diffs)}};diff_match_patch.prototype.diff_addIndex=function(diffs){var i=0;for(var x=0;x<diffs.length;x++){diffs[x][2]=i;if(diffs[x][0]!==DIFF_DELETE){i+=diffs[x][1].length}}};diff_match_patch.prototype.diff_xIndex=function(diffs,loc){var chars1=0;var chars2=0;var last_chars1=0;var last_chars2=0;var x;for(x=0;x<diffs.length;x++){if(diffs[x][0]!==DIFF_INSERT){chars1+=diffs[x][1].length}if(diffs[x][0]!==DIFF_DELETE){chars2+=diffs[x][1].length}if(chars1>loc){break}last_chars1=chars1;last_chars2=chars2}if(diffs.length!=x&&diffs[x][0]===DIFF_DELETE){return last_chars2}
 return last_chars2+(loc-last_chars1)};diff_match_patch.prototype.diff_prettyHtml=function(diffs){this.diff_addIndex(diffs);var html=[];for(var x=0;x<diffs.length;x++){var m=diffs[x][0];var t=diffs[x][1];var i=diffs[x][2];t=t.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');t=t.replace(/\n/g,'&para;<BR>');switch(m){case DIFF_INSERT:html[x]='<INS STYLE="background:#E6FFE6;" TITLE="i='+i+'">'+t+'</INS>';break;case DIFF_DELETE:html[x]='<DEL STYLE="background:#FFE6E6;" TITLE="i='+i+'">'+t+'</DEL>';break;case DIFF_EQUAL:html[x]='<SPAN TITLE="i='+i+'">'+t+'</SPAN>';break}}return html.join('')};diff_match_patch.prototype.diff_text1=function(diffs){var txt=[];for(var x=0;x<diffs.length;x++){if(diffs[x][0]!==DIFF_INSERT){txt[x]=diffs[x][1]}}return txt.join('')};diff_match_patch.prototype.diff_text2=function(diffs){var txt=[];for(var x=0;x<diffs.length;x++){if(diffs[x][0]!==DIFF_DELETE){txt[x]=diffs[x][1]}}return txt.join('')};diff_match_patch.prototype.diff_toDelta=func
 tion(diffs){var txt=[];for(var x=0;x<diffs.length;x++){switch(diffs[x][0]){case DIFF_INSERT:txt[x]='+'+encodeURI(diffs[x][1]);break;case DIFF_DELETE:txt[x]='-'+diffs[x][1].length;break;case DIFF_EQUAL:txt[x]='='+diffs[x][1].length;break}}return txt.join('\t').replace(/%20/g,' ')};diff_match_patch.prototype.diff_fromDelta=function(text1,delta){var diffs=[];var diffsLength=0;var pointer=0;var tokens=delta.split(/\t/g);for(var x=0;x<tokens.length;x++){var param=tokens[x].substring(1);switch(tokens[x].charAt(0)){case'+':try{diffs[diffsLength++]=[DIFF_INSERT,decodeURI(param)]}catch(ex){throw new Error('Illegal escape in diff_fromDelta: '+param)}break;case'-':case'=':var n=parseInt(param,10);if(isNaN(n)||n<0){throw new Error('Invalid number in diff_fromDelta: '+param)}var text=text1.substring(pointer,pointer+=n);if(tokens[x].charAt(0)=='='){diffs[diffsLength++]=[DIFF_EQUAL,text]}else{diffs[diffsLength++]=[DIFF_DELETE,text]}break;default:if(tokens[x]){throw new Error('Invalid diff 
 operation in diff_fromDelta: '+tokens[x])}}}if(pointer!=text1.length){throw new Error('Delta length ('+pointer+') does not equal source text length ('+text1.length+').')}return diffs};diff_match_patch.prototype.match_main=function(text,pattern,loc){loc=Math.max(0,Math.min(loc,text.length-pattern.length));if(text==pattern){return 0}else if(text.length===0){return null}else if(text.substring(loc,loc+pattern.length)==pattern){return loc}else{return this.match_bitap(text,pattern,loc)}};diff_match_patch.prototype.match_bitap=function(text,pattern,loc){if(pattern.length>this.Match_MaxBits){throw new Error('Pattern too long for this browser.')}var s=this.match_alphabet(pattern);var score_text_length=text.length;score_text_length=Math.max(score_text_length,this.Match_MinLength);score_text_length=Math.min(score_text_length,this.Match_MaxLength);var dmp=this;function match_bitapScore(e,x){var d=Math.abs(loc-x);return(e/pattern.length/dmp.Match_Balance)+(d/score_text_length/(1.0-dmp.Ma
 tch_Balance))}var score_threshold=this.Match_Threshold;var best_loc=text.indexOf(pattern,loc);if(best_loc!=-1){score_threshold=Math.min(match_bitapScore(0,best_loc),score_threshold)}best_loc=text.lastIndexOf(pattern,loc+pattern.length);if(best_loc!=-1){score_threshold=Math.min(match_bitapScore(0,best_loc),score_threshold)}var matchmask=1<<(pattern.length-1);best_loc=null;var bin_min,bin_mid;var bin_max=Math.max(loc+loc,text.length);var last_rd;for(var d=0;d<pattern.length;d++){var rd=Array(text.length);bin_min=loc;bin_mid=bin_max;while(bin_min<bin_mid){if(match_bitapScore(d,bin_mid)<score_threshold){bin_min=bin_mid}else{bin_max=bin_mid}bin_mid=Math.floor((bin_max-bin_min)/2+bin_min)}bin_max=bin_mid;var start=Math.max(0,loc-(bin_mid-loc)-1);var finish=Math.min(text.length-1,pattern.length+bin_mid);if(text.charAt(finish)==pattern.charAt(pattern.length-1)){rd[finish]=(1<<(d+1))-1}else{rd[finish]=(1<<d)-1}for(var j=finish-1;j>=start;j--){if(d===0){rd[j]=((rd[j+1]<<1)|1)&s[text.c
 harAt(j)]}else{rd[j]=((rd[j+1]<<1)|1)&s[text.charAt(j)]|((last_rd[j+1]<<1)|1)|((last_rd[j]<<1)|1)|last_rd[j+1]}if(rd[j]&matchmask){var score=match_bitapScore(d,j);if(score<=score_threshold){score_threshold=score;best_loc=j;if(j>loc){start=Math.max(0,loc-(j-loc))}else{break}}}}if(match_bitapScore(d+1,loc)>score_threshold){break}last_rd=rd}return best_loc};diff_match_patch.prototype.match_alphabet=function(pattern){var s=Object();for(var i=0;i<pattern.length;i++){s[pattern.charAt(i)]=0}for(var i=0;i<pattern.length;i++){s[pattern.charAt(i)]|=1<<(pattern.length-i-1)}return s};diff_match_patch.prototype.patch_addContext=function(patch,text){var pattern=text.substring(patch.start2,patch.start2+patch.length1);var padding=0;while(text.indexOf(pattern)!=text.lastIndexOf(pattern)&&pattern.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin){padding+=this.Patch_Margin;pattern=text.substring(patch.start2-padding,patch.start2+patch.length1+padding)}padding+=this.Patch_Margin;va
 r prefix=text.substring(patch.start2-padding,patch.start2);if(prefix!==''){patch.diffs.unshift([DIFF_EQUAL,prefix])}var suffix=text.substring(patch.start2+patch.length1,patch.start2+patch.length1+padding);if(suffix!==''){patch.diffs.push([DIFF_EQUAL,suffix])}patch.start1-=prefix.length;patch.start2-=prefix.length;patch.length1+=prefix.length+suffix.length;patch.length2+=prefix.length+suffix.length};diff_match_patch.prototype.patch_make=function(a,b,c){var text1,text2,diffs;if(typeof b=='undefined'){diffs=a;text1=this.diff_text1(diffs);text2=''}else{text1=a;text2=b;if(typeof c!='undefined'){diffs=c}else{diffs=this.diff_main(text1,text2,true);if(diffs.length>2){this.diff_cleanupSemantic(diffs);this.diff_cleanupEfficiency(diffs)}}}if(diffs.length===0){return[]}var patches=[];var patch=new patch_obj();var patchDiffLength=0;var char_count1=0;var char_count2=0;var prepatch_text=text1;var postpatch_text=text1;for(var x=0;x<diffs.length;x++){var diff_type=diffs[x][0];var diff_text=d
 iffs[x][1];if(!patchDiffLength&&diff_type!==DIFF_EQUAL){patch.start1=char_count1;patch.start2=char_count2}switch(diff_type){case DIFF_INSERT:patch.diffs[patchDiffLength++]=diffs[x];patch.length2+=diff_text.length;postpatch_text=postpatch_text.substring(0,char_count2)+diff_text+postpatch_text.substring(char_count2);break;case DIFF_DELETE:patch.length1+=diff_text.length;patch.diffs[patchDiffLength++]=diffs[x];postpatch_text=postpatch_text.substring(0,char_count2)+postpatch_text.substring(char_count2+diff_text.length);break;case DIFF_EQUAL:if(diff_text.length<=2*this.Patch_Margin&&patchDiffLength&&diffs.length!=x+1){patch.diffs[patchDiffLength++]=diffs[x];patch.length1+=diff_text.length;patch.length2+=diff_text.length}else if(diff_text.length>=2*this.Patch_Margin){if(patchDiffLength){this.patch_addContext(patch,prepatch_text);patches.push(patch);patch=new patch_obj();patchDiffLength=0;prepatch_text=postpatch_text}}break}if(diff_type!==DIFF_INSERT){char_count1+=diff_text.length}
 if(diff_type!==DIFF_DELETE){char_count2+=diff_text.length}}if(patchDiffLength){this.patch_addContext(patch,prepatch_text);patches.push(patch)}return patches};diff_match_patch.prototype.patch_apply=function(patches,text){this.patch_splitMax(patches);var results=[];var delta=0;for(var x=0;x<patches.length;x++){var expected_loc=patches[x].start2+delta;var text1=this.diff_text1(patches[x].diffs);var start_loc=this.match_main(text,text1,expected_loc);if(start_loc===null){results[x]=false}else{results[x]=true;delta=start_loc-expected_loc;var text2=text.substring(start_loc,start_loc+text1.length);if(text1==text2){text=text.substring(0,start_loc)+this.diff_text2(patches[x].diffs)+text.substring(start_loc+text1.length)}else{var diffs=this.diff_main(text1,text2,false);this.diff_cleanupSemanticLossless(diffs);var index1=0;var index2;for(var y=0;y<patches[x].diffs.length;y++){var mod=patches[x].diffs[y];if(mod[0]!==DIFF_EQUAL){index2=this.diff_xIndex(diffs,index1)}if(mod[0]===DIFF_INSER
 T){text=text.substring(0,start_loc+index2)+mod[1]+text.substring(start_loc+index2)}else if(mod[0]===DIFF_DELETE){text=text.substring(0,start_loc+index2)+text.substring(start_loc+this.diff_xIndex(diffs,index1+mod[1].length))}if(mod[0]!==DIFF_DELETE){index1+=mod[1].length}}}}}return[text,results]};diff_match_patch.prototype.patch_splitMax=function(patches){for(var x=0;x<patches.length;x++){if(patches[x].length1>this.Match_MaxBits){var bigpatch=patches[x];patches.splice(x,1);var patch_size=this.Match_MaxBits;var start1=bigpatch.start1;var start2=bigpatch.start2;var precontext='';while(bigpatch.diffs.length!==0){var patch=new patch_obj();var empty=true;patch.start1=start1-precontext.length;patch.start2=start2-precontext.length;if(precontext!==''){patch.length1=patch.length2=precontext.length;patch.diffs.push([DIFF_EQUAL,precontext])}while(bigpatch.diffs.length!==0&&patch.length1<patch_size-this.Patch_Margin){var diff_type=bigpatch.diffs[0][0];var diff_text=bigpatch.diffs[0][1];i
 f(diff_type===DIFF_INSERT){patch.length2+=diff_text.length;start2+=diff_text.length;patch.diffs.push(bigpatch.diffs.shift());empty=false}else{diff_text=diff_text.substring(0,patch_size-patch.length1-this.Patch_Margin);patch.length1+=diff_text.length;start1+=diff_text.length;if(diff_type===DIFF_EQUAL){patch.length2+=diff_text.length;start2+=diff_text.length}else{empty=false}patch.diffs.push([diff_type,diff_text]);if(diff_text==bigpatch.diffs[0][1]){bigpatch.diffs.shift()}else{bigpatch.diffs[0][1]=bigpatch.diffs[0][1].substring(diff_text.length)}}}precontext=this.diff_text2(patch.diffs);precontext=precontext.substring(precontext.length-this.Patch_Margin);var postcontext=this.diff_text1(bigpatch.diffs).substring(0,this.Patch_Margin);if(postcontext!==''){patch.length1+=postcontext.length;patch.length2+=postcontext.length;if(patch.diffs.length!==0&&patch.diffs[patch.diffs.length-1][0]===DIFF_EQUAL){patch.diffs[patch.diffs.length-1][1]+=postcontext}else{patch.diffs.push([DIFF_EQUA
 L,postcontext])}}if(!empty){patches.splice(x++,0,patch)}}}}};diff_match_patch.prototype.patch_toText=function(patches){var text=[];for(var x=0;x<patches.length;x++){text[x]=patches[x]}return text.join('')};diff_match_patch.prototype.patch_fromText=function(textline){var patches=[];var text=textline.split('\n');var textPointer=0;while(textPointer<text.length){var m=text[textPointer].match(/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/);if(!m){throw new Error('Invalid patch string: '+text[textPointer])}var patch=new patch_obj();patches.push(patch);patch.start1=parseInt(m[1],10);if(m[2]===''){patch.start1--;patch.length1=1}else if(m[2]=='0'){patch.length1=0}else{patch.start1--;patch.length1=parseInt(m[2],10)}patch.start2=parseInt(m[3],10);if(m[4]===''){patch.start2--;patch.length2=1}else if(m[4]=='0'){patch.length2=0}else{patch.start2--;patch.length2=parseInt(m[4],10)}textPointer++;while(textPointer<text.length){var sign=text[textPointer].charAt(0);try{var line=decodeURIComponent(text[
 textPointer].substring(1))}catch(ex){throw new Error('Illegal escape in patch_fromText: '+line)}if(sign=='-'){patch.diffs.push([DIFF_DELETE,line])}else if(sign=='+'){patch.diffs.push([DIFF_INSERT,line])}else if(sign==' '){patch.diffs.push([DIFF_EQUAL,line])}else if(sign=='@'){break}else if(sign===''){}else{throw new Error('Invalid patch mode "'+sign+'" in: '+line)}textPointer++}}return patches};function patch_obj(){this.diffs=[];this.start1=null;this.start2=null;this.length1=0;this.length2=0}patch_obj.prototype.toString=function(){var coords1,coords2;if(this.length1===0){coords1=this.start1+',0'}else if(this.length1==1){coords1=this.start1+1}else{coords1=(this.start1+1)+','+this.length1}if(this.length2===0){coords2=this.start2+',0'}else if(this.length2==1){coords2=this.start2+1}else{coords2=(this.start2+1)+','+this.length2}var txt=['@@ -'+coords1+' +'+coords2+' @@\n'];var op;for(var x=0;x<this.diffs.length;x++){switch(this.diffs[x][0]){case DIFF_INSERT:op='+';break;case DIFF
 _DELETE:op='-';break;case DIFF_EQUAL:op=' ';break}txt[x+1]=op+encodeURI(this.diffs[x][1])+'\n'}return txt.join('').replace(/%20/g,' ')};
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/installInMyFaces.txt
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/installInMyFaces.txt?rev=928555&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/installInMyFaces.txt (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/installInMyFaces.txt Mon Mar 29 01:14:43 2010
@@ -0,0 +1,12 @@
+Install Kupu files in MyFaces :
+===============================
+
+Keep the files myFaces.css & myFacesUtils.js
+
+Check for the // myFaces comments in the following files :
+	- kupustart.js
+	- kupustart_form.js
+	- kupucontentfilters.js
+	- kupueditor.js
+
+Overwrite all other files with the ones of Kupu distribution (common directory).
\ No newline at end of file

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/kupu.pox
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/kupu.pox?rev=928555&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/kupu.pox (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/kupu.pox Mon Mar 29 01:14:43 2010
@@ -0,0 +1,500 @@
+<?xml version="1.0" ?>
+<catalog xmlns:i18n="http://xml.zope.org/namespaces/i18n" i18n:domain="kupupox">
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Cutting from JavaScript is disabled on your Mozilla due to security settings. For more information, read http://www.mozilla.org/editor/midasdemo/securityprefs.html
+		</msgid>
+		<msgstr i18n:translate="">
+			Cutting from JavaScript is disabled on your Mozilla due to security settings. For more information, read http://www.mozilla.org/editor/midasdemo/securityprefs.html
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Copying from JavaScript is disabled on your Mozilla due to security settings. For more information, read http://www.mozilla.org/editor/midasdemo/securityprefs.html
+		</msgid>
+		<msgstr i18n:translate="">
+			Copying from JavaScript is disabled on your Mozilla due to security settings. For more information, read http://www.mozilla.org/editor/midasdemo/securityprefs.html
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Pasting from JavaScript is disabled on your Mozilla due to security settings. For more information, read http://www.mozilla.org/editor/midasdemo/securityprefs.html
+		</msgid>
+		<msgstr i18n:translate="">
+			Pasting from JavaScript is disabled on your Mozilla due to security settings. For more information, read http://www.mozilla.org/editor/midasdemo/securityprefs.html
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Cut
+		</msgid>
+		<msgstr i18n:translate="">
+			Cut
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Copy
+		</msgid>
+		<msgstr i18n:translate="">
+			Copy
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Paste
+		</msgid>
+		<msgstr i18n:translate="">
+			Paste
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Color chosen
+		</msgid>
+		<msgstr i18n:translate="">
+			Color chosen
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			No head in document!
+		</msgid>
+		<msgstr i18n:translate="">
+			No head in document!
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Properties modified
+		</msgid>
+		<msgstr i18n:translate="">
+			Properties modified
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Not inside link
+		</msgid>
+		<msgstr i18n:translate="">
+			Not inside link
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Delete link
+		</msgid>
+		<msgstr i18n:translate="">
+			Delete link
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Create link
+		</msgid>
+		<msgstr i18n:translate="">
+			Create link
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Create image
+		</msgid>
+		<msgstr i18n:translate="">
+			Create image
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Add table
+		</msgid>
+		<msgstr i18n:translate="">
+			Add table
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Add row
+		</msgid>
+		<msgstr i18n:translate="">
+			Add row
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Delete row
+		</msgid>
+		<msgstr i18n:translate="">
+			Delete row
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Add column
+		</msgid>
+		<msgstr i18n:translate="">
+			Add column
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Delete column
+		</msgid>
+		<msgstr i18n:translate="">
+			Delete column
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Delete Table
+		</msgid>
+		<msgstr i18n:translate="">
+			Delete Table
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Invalid table size
+		</msgid>
+		<msgstr i18n:translate="">
+			Invalid table size
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			No row to delete
+		</msgid>
+		<msgstr i18n:translate="">
+			No row to delete
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			No parentcolumn found!
+		</msgid>
+		<msgstr i18n:translate="">
+			No parentcolumn found!
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Not inside a table!
+		</msgid>
+		<msgstr i18n:translate="">
+			Not inside a table!
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Could not set status bar message, check your browser\'s security settings.
+		</msgid>
+		<msgstr i18n:translate="">
+			Could not set status bar message, check your browser\'s security settings.
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			View source
+		</msgid>
+		<msgstr i18n:translate="">
+			View source
+		</msgstr>
+	</message>
+	<message filenames="kupubasetools.js">
+		<msgid>
+			Not inside a definition list element!
+		</msgid>
+		<msgstr i18n:translate="">
+			Not inside a definition list element!
+		</msgstr>
+	</message>
+	<message filenames="kupubeforeunload.js">
+		<msgid>
+			Discard changes? If you click OK, any changes you have made will be lost.
+		</msgid>
+		<msgstr i18n:translate="">
+			Discard changes? If you click OK, any changes you have made will be lost.
+		</msgstr>
+	</message>
+	<message filenames="kupucnftable.js">
+		<msgid>
+			Not inside a row!
+		</msgid>
+		<msgstr i18n:translate="">
+			Not inside a row!
+		</msgstr>
+	</message>
+	<message filenames="kupudrawers.js">
+		<msgid>
+			Can only preview web urls
+		</msgid>
+		<msgstr i18n:translate="">
+			Can only preview web urls
+		</msgstr>
+	</message>
+	<message filenames="kupudrawers.js">
+		<msgid>
+			Right click to copy link
+		</msgid>
+		<msgstr i18n:translate="">
+			Right click to copy link
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js">
+		<msgid>
+			No destination URL available!
+		</msgid>
+		<msgstr i18n:translate="">
+			No destination URL available!
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js kupumultieditor.js">
+		<msgid>
+			Please wait while saving document...
+		</msgid>
+		<msgstr i18n:translate="">
+			Please wait while saving document...
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js kupumultieditor.js">
+		<msgid>
+			Starting HTML cleanup
+		</msgid>
+		<msgstr i18n:translate="">
+			Starting HTML cleanup
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js kupumultieditor.js">
+		<msgid>
+			Cleanup done, sending document to server
+		</msgid>
+		<msgstr i18n:translate="">
+			Cleanup done, sending document to server
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js">
+		<msgid>
+			Request sent to server
+		</msgid>
+		<msgstr i18n:translate="">
+			Request sent to server
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js">
+		<msgid>
+			Sending request to server
+		</msgid>
+		<msgstr i18n:translate="">
+			Sending request to server
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js">
+		<msgid>
+			Editor not initialized yet!
+		</msgid>
+		<msgstr i18n:translate="">
+			Editor not initialized yet!
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js">
+		<msgid>
+			Browser not supported!
+		</msgid>
+		<msgstr i18n:translate="">
+			Browser not supported!
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js">
+		<msgid>
+			Error saving your data.\nResponse status: ${status}.\nCheck your server log for more information.
+		</msgid>
+		<msgstr i18n:translate="">
+			Error saving your data.\nResponse status: ${status}.\nCheck your server log for more information.
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js">
+		<msgid>
+			Error saving document
+		</msgid>
+		<msgstr i18n:translate="">
+			Error saving document
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js">
+		<msgid>
+			Document saved
+		</msgid>
+		<msgstr i18n:translate="">
+			Document saved
+		</msgstr>
+	</message>
+	<message filenames="kupueditor.js kupumultieditor.js">
+		<msgid>
+			Couldn\'t set design mode. Kupu will not work on this browser.
+		</msgid>
+		<msgstr i18n:translate="">
+			Couldn\'t set design mode. Kupu will not work on this browser.
+		</msgstr>
+	</message>
+	<message filenames="kupuhelpers.js">
+		<msgid>
+			Unsupported browser!
+		</msgid>
+		<msgstr i18n:translate="">
+			Unsupported browser!
+		</msgstr>
+	</message>
+	<message filenames="kupuhelpers.js">
+		<msgid>
+			exception ${message} while registering an event handler for element ${element}, event ${event}, method ${method}
+		</msgid>
+		<msgstr i18n:translate="">
+			exception ${message} while registering an event handler for element ${element}, event ${event}, method ${method}
+		</msgstr>
+	</message>
+	<message filenames="kupuhelpers.js">
+		<msgid>
+			No element found in the config island!
+		</msgid>
+		<msgstr i18n:translate="">
+			No element found in the config island!
+		</msgstr>
+	</message>
+	<message filenames="kupuhelpers.js">
+		<msgid>
+			Selection not inside the node!
+		</msgid>
+		<msgstr i18n:translate="">
+			Selection not inside the node!
+		</msgstr>
+	</message>
+	<message filenames="kupuhelpers.js">
+		<msgid>
+			Start node offset detected in a node without children!
+		</msgid>
+		<msgstr i18n:translate="">
+			Start node offset detected in a node without children!
+		</msgstr>
+	</message>
+	<message filenames="kupuhelpers.js">
+		<msgid>
+			End node offset detected in a node without children!
+		</msgid>
+		<msgstr i18n:translate="">
+			End node offset detected in a node without children!
+		</msgstr>
+	</message>
+	<message filenames="kupuhelpers.js">
+		<msgid>
+			Start offset out of range!
+		</msgid>
+		<msgstr i18n:translate="">
+			Start offset out of range!
+		</msgstr>
+	</message>
+	<message filenames="kupuhelpers.js">
+		<msgid>
+			End offset out of range!
+		</msgid>
+		<msgstr i18n:translate="">
+			End offset out of range!
+		</msgstr>
+	</message>
+	<message filenames="kupuhelpers.js">
+		<msgid>
+			Offset out of document range
+		</msgid>
+		<msgstr i18n:translate="">
+			Offset out of document range
+		</msgstr>
+	</message>
+	<message filenames="kupuinit_form.js kupuinit_genericelements.js kupuinit.js kupuinit_multi.js">
+		<msgid>
+			There was a problem initializing the drawers. Most likely the XSLT or XML files aren\'t available. If this is not the Kupu demo version, check your files or the service that provide them (error: ${error}).
+		</msgid>
+		<msgstr i18n:translate="">
+			There was a problem initializing the drawers. Most likely the XSLT or XML files aren\'t available. If this is not the Kupu demo version, check your files or the service that provide them (error: ${error}).
+		</msgstr>
+	</message>
+	<message filenames="kupumultieditor.js">
+		<msgid>
+			Editor initialized
+		</msgid>
+		<msgstr i18n:translate="">
+			Editor initialized
+		</msgstr>
+	</message>
+	<message filenames="kupusaveonpart.js">
+		<msgid>
+			You are leaving the editor. Do you want to save your changes?
+		</msgid>
+		<msgstr i18n:translate="">
+			You are leaving the editor. Do you want to save your changes?
+		</msgstr>
+	</message>
+	<message filenames="kupusourceedit.js">
+		<msgid>
+			Source edit tool initialized
+		</msgid>
+		<msgstr i18n:translate="">
+			Source edit tool initialized
+		</msgstr>
+	</message>
+	<message filenames="kupusourceedit.js">
+		<msgid>
+			Cleaning up HTML...
+		</msgid>
+		<msgstr i18n:translate="">
+			Cleaning up HTML...
+		</msgstr>
+	</message>
+	<message filenames="kupuspellchecker.js">
+		<msgid>
+			There were no errors.
+		</msgid>
+		<msgstr i18n:translate="">
+			There were no errors.
+		</msgstr>
+	</message>
+	<message filenames="kupuspellchecker.js">
+		<msgid>
+			Error loading data, status ${status}
+		</msgid>
+		<msgstr i18n:translate="">
+			Error loading data, status ${status}
+		</msgstr>
+	</message>
+	<message filenames="kupuspellchecker.js">
+		<msgid>
+			This feature requires pop-ups to be enabled on your browser!
+		</msgid>
+		<msgstr i18n:translate="">
+			This feature requires pop-ups to be enabled on your browser!
+		</msgstr>
+	</message>
+	<message filenames="kupustart_form.js kupustart_multi.js">
+		<msgid>
+			Error loading translation (status ${status} ), falling back to english
+		</msgid>
+		<msgstr i18n:translate="">
+			Error loading translation (status ${status} ), falling back to english
+		</msgstr>
+	</message>
+	<message filenames="kuputoolcollapser.js">
+		<msgid>
+			click to unfold
+		</msgid>
+		<msgstr i18n:translate="">
+			click to unfold
+		</msgstr>
+	</message>
+	<message filenames="kuputoolcollapser.js">
+		<msgid>
+			click to fold
+		</msgid>
+		<msgstr i18n:translate="">
+			click to fold
+		</msgstr>
+	</message>
+</catalog>
+

Added: myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/kupu_kjax.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/kupu_kjax.js?rev=928555&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/kupu_kjax.js (added)
+++ myfaces/tomahawk/trunk/core20/src/main/resources/META-INF/resources/oam.custom.inputHtml/kupu_kjax.js Mon Mar 29 01:14:43 2010
@@ -0,0 +1,172 @@
+/*****************************************************************************
+ *
+ * Copyright (c) 2003-2005 Kupu Contributors. All rights reserved.
+ *
+ * This software is distributed under the terms of the Kupu
+ * License. See LICENSE.txt for license text. For a list of Kupu
+ * Contributors see CREDITS.txt.
+ * 
+ *****************************************************************************/
+/* Javascript to aid migration page. */
+
+function KJax() { this.request_queue = [];};
+(function(p){
+    p._loadXML = function(uri, callback, body, reload, extra) {
+        function _sarissaCallback() {
+            /* callback for Sarissa
+            when the callback is called because the data's ready it
+            will get the responseXML DOM and call user_callback
+            with the DOM as the first argument and the uri loaded
+            as the second
+
+            note that this method should be called in the context of an 
+            xmlhttp object
+            */
+            if (xmlhttp.readyState == 4) {
+                self.xmlhttp = null;
+                if (xmlhttp.status && xmlhttp.status != 200) {
+                    var errmessage = 'Error '+xmlhttp.status+' loading '+(uri||'XML');
+                    alert(errmessage);
+                    throw "Error loading XML";
+                };
+                var dom = xmlhttp.responseXML;
+                if (!dom || !dom.documentElement) { /* IE bug! */
+                    dom = Sarissa.getDomDocument();
+                    dom.loadXML(xmlhttp.responseText);
+                }
+                if (this.request_queue) {
+                    /* Kick off the next chained request before trying
+                     * to handle the result of the last one.
+                     */
+                    this._loadXML.apply(this, this.request_queue.splice(0,1));
+                }
+                callback.apply(self, [dom, uri, extra]);
+            };
+        };
+        var self = this;
+        /* Make sure our requests are single-threaded. */
+        if (this.xmlhttp) {
+            this.request_queue.push([uri, callback, body, reload, extra]);
+        }
+        /* load the XML from a uri
+           calls callback with one arg (the XML DOM) when done
+           the (optional) body arg should contain the body for the request
+         */
+        var xmlhttp = new XMLHttpRequest();
+        this.xmlhttp = xmlhttp;
+        var method = body?'POST':'GET';
+        // be sure that body is null and not an empty string or
+        // something
+        body=body?body:null;
+
+        try {
+            xmlhttp.open(method, uri, true);
+            xmlhttp.onreadystatechange = _sarissaCallback;
+            if (method == "POST") {
+                // by default, we would send a 'text/xml' request, which
+                // is a dirty lie; explicitly set the content type to what
+                // a web server expects from a POST.
+                xmlhttp.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
+            };
+            xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+            xmlhttp.send(body);
+        } catch(e) {
+            this.xmlhttp = null;
+            if (e && e.name && e.message) { // Microsoft
+                e = e.name + ': ' + e.message;
+            }
+            alert(e);
+        }
+    };
+    p._xmlcallback = function(dom) {
+        this.xmldata = dom;
+        Sarissa.setXpathNamespaces(this.xmldata, "xmlns:kj='http://kupu.oscom.org/namespaces/kjax'");
+        var nodes = this.xmldata.selectNodes("//*[@kj:mode]");
+        for (var i = 0; i < nodes.length; i++) {
+            var n = nodes[i];
+            var mode = n.getAttribute('kj:mode');
+            n = document.importNode(n, true);
+            var id = n.getAttribute('id');
+            var target;
+            if (id) {
+                target = document.getElementById(id);
+            } else {
+                target = document.getElementById('kupu-default-target');
+                mode = 'append';
+            }
+            if (mode=='append') {
+                while(n.firstChild) {
+                    target.appendChild(n.firstChild);
+                };
+            } else if (mode=='replace') {
+                Sarissa.copyChildNodes(n, target);
+            } else if (mode=='prepend') {
+                var t = target.firstChild;
+                while (n.firstChild) {
+                    target.insertBefore(n.firstChild, t);
+                };
+            };
+        };
+        this.nextRequest();
+    };
+    p.nextRequest = function() {
+        var onload = this.xmldata.selectSingleNode('//*[@kj:load]');
+        if (onload) {
+            var js = onload.getAttribute('kj:load');
+            if (js) { eval(js); };
+        };
+        var next = this.xmldata.selectSingleNode('//*[@kj:next]');
+        if (next) {
+            var xmluri = next.getAttribute('kj:next');
+            var delay = next.getAttribute('kj:delay');
+            if (delay) {
+                timer_instance.registerFunction(this, this._loadXML, delay*1000, xmluri, this._xmlcallback);
+            } else {
+                this._loadXML(xmluri, this._xmlcallback);
+            };
+        } else {
+            this.trace("complete");
+        };
+    };
+    p.newRequest = function(uri) {
+        this._loadXML(uri, this._xmlcallback);
+    };
+    p.clearLog = function() {
+        var el = document.getElementById("log");
+        while (el.firstChild) el.removeChild(el.firstChild);
+    };
+    p.submitForm = function(form, uri, extra) {
+        var fields = [];
+        function push(el, v) {
+            fields.push(el.name+"="+encodeURIComponent(v));
+        }
+        for(var i=0; i < form.elements.length; i++)
+        {
+            var el = form.elements[i];
+            var name = /input/i.test(el.tagName)?el.type:el.tagName;
+            if (/checkbox|radio/i.test(name) && !el.checked) continue;
+            if (/select/i.test(name)) {
+                push(el, el.options[el.selectedIndex].value);
+                continue;
+            }
+            if (/text|hidden|checkbox|radio|textarea/i.test(name)) {
+                push(el, el.value);
+            };
+        }
+        if (!uri) { uri = form.getAttribute('action'); };
+        if (extra) {
+            for (var name in extra) {
+                fields.push(name+"="+encodeURIComponent(extra[name]));
+            }
+        }
+        this.trace("submit form: "+uri);
+        this._loadXML(uri, this._xmlcallback, fields.join('&'));
+        return false;
+    };
+    p.trace = function(s) {
+        var el = document.getElementById("log");
+        if (el) el.appendChild(newElement("div", [s]));
+    };
+})(KJax.prototype);
+
+var kj = new KJax();