From 2b7d08508d63ad5fd7fa7d4f70e3ce67ba932404 Mon Sep 17 00:00:00 2001
From: Fabrixxm <fabrix.xm@gmail.com>
Date: Fri, 10 Aug 2012 04:25:08 -0400
Subject: [PATCH 01/14] head.tpl: commentOpen() and commentClose() return
 true/false usefull to concatenate other actions: "commentClose(this, $id) &&
 cmtBbClose($id)"

---
 view/head.tpl | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/view/head.tpl b/view/head.tpl
index e5495b329..42bd92f4c 100644
--- a/view/head.tpl
+++ b/view/head.tpl
@@ -39,7 +39,9 @@
 			$("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
 			$("#mod-cmnt-wrap-" + id).show();
 			openMenu("comment-edit-submit-wrapper-" + id);
+			return true;
 		}
+		return false;
 	}
 	function commentClose(obj,id) {
 		if(obj.value == '') {
@@ -48,7 +50,9 @@
 			$("#comment-edit-text-" + id).addClass("comment-edit-text-empty");
 			$("#mod-cmnt-wrap-" + id).hide();
 			closeMenu("comment-edit-submit-wrapper-" + id);
+			return true;
 		}
+		return false;
 	}
 
 

From 64a6e8693c5158c37994d8c1c211265fc158b27d Mon Sep 17 00:00:00 2001
From: Fabrixxm <fabrix.xm@gmail.com>
Date: Fri, 10 Aug 2012 04:27:50 -0400
Subject: [PATCH 02/14] quattro: remove unused parameter 'comment' from
 function cmtBbClose

---
 view/theme/quattro/theme.php | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/view/theme/quattro/theme.php b/view/theme/quattro/theme.php
index 5cb373eef..51d9d05d5 100644
--- a/view/theme/quattro/theme.php
+++ b/view/theme/quattro/theme.php
@@ -43,10 +43,10 @@ function insertFormatting(comment,BBcode,id) {
 }
 
 function cmtBbOpen(id) {
-	$(".comment-edit-bb-" + id).show();
+	$("#comment-edit-bb-" + id).show();
 }
-function cmtBbClose(comment, id) {
-	$(".comment-edit-bb-" + id).hide();
+function cmtBbClose(id) {
+	$("#comment-edit-bb-" + id).hide();
 }
 $(document).ready(function() {
 

From c4bff3d3934f93b059da64b02886e3ffa8a5a0d7 Mon Sep 17 00:00:00 2001
From: Fabrixxm <fabrix.xm@gmail.com>
Date: Fri, 10 Aug 2012 04:29:22 -0400
Subject: [PATCH 03/14] quattro: add comment tools icons, fix hide/show comment
 tools

---
 view/theme/quattro/comment_item.tpl |  13 +++++++------
 view/theme/quattro/dark/style.css   |  12 +++++-------
 view/theme/quattro/green/style.css  |  12 +++++-------
 view/theme/quattro/icons/bbedit.png | Bin 0 -> 2145 bytes
 view/theme/quattro/quattro.less     |  14 +++++++-------
 view/theme/quattro/wall_thread.tpl  |   6 +++++-
 6 files changed, 29 insertions(+), 28 deletions(-)
 create mode 100644 view/theme/quattro/icons/bbedit.png

diff --git a/view/theme/quattro/comment_item.tpl b/view/theme/quattro/comment_item.tpl
index ea24d95cc..7d1d7550b 100644
--- a/view/theme/quattro/comment_item.tpl
+++ b/view/theme/quattro/comment_item.tpl
@@ -10,8 +10,8 @@
 				<div class="comment-edit-photo" id="comment-edit-photo-$id" >
 					<a class="comment-edit-photo-link" href="$mylink" title="$mytitle"><img class="my-comment-photo" src="$myphoto" alt="$mytitle" title="$mytitle" /></a>
 				</div>
-				<div class="comment-edit-photo-end"></div>
-				<ul class="comment-edit-bb-$id">
+				<ul id="comment-edit-bb-$id"
+					class="comment-edit-bb">
 					<li><a class="editicon boldbb shadow"
 						style="cursor: pointer;" title="$edbold"
 						onclick="insertFormatting('$comment','b', $id);"></a></li>
@@ -37,8 +37,11 @@
 						style="cursor: pointer;" title="$edvideo"
 						onclick="insertFormatting('$comment','video', $id);"></a></li>
 				</ul>	
-				<div class="comment-edit-bb-end"></div>
-				<textarea id="comment-edit-text-$id" class="comment-edit-text-empty" name="body" onFocus="commentOpen(this,$id);cmtBbOpen($id);" onBlur="commentClose(this,$id);" >$comment</textarea>			
+				<textarea id="comment-edit-text-$id" 
+					class="comment-edit-text-empty" 
+					name="body" 
+					onFocus="commentOpen(this,$id) && cmtBbOpen($id);" 
+					onBlur="commentClose(this,$id) && cmtBbClose($id);" >$comment</textarea>
 				{{ if $qcomment }}
 					<select id="qcomment-select-$id" name="qcomment-$id" class="qcomment" onchange="qCommentInsert(this,$id);" >
 					<option value=""></option>
@@ -48,14 +51,12 @@
 					</select>
 				{{ endif }}
 
-				<div class="comment-edit-text-end"></div>
 				<div class="comment-edit-submit-wrapper" id="comment-edit-submit-wrapper-$id" style="display: none;" >
 					<input type="submit" onclick="post_comment($id); return false;" id="comment-edit-submit-$id" class="comment-edit-submit" name="submit" value="$submit" />
 					<span onclick="preview_comment($id);" id="comment-edit-preview-link-$id" class="fakelink">$preview</span>
 					<div id="comment-edit-preview-$id" class="comment-edit-preview" style="display:none;"></div>
 				</div>
 
-				<div class="comment-edit-end"></div>
 			</form>
 
 		</div>
diff --git a/view/theme/quattro/dark/style.css b/view/theme/quattro/dark/style.css
index 5ff059160..17e51cf17 100644
--- a/view/theme/quattro/dark/style.css
+++ b/view/theme/quattro/dark/style.css
@@ -2009,25 +2009,23 @@ footer {
   opacity: 0.3;
   filter: alpha(opacity=30);
 }
-[class^="comment-edit-bb"] {
+.comment-edit-bb {
   list-style: none;
   display: none;
-  margin: 0px 0 0px 60px;
+  margin: 0px;
+  padding: 0px;
   width: 75%;
 }
-[class^="comment-edit-bb"] > li {
+.comment-edit-bb > li {
   display: inline-block;
   margin: 10px 10px 0 0;
   visibility: none;
 }
-[class^="comment-edit-bb-end"] {
-  clear: both;
-}
 .editicon {
   display: inline-block;
   width: 16px;
   height: 16px;
-  background-image: url(bbedit.png);
+  background-image: url(icons/bbedit.png);
   text-decoration: none;
 }
 .editicon :hover {
diff --git a/view/theme/quattro/green/style.css b/view/theme/quattro/green/style.css
index 3cc4e8cf6..da9cdd794 100644
--- a/view/theme/quattro/green/style.css
+++ b/view/theme/quattro/green/style.css
@@ -2009,25 +2009,23 @@ footer {
   opacity: 0.3;
   filter: alpha(opacity=30);
 }
-[class^="comment-edit-bb"] {
+.comment-edit-bb {
   list-style: none;
   display: none;
-  margin: 0px 0 0px 60px;
+  margin: 0px;
+  padding: 0px;
   width: 75%;
 }
-[class^="comment-edit-bb"] > li {
+.comment-edit-bb > li {
   display: inline-block;
   margin: 10px 10px 0 0;
   visibility: none;
 }
-[class^="comment-edit-bb-end"] {
-  clear: both;
-}
 .editicon {
   display: inline-block;
   width: 16px;
   height: 16px;
-  background-image: url(bbedit.png);
+  background-image: url(icons/bbedit.png);
   text-decoration: none;
 }
 .editicon :hover {
diff --git a/view/theme/quattro/icons/bbedit.png b/view/theme/quattro/icons/bbedit.png
new file mode 100644
index 0000000000000000000000000000000000000000..b89f2f7a830b573d37ea591e715d5e9507574642
GIT binary patch
literal 2145
zcmV-n2%h(eP)<h;3K|Lk000e1NJLTq006WA001Be1^@s6yE;;500001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iyc3
z0t*R39JQ+e00-eoL_t(|+U=TqP*m3)$3HjhF6#pBf;@t(B1tOXiyC!?WLkAPW8!O~
zX{V!Rn09TZm_7&tlP2wCrrO%aXd)JvNx-q=^ksZ>s!p0ntVw)}MywDV6f6t4LfBPy
zSpgSz_4bdwyIIHryOB7!Ip2TIIrpCPyZ4^^J-_oi=X@mu#vI2^oRDL6I<DWiL415X
zcDtRXmKFeBEi9Bo4}EnIojZmoc;!|3Qe!iDE0)mha<OOsKZ#GB!i;ny0H4&=({sC<
z`m?9Utl#grWqE>H68}*UdTf!OpD&;J^fIw=dH`bd1`GxR)=n#$Xbk`ko0ZP?HkL15
z%#Iy9#-#5hNs?t*7XL8_q2&?k*@2IMSAdo<?C%4<Kjc~tP&Yywd6;*U!x)Hv0)7na
z1PX(c#}r#jOXYL*S8+HTT)SLLoZdj@tQ>lK`v7pe2XNS|^f>MG_T0uWDTxBp57@9_
z!+jHR`LoOA!$%HdGMTt|;UZ7Ye{$Hmxw(s2xO5fS>G9InfzSZ)KvzKC2_yn0U<*(W
z%ntJzzXbjWlmjn^P(KFfQSw@#U&((PI057W=SG`}m9{QmLXdJe*a@5j{xVXi(eUs0
zY0*RxrBabP*~p~SG{1Lt*sOGS*>HP2s8uS`GiL(u^Sm`YziQQekxP;!dD%0|c(3X`
zYHJ(F$;lqJZf$J?rKNB1)7Q4JAS+plMDMN&;)#85D5(`FQwTlf%Qz7wJrrX7-hh06
zK>n1Ho)5u>9Y_V*hbad`Jg^&B1RMv}DSfaQ*sRn^16~Jy66g$KlO9E$JqN9&mD}A8
ztTro2aWO>Qb93!-19v@cwAu-1wOXR0q8R8Oz;5ec_ny4~?A^OJ=<K*=%^E3``-hJl
z=1QA`bLY;JlatMFHf<03fg3j!F*j>2Z*6%ENs{D9^w6phJa~#SP4@%EVcJgso>n~l
ziTiw4IfT&2hcm$UfYZa2gW>nUQeZ8x2ly@U2Ji^bs?@QJ^iWrC4>55Q$(}P8dK|b0
z+{DC9WZ+I8n&@aAQK@-)_Dt$pEVz1m_}}&Gl$Djqot>Q&6ch}yRbF0BSy`D3Fw*_P
z!a^!4b}?gG0w$A*AHDcP09LHa<BB8d^N%ZhiH)0z=<4%O@%CF>yl|1a`ns<bp#zEI
zRASJ-g=v2o5CwbyxF6tm{YN42v0=)=@SKuXDe3dTg&}QJfM;mKX@(e1^$(DqIg`Yx
zk8!iD8303KGKR!tZ0#1hyKK<kPhE=zwN{5FIvS_biP>zXq@;x6Vy~~r$jBfiC54of
zl);OUef#L_?8Iy~1NhstS#EN*;VKmsyQr={?yrBv5k+%z^B@}*cLx9`PyIJy7lo=(
zytAZ)87079m1%ox81`2x>AMg3yN)X9@nOor;A7D3fbwGC<A6GMgEg$FsljS7laV!>
z_NFViUEal@R-<N8Y8tNC7;aiSzR*q+9qlKm*=*+E!Gls!QIR~<8~adPT+H_E+ojd3
zSIfRO8hrwp*_k9J8mO*5&OMKdJymC+>TFOO=c|vhVqG3-lhY#7LrWug=D>SNN-S*+
z`0=3(78@`TNCs|&@m?+<8ZZFe%C%JBnzCpN1t)-oBb0}tU3rFHdFBmZK#8fZ57$4H
zm6h`5ZQF>6jq@_z<3XR0gj%EVlN!L%)`HvPA=Q|UTC1a@rHRBx)3{}BqOq}&>C>lw
z?ny1dBO9a9=+FDwG&ME(|I_;Q>*bP?QhNHllc8~P0+#kJjFS_*1FyH91#xo*|Lh1~
z6b^?0-})yE+uu?Mc{)ro`#kA0N?iLZKnJ`D90<e4!codY@h{+KN|*$23CJ2k=IDUD
z8gL&yb{tLW<9u`eJUq@W%nhH?-DN|ckc4ic0hg<ffxg@R9S*fthuhVM%XNnZb7ryg
z<j3fAI{Nzh2EB|<ryEor?Y`d=+>PSTJ9YxFr|K+gmp<k7*udXE{51d-6}wOyl6Z0L
z%7_m+k^=H^%JiEG{6V?4KMc?R-67L`ICw!J^J-v&G9dOVTYz5`UI(5~w&y+oJ_J4s
zGIInDa_M|+EzcIdOi6w|#WgiFZQF(B+9&ily&Fc|T{bWKRVuVGUVqSGY2~ST^C^FG
ztACGO3VzrZ>U}>v{VrCl%kwV`^=cO@f3ajx9kn5eDd`y;IeVEUxicb`&_j0*oId9O
zG%B95Bm|opW$Vpndn53j5IkfcZUHYn;J)Zqb~(Zd(Nc}+0Q>`(k~EK+#els7XLG&(
z5XE=YU0GQvce`BZS1cKNs3L{?++fJfUBpyl;)r!jCX;u;YDi>3R&vB0u#DFak{_0L
zuB@z-x9mPh{0o~|y>uSeZE*5;CO$j!K99}Fq2}1p2ll=Vt#<iFQv+?c>?78jIw>B#
z@d-g_f#BF$S}N~7@Gka@1;o0X+-tc+_Ox{Nzq9*+_isb1UGBLv`VMI%l35UX3~}Jl
zA^D?|-gBE--*|jXbQ%JJ(BlF^4=o5C5fFN4LFkBq&_j<uLJK|geJl!v9(sIwXrYJx
zB7`3LA%f6D4<5`y4;^8I4(7py9$M(3BZAOE4=wc25k+XBhZcJ1h}gChdT61Cj@TI5
z2cd`dLg=9%GC~VIw9rFG455V{TIiu8GKL-x5PIk@0ilN$T8=S+&_fGCM;wG6dVJvj
X)oe|$-m16t00000NkvXXu0mjfyN3QR

literal 0
HcmV?d00001

diff --git a/view/theme/quattro/quattro.less b/view/theme/quattro/quattro.less
index a424ee020..2a4b1b0d0 100644
--- a/view/theme/quattro/quattro.less
+++ b/view/theme/quattro/quattro.less
@@ -536,6 +536,7 @@ section {
 		color: @CommentBoxFullColor;
 		border: 1px solid @CommentBoxFullBorderColor;
 	}
+	
 }
 
 .threaded .wall-item-comment-wrapper { margin-left: 0px; }
@@ -1372,25 +1373,24 @@ footer { height: 100px; display: table-row; }
 /* edit buttons for comments */
 
 .icon.dim { opacity: 0.3;filter:alpha(opacity=30); }
-[class^="comment-edit-bb"] {
+.comment-edit-bb {
 	list-style: none;
 	display: none;
-	margin: 0px 0 0px 60px;
+	margin: 0px;
+	padding: 0px;
 	width: 75%;
 }
-[class^="comment-edit-bb"] > li {
+.comment-edit-bb > li {
 	display: inline-block;
 	margin: 10px 10px 0 0;
 	visibility: none;
 }
-[class^="comment-edit-bb-end"] {
-	clear: both;
-}
+
 .editicon {
     display: inline-block;
     width: 16px;
     height: 16px;
-    background-image: url(bbedit.png);
+    background-image: url(icons/bbedit.png);
     text-decoration: none;
     :hover {background-color: #ccc;}
 }
diff --git a/view/theme/quattro/wall_thread.tpl b/view/theme/quattro/wall_thread.tpl
index 4d454f00d..fe136b2b2 100644
--- a/view/theme/quattro/wall_thread.tpl
+++ b/view/theme/quattro/wall_thread.tpl
@@ -2,7 +2,11 @@
 {{ else }}
 {{if $item.comment_firstcollapsed}}
 	<div class="hide-comments-outer">
-	<span id="hide-comments-total-$item.id" class="hide-comments-total">$item.num_comments</span> <span id="hide-comments-$item.id" class="hide-comments fakelink" onclick="showHideComments($item.id);">$item.hide_text</span>
+		<span id="hide-comments-total-$item.id" 
+			class="hide-comments-total">$item.num_comments</span>
+			<span id="hide-comments-$item.id" 
+				class="hide-comments fakelink" 
+				onclick="showHideComments($item.id);">$item.hide_text</span>
 	</div>
 	<div id="collapsed-comments-$item.id" class="collapsed-comments" style="display: none;">
 {{endif}}

From 0f15c117ee97757a58cd10e62376a429306516c5 Mon Sep 17 00:00:00 2001
From: Fabrixxm <fabrix.xm@gmail.com>
Date: Fri, 10 Aug 2012 04:53:39 -0400
Subject: [PATCH 04/14] quattro: move comment box for top-level item at the end
 of comments list

---
 view/theme/quattro/threaded_conversation.tpl |  2 ++
 view/theme/quattro/wall_item_tag.tpl         |  4 +---
 view/theme/quattro/wall_thread.tpl           | 16 +++++++++-------
 view/theme/quattro/wallwall_thread.tpl       | 14 ++++++++------
 4 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/view/theme/quattro/threaded_conversation.tpl b/view/theme/quattro/threaded_conversation.tpl
index 491c47302..13c38acb2 100644
--- a/view/theme/quattro/threaded_conversation.tpl
+++ b/view/theme/quattro/threaded_conversation.tpl
@@ -1,6 +1,8 @@
 {{ for $threads as $item }}
+
 <div id="tread-wrapper-$item.id" class="tread-wrapper {{ if $item.threaded }}threaded{{ endif }}">
        
+       
 		{{ if $item.type == tag }}
 			{{ inc wall_item_tag.tpl }}{{ endinc }}
 		{{ else }}
diff --git a/view/theme/quattro/wall_item_tag.tpl b/view/theme/quattro/wall_item_tag.tpl
index 205fcfebc..d655306e5 100644
--- a/view/theme/quattro/wall_item_tag.tpl
+++ b/view/theme/quattro/wall_item_tag.tpl
@@ -19,7 +19,5 @@
 </div>
 
 {{ if $item.flatten }}
-<div class="wall-item-comment-wrapper" >
-	$item.comment
-</div>
+<div class="wall-item-comment-wrapper" >$item.comment</div>
 {{ endif }}
diff --git a/view/theme/quattro/wall_thread.tpl b/view/theme/quattro/wall_thread.tpl
index fe136b2b2..bd165eed7 100644
--- a/view/theme/quattro/wall_thread.tpl
+++ b/view/theme/quattro/wall_thread.tpl
@@ -97,14 +97,14 @@
 		<div class="wall-item-like" id="wall-item-like-$item.id">$item.like</div>
 		<div class="wall-item-dislike" id="wall-item-dislike-$item.id">$item.dislike</div>	
 	</div>
-	{{ if $item.threaded }}{{ if $item.comment }}
+	{{ if $item.threaded }}{{ if $item.comment }}{{ if $item.indent==comment }}
 	<div class="wall-item-bottom">
 		<div class="wall-item-links"></div>
 		<div class="wall-item-comment-wrapper">
-					$item.comment
+			$item.comment
 		</div>
 	</div>
-	{{ endif }}{{ endif }}
+	{{ endif }}{{ endif }}{{ endif }}
 
 </div>
 
@@ -124,8 +124,10 @@
 {{if $item.comment_lastcollapsed}}</div>{{endif}}
 {{ endif }}
 
-{{ if $item.flatten }}
-<div class="wall-item-comment-wrapper" >
-	$item.comment
-</div>
+{{ if $item.indent!=comment}}
+<div class="wall-item-comment-wrapper" >$item.comment</div>
+{{ endif }}
+
+{{ if $item.flatten }}
+<div class="wall-item-comment-wrapper" >$item.comment</div>
 {{ endif }}
diff --git a/view/theme/quattro/wallwall_thread.tpl b/view/theme/quattro/wallwall_thread.tpl
index cc2f8e362..ceb74517e 100644
--- a/view/theme/quattro/wallwall_thread.tpl
+++ b/view/theme/quattro/wallwall_thread.tpl
@@ -101,14 +101,14 @@
 		<div class="wall-item-dislike" id="wall-item-dislike-$item.id">$item.dislike</div>	
 	</div>
 	
-	{{ if $item.threaded }}{{ if $item.comment }}
+	{{ if $item.threaded }}{{ if $item.comment }}{{ if $item.indent==comment }}
 	<div class="wall-item-bottom">
 		<div class="wall-item-links"></div>
 		<div class="wall-item-comment-wrapper">
 					$item.comment
 		</div>
 	</div>
-	{{ endif }}{{ endif }}
+	{{ endif }}{{ endif }}{{ endif }}
 </div>
 
 
@@ -127,8 +127,10 @@
 {{if $item.comment_lastcollapsed}}</div>{{endif}}
 {{ endif }}
 
-{{ if $item.flatten }}
-<div class="wall-item-comment-wrapper" >
-	$item.comment
-</div>
+{{ if $item.indent!=comment}}
+<div class="wall-item-comment-wrapper" >$item.comment</div>
+{{ endif }}
+
+{{ if $item.flatten }}
+<div class="wall-item-comment-wrapper" >$item.comment</div>
 {{ endif }}

From dbbf5b86a2ebfe862d4d833be41997d8b596f260 Mon Sep 17 00:00:00 2001
From: Fabrixxm <fabrix.xm@gmail.com>
Date: Fri, 10 Aug 2012 04:55:51 -0400
Subject: [PATCH 05/14] template processor: trim strings in {{ if str!=str }},
 add 'debug' tag:

    {{ debug $var [$var1 [$var2 [...]]] }}{{ enddebug }}

is replaced by

    <pre>var_export($var1)\nvar_export($var2)\n....</pre>
---
 include/template_processor.php | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/include/template_processor.php b/include/template_processor.php
index 46252c355..4088ddab6 100644
--- a/include/template_processor.php
+++ b/include/template_processor.php
@@ -63,7 +63,7 @@
 				if ($b[0]=="$") $b =  $this->_get_var($b);
 				$val = ($a == $b);
 			} else if (strpos($args[2],"!=")>0){
-				list($a,$b) = explode("!=",$args[2]);
+				list($a,$b) = array_map("trim", explode("!=",$args[2]));
 				$a = $this->_get_var($a);
 				if ($b[0]=="$") $b =  $this->_get_var($b);
 				$val = ($a != $b);
@@ -133,6 +133,26 @@
 			return $ret;
 			
 		}
+		
+		/**
+		 * DEBUG node
+		 * 
+		 * {{ debug $var [$var [$var [...]]] }}{{ enddebug }}
+		 * 
+		 * replace node with <pre>var_dump($var, $var, ...);</pre>
+		 */
+		private function _replcb_debug($args){
+			$vars = array_map('trim', explode(" ",$args[2]));
+			$vars[] = $args[1];
+
+			$ret = "<pre>";
+			foreach ($vars as $var){
+				$ret .= htmlspecialchars(var_export( $this->_get_var($var), true ));
+				$ret .= "\n";
+			}
+			$ret .= "</pre>";
+			return $ret;
+		}
 
 		private function _replcb_node($m) {
 			$node = $this->nodes[$m[1]];

From fc07f50fd8d2972009bebb3c974cbcbee321c642 Mon Sep 17 00:00:00 2001
From: Fabrixxm <fabrix.xm@gmail.com>
Date: Fri, 10 Aug 2012 05:42:36 -0400
Subject: [PATCH 06/14] conversation: add 'thread_level' to $item array

---
 include/conversation.php | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/conversation.php b/include/conversation.php
index 3c4ff2908..68aa1fa33 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -588,6 +588,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr
 			'comment' => $comment,
 			'previewing' => $previewing,
 			'wait' => t('Please wait'),
+			'thread_level' => $thread_level,
 		);
 
 		$arr = array('item' => $item, 'output' => $tmp_item);
@@ -818,6 +819,7 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
 					'conv' => (($preview) ? '' : array('href'=> $a->get_baseurl($ssl_state) . '/display/' . $nickname . '/' . $item['id'], 'title'=> t('View in context'))),
 					'previewing' => $previewing,
 					'wait' => t('Please wait'),
+					'thread_level' => 1,
 				);
 
 				$arr = array('item' => $item, 'output' => $tmp_item);

From ec3d8a80cda6124bd8c68e6721f3fb5d280d4e0c Mon Sep 17 00:00:00 2001
From: Fabrixxm <fabrix.xm@gmail.com>
Date: Fri, 10 Aug 2012 06:27:01 -0400
Subject: [PATCH 07/14] quattro: fix collapsed thread, fix comment box, style
 previev comment, add 'expand / collapse" thread

---
 view/theme/quattro/dark/style.css      | 54 +++++++++++++++++++++-----
 view/theme/quattro/green/style.css     | 54 +++++++++++++++++++++-----
 view/theme/quattro/quattro.less        | 39 +++++++++++++++----
 view/theme/quattro/theme.php           | 10 +++++
 view/theme/quattro/wall_item_tag.tpl   |  4 ++
 view/theme/quattro/wall_thread.tpl     | 33 ++++++++++------
 view/theme/quattro/wallwall_thread.tpl | 37 ++++++++++++------
 7 files changed, 181 insertions(+), 50 deletions(-)

diff --git a/view/theme/quattro/dark/style.css b/view/theme/quattro/dark/style.css
index 17e51cf17..9561fe728 100644
--- a/view/theme/quattro/dark/style.css
+++ b/view/theme/quattro/dark/style.css
@@ -1075,6 +1075,7 @@ section {
   width: 710px;
   border: 1px solid #2d2d2d;
   margin-top: 10px;
+  background-color: #fce94f;
 }
 .comment-edit-preview .contact-photo {
   width: 32px;
@@ -1091,12 +1092,17 @@ section {
   padding-left: 12px;
 }
 .comment-edit-preview .wall-item-container {
-  width: 700px;
+  width: 90%;
 }
 .comment-edit-preview .tread-wrapper {
-  width: 700px;
+  width: 90%;
   padding: 0;
   margin: 10px 0;
+  background-color: #fce94f;
+  border-bottom: 0px;
+}
+.comment-edit-preview .wall-item-conv {
+  display: none;
 }
 .shiny {
   border-right: 10px solid #fce94f;
@@ -1143,36 +1149,64 @@ section {
   height: 25px;
 }
 /* threaded comments */
+.children {
+  margin-top: 1em;
+}
+.children .hide-comments-outer {
+  margin-left: 60px;
+}
+.children .comment-edit-preview {
+  width: 660px;
+}
+.children .comment-edit-preview .wall-item-container {
+  width: 610px;
+}
 .children .children {
   margin-left: 40px;
 }
 .children .children .wall-item-container {
   width: 710px;
 }
-.children .children .children {
-  margin-left: 40px;
+.children .children .comment-edit-preview {
+  width: 620px;
+}
+.children .children .comment-edit-preview .wall-item-container {
+  width: 620px;
 }
 .children .children .children .wall-item-container {
   width: 670px;
 }
-.children .children .children .children {
-  margin-left: 40px;
+.children .children .children .comment-edit-preview {
+  width: 580px;
+}
+.children .children .children .comment-edit-preview .wall-item-container {
+  width: 580px;
 }
 .children .children .children .children .wall-item-container {
   width: 630px;
 }
-.children .children .children .children .children {
-  margin-left: 40px;
+.children .children .children .children .comment-edit-preview {
+  width: 540px;
+}
+.children .children .children .children .comment-edit-preview .wall-item-container {
+  width: 540px;
 }
 .children .children .children .children .children .wall-item-container {
   width: 590px;
 }
+.children .children .children .children .children .comment-edit-preview {
+  width: 500px;
+}
+.children .children .children .children .children .comment-edit-preview .wall-item-container {
+  width: 500px;
+}
 .children .children .children .children .children .children {
   margin-left: 0px;
 }
-.threaded .hide-comments-outer {
-  margin-left: 20px;
+.children .children .children .children .children .children .hide-comments-outer {
+  margin-left: 0px;
 }
+/*.threaded .hide-comments-outer { margin-left: 20px; }*/
 span[id^="showmore-teaser"] {
   background: url("showmore-bg.jpg") no-repeat center bottom;
 }
diff --git a/view/theme/quattro/green/style.css b/view/theme/quattro/green/style.css
index da9cdd794..29d551271 100644
--- a/view/theme/quattro/green/style.css
+++ b/view/theme/quattro/green/style.css
@@ -1075,6 +1075,7 @@ section {
   width: 710px;
   border: 1px solid #2d2d2d;
   margin-top: 10px;
+  background-color: #ddffdd;
 }
 .comment-edit-preview .contact-photo {
   width: 32px;
@@ -1091,12 +1092,17 @@ section {
   padding-left: 12px;
 }
 .comment-edit-preview .wall-item-container {
-  width: 700px;
+  width: 90%;
 }
 .comment-edit-preview .tread-wrapper {
-  width: 700px;
+  width: 90%;
   padding: 0;
   margin: 10px 0;
+  background-color: #ddffdd;
+  border-bottom: 0px;
+}
+.comment-edit-preview .wall-item-conv {
+  display: none;
 }
 .shiny {
   border-right: 10px solid #ddffdd;
@@ -1143,36 +1149,64 @@ section {
   height: 25px;
 }
 /* threaded comments */
+.children {
+  margin-top: 1em;
+}
+.children .hide-comments-outer {
+  margin-left: 60px;
+}
+.children .comment-edit-preview {
+  width: 660px;
+}
+.children .comment-edit-preview .wall-item-container {
+  width: 610px;
+}
 .children .children {
   margin-left: 40px;
 }
 .children .children .wall-item-container {
   width: 710px;
 }
-.children .children .children {
-  margin-left: 40px;
+.children .children .comment-edit-preview {
+  width: 620px;
+}
+.children .children .comment-edit-preview .wall-item-container {
+  width: 620px;
 }
 .children .children .children .wall-item-container {
   width: 670px;
 }
-.children .children .children .children {
-  margin-left: 40px;
+.children .children .children .comment-edit-preview {
+  width: 580px;
+}
+.children .children .children .comment-edit-preview .wall-item-container {
+  width: 580px;
 }
 .children .children .children .children .wall-item-container {
   width: 630px;
 }
-.children .children .children .children .children {
-  margin-left: 40px;
+.children .children .children .children .comment-edit-preview {
+  width: 540px;
+}
+.children .children .children .children .comment-edit-preview .wall-item-container {
+  width: 540px;
 }
 .children .children .children .children .children .wall-item-container {
   width: 590px;
 }
+.children .children .children .children .children .comment-edit-preview {
+  width: 500px;
+}
+.children .children .children .children .children .comment-edit-preview .wall-item-container {
+  width: 500px;
+}
 .children .children .children .children .children .children {
   margin-left: 0px;
 }
-.threaded .hide-comments-outer {
-  margin-left: 20px;
+.children .children .children .children .children .children .hide-comments-outer {
+  margin-left: 0px;
 }
+/*.threaded .hide-comments-outer { margin-left: 20px; }*/
 span[id^="showmore-teaser"] {
   background: url("showmore-bg.jpg") no-repeat center bottom;
 }
diff --git a/view/theme/quattro/quattro.less b/view/theme/quattro/quattro.less
index 2a4b1b0d0..d7b82c8bc 100644
--- a/view/theme/quattro/quattro.less
+++ b/view/theme/quattro/quattro.less
@@ -545,6 +545,7 @@ section {
 	width: 710px;
 	border: 1px solid @Grey5;
 	margin-top: 10px;
+	background-color: @JotPreviewBackgroundColor;
 	
 	.contact-photo { width: 32px; height: 32px; margin-left: 16px;
 		/*background: url(../../../images/icons/22/user.png) no-repeat center center;*/
@@ -555,8 +556,13 @@ section {
 	}
 	.wall-item-links { padding-left: 12px; }
 
-	.wall-item-container { width: 700px; }
-	.tread-wrapper { width: 700px; padding: 0; margin: 10px 0;}
+	.wall-item-container { width: 90%; }
+	.tread-wrapper { 
+		width: 90%; padding: 0; margin: 10px 0; 
+		background-color: @JotPreviewBackgroundColor;
+		border-bottom: 0px;
+	}
+	.wall-item-conv { display: none; }
 }
 
 .shiny { border-right:10px solid @ShinyBorderColor; }
@@ -599,32 +605,49 @@ section {
 
 /* threaded comments */
 .children {
-
+	margin-top: 1em;
+	.hide-comments-outer { margin-left:60px; }
+	
+	.comment-edit-preview { width: 660px;
+		.wall-item-container { width: 610px; }
+	 }
+	
 	& .children {
+		
 		margin-left: 40px;
 		.wall-item-container { width: 710px; }
+		.comment-edit-preview { width: 620px;
+			.wall-item-container { width: 620px; }
+		 }
 	
 		& .children {
-			margin-left: 40px;
 			.wall-item-container { width: 670px; }
+			.comment-edit-preview { width: 580px; 
+				.wall-item-container { width: 580px; }
+			}
 		
 			& .children {
-				margin-left: 40px;
 				.wall-item-container { width: 630px; }
+				.comment-edit-preview { width: 540px; 
+					.wall-item-container { width: 540px; }
+				}
 
 				& .children {
-					margin-left: 40px;
 					.wall-item-container { width: 590px; }
+					.comment-edit-preview { width: 500px; 
+						.wall-item-container { width: 500px; }
+					}
 					
 					.children {
 						margin-left: 0px;
-					}		
+						.hide-comments-outer { margin-left: 0px; }
+					}
 				}
 			}		
 		}
 	}
 }
-.threaded .hide-comments-outer { margin-left: 20px; }
+/*.threaded .hide-comments-outer { margin-left: 20px; }*/
 
 span[id^="showmore-teaser"]{
     background: url("showmore-bg.jpg") no-repeat center bottom;
diff --git a/view/theme/quattro/theme.php b/view/theme/quattro/theme.php
index 51d9d05d5..1c986e4c8 100644
--- a/view/theme/quattro/theme.php
+++ b/view/theme/quattro/theme.php
@@ -42,6 +42,16 @@ function insertFormatting(comment,BBcode,id) {
 	return true;
 }
 
+function showThread(id) {
+	$("#collapsed-comments-" + id).show()
+	$("#collapsed-comments-" + id + " .collapsed-comments").show()
+}
+function hideThread(id) {
+	$("#collapsed-comments-" + id).hide()
+	$("#collapsed-comments-" + id + " .collapsed-comments").hide()
+}
+
+
 function cmtBbOpen(id) {
 	$("#comment-edit-bb-" + id).show();
 }
diff --git a/view/theme/quattro/wall_item_tag.tpl b/view/theme/quattro/wall_item_tag.tpl
index d655306e5..e1ef93213 100644
--- a/view/theme/quattro/wall_item_tag.tpl
+++ b/view/theme/quattro/wall_item_tag.tpl
@@ -1,3 +1,5 @@
+{{ if $item.thread_level!=1 }}<div class="children">{{ endif }}
+
 <div class="wall-item-container item-tag $item.indent">
 	<div class="wall-item-item">
 		<div class="wall-item-info">
@@ -18,6 +20,8 @@
 	</div>
 </div>
 
+{{ if $item.thread_level!=1 }}</div>{{ endif }}
+
 {{ if $item.flatten }}
 <div class="wall-item-comment-wrapper" >$item.comment</div>
 {{ endif }}
diff --git a/view/theme/quattro/wall_thread.tpl b/view/theme/quattro/wall_thread.tpl
index bd165eed7..01738b666 100644
--- a/view/theme/quattro/wall_thread.tpl
+++ b/view/theme/quattro/wall_thread.tpl
@@ -7,11 +7,19 @@
 			<span id="hide-comments-$item.id" 
 				class="hide-comments fakelink" 
 				onclick="showHideComments($item.id);">$item.hide_text</span>
+			{{ if $item.thread_level==3 }} - 
+			<span id="hide-thread-$item-id"
+				class="fakelink"
+				onclick="showThread($item.id);">expand</span> /
+			<span id="hide-thread-$item-id"
+				class="fakelink"
+				onclick="hideThread($item.id);">collapse</span> thread{{ endif }}
 	</div>
 	<div id="collapsed-comments-$item.id" class="collapsed-comments" style="display: none;">
 {{endif}}
 {{ endif }}
 
+{{ if $item.thread_level!=1 }}<div class="children">{{ endif }}
 
 <div class="wall-item-decor">
 	<span class="icon s22 star $item.isstarred" id="starred-$item.id" title="$item.star.starred">$item.star.starred</span>
@@ -97,7 +105,7 @@
 		<div class="wall-item-like" id="wall-item-like-$item.id">$item.like</div>
 		<div class="wall-item-dislike" id="wall-item-dislike-$item.id">$item.dislike</div>	
 	</div>
-	{{ if $item.threaded }}{{ if $item.comment }}{{ if $item.indent==comment }}
+	{{ if $item.threaded }}{{ if $item.comment }}{{ if $item.thread_level!=1 }}
 	<div class="wall-item-bottom">
 		<div class="wall-item-links"></div>
 		<div class="wall-item-comment-wrapper">
@@ -109,24 +117,27 @@
 </div>
 
 
-{{ for $item.children as $item }}
-	<div class="children">
-		{{ if $item.type == tag }}
-			{{ inc wall_item_tag.tpl }}{{ endinc }}
-		{{ else }}
-			{{ inc $item.template }}{{ endinc }}
-		{{ endif }}
-	</div>
+
+{{ for $item.children as $child }}
+	{{ if $item.type == tag }}
+		{{ inc wall_item_tag.tpl with $item=$child }}{{ endinc }}
+	{{ else }}
+		{{ inc $item.template with $item=$child }}{{ endinc }}
+	{{ endif }}
 {{ endfor }}
 
+{{ if $item.thread_level!=1 }}</div>{{ endif }}
+
+
 {{if $mode == display}}
 {{ else }}
 {{if $item.comment_lastcollapsed}}</div>{{endif}}
 {{ endif }}
 
-{{ if $item.indent!=comment}}
+{{if $item.threaded}}{{if $item.comment}}{{if $item.thread_level==1}}
 <div class="wall-item-comment-wrapper" >$item.comment</div>
-{{ endif }}
+{{ endif }}{{ endif }}{{ endif }}
+
 
 {{ if $item.flatten }}
 <div class="wall-item-comment-wrapper" >$item.comment</div>
diff --git a/view/theme/quattro/wallwall_thread.tpl b/view/theme/quattro/wallwall_thread.tpl
index ceb74517e..93a8838eb 100644
--- a/view/theme/quattro/wallwall_thread.tpl
+++ b/view/theme/quattro/wallwall_thread.tpl
@@ -2,12 +2,25 @@
 {{ else }}
 {{if $item.comment_firstcollapsed}}
 	<div class="hide-comments-outer">
-	<span id="hide-comments-total-$item.id" class="hide-comments-total">$item.num_comments</span> <span id="hide-comments-$item.id" class="hide-comments fakelink" onclick="showHideComments($item.id);">$item.hide_text</span>
+		<span id="hide-comments-total-$item.id" 
+			class="hide-comments-total">$item.num_comments</span>
+			<span id="hide-comments-$item.id" 
+				class="hide-comments fakelink" 
+				onclick="showHideComments($item.id);">$item.hide_text</span>
+			{{ if $item.thread_level==3 }} - 
+			<span id="hide-thread-$item-id"
+				class="fakelink"
+				onclick="showThread($item.id);">expand</span> /
+			<span id="hide-thread-$item-id"
+				class="fakelink"
+				onclick="hideThread($item.id);">collapse</span> thread{{ endif }}
 	</div>
 	<div id="collapsed-comments-$item.id" class="collapsed-comments" style="display: none;">
 {{endif}}
 {{ endif }}
 
+{{ if $item.thread_level!=1 }}<div class="children">{{ endif }}
+
 <div class="wall-item-decor">
 	<span class="icon s22 star $item.isstarred" id="starred-$item.id" title="$item.star.starred">$item.star.starred</span>
 	{{ if $item.lock }}<span class="icon s22 lock fakelink" onclick="lockview(event,$item.id);" title="$item.lock">$item.lock</span>{{ endif }}	
@@ -112,24 +125,26 @@
 </div>
 
 
-{{ for $item.children as $item }}
-	<div class="children">
-		{{ if $item.type == tag }}
-			{{ inc wall_item_tag.tpl }}{{ endinc }}
-		{{ else }}
-			{{ inc $item.template }}{{ endinc }}
-		{{ endif }}
-	</div>
+{{ for $item.children as $child }}
+	{{ if $item.type == tag }}
+		{{ inc wall_item_tag.tpl with $item=$child }}{{ endinc }}
+	{{ else }}
+		{{ inc $item.template with $item=$child }}{{ endinc }}
+	{{ endif }}
 {{ endfor }}
 
+{{ if $item.thread_level!=1 }}</div>{{ endif }}
+
+
 {{if $mode == display}}
 {{ else }}
 {{if $item.comment_lastcollapsed}}</div>{{endif}}
 {{ endif }}
 
-{{ if $item.indent!=comment}}
+{{if $item.threaded}}{{if $item.comment}}{{if $item.thread_level==1}}
 <div class="wall-item-comment-wrapper" >$item.comment</div>
-{{ endif }}
+{{ endif }}{{ endif }}{{ endif }}
+
 
 {{ if $item.flatten }}
 <div class="wall-item-comment-wrapper" >$item.comment</div>

From 009ebc732a38ca1a19e4667a5998b4ce10904e15 Mon Sep 17 00:00:00 2001
From: Zach Prezkuta <fermion@gmx.com>
Date: Thu, 9 Aug 2012 22:06:18 -0600
Subject: [PATCH 08/14] move tag transformation to bb2diaspora; start taking
 out unnecessary signature stuff

---
 include/bb2diaspora.php |  8 +++++
 include/diaspora.php    | 70 ++++++++++++++++++++++++++++++++---------
 include/items.php       |  5 +--
 include/notifier.php    | 25 +++++++++++++++
 4 files changed, 92 insertions(+), 16 deletions(-)

diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php
index 9ede42f6c..b0e12027a 100644
--- a/include/bb2diaspora.php
+++ b/include/bb2diaspora.php
@@ -196,6 +196,14 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) {
 	// The bbcode parser now handles youtube-links (and the other stuff) correctly.
 	// Additionally the html code is now fixed so that lists are now working.
 
+	/**
+	 * Transform #tags, strip off the [url] and replace spaces with underscore
+	 */
+	$Text = preg_replace_callback('/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', create_function('$match',
+		'return \'#\'. str_replace(\' \', \'_\', $match[2]);'
+	), $Text);
+
+
 	// Converting images with size parameters to simple images. Markdown doesn't know it.
 	$Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $Text);
 
diff --git a/include/diaspora.php b/include/diaspora.php
index 96b0b184e..3e9f20a47 100755
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -102,6 +102,37 @@ function diaspora_dispatch($importer,$msg) {
 	return $ret;
 }
 
+function diaspora_handle_from_contact($contact_id) {
+	$handle = False;
+
+	logger("diaspora_handle_from_contact: contact id is " . $contact_id, LOGGER_DEBUG);
+
+	$r = q("SELECT network, addr, self, url, nick FROM contact WHERE id = %d",
+	       intval($contact_id)
+	);
+	if($r) {
+		$contact = $r[0];
+
+		logger("diaspora_handle_from_contact: contact 'self' = " . $contact['self'] . " 'url' = " . $contact['url'], LOGGER_DEBUG);
+
+		if($contact['network'] === NETWORK_DIASPORA) {
+			$handle = $contact['addr'];
+
+//			logger("diaspora_handle_from_contact: contact id is a Diaspora person, handle = " . $handle, LOGGER_DEBUG);
+		}
+		elseif(($contact['network'] === NETWORK_DFRN) || ($contact['self'] == 1)) {
+			$baseurl_start = strpos($contact['url'],'://') + 3;
+			$baseurl_length = strpos($contact['url'],'/profile') - $baseurl_start; // allows installations in a subdirectory--not sure how Diaspora will handle
+			$baseurl = substr($contact['url'], $baseurl_start, $baseurl_length);
+			$handle = $contact['nick'] . '@' . $baseurl;
+
+//			logger("diaspora_handle_from_contact: contact id is a DFRN person, handle = " . $handle, LOGGER_DEBUG);
+		}
+	}
+
+	return $handle;
+}
+
 function diaspora_get_contact_by_handle($uid,$handle) {
 	$r = q("SELECT * FROM `contact` WHERE `network` = '%s' AND `uid` = %d AND `addr` = '%s' LIMIT 1",
 		dbesc(NETWORK_DIASPORA),
@@ -1282,7 +1313,7 @@ function diaspora_comment($importer,$xml,$msg) {
 		// the existence of parent_author_signature means the parent_author or owner
 		// is already relaying.
 
-		proc_run('php','include/notifier.php','comment',$message_id);
+		proc_run('php','include/notifier.php','comment-import',$message_id);
 	}
 
 	$myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 AND `deleted` = 0 ",
@@ -1867,7 +1898,7 @@ EOT;
 	// is already relaying. The parent_item['origin'] indicates the message was created on our system
 
 	if(($parent_item['origin']) && (! $parent_author_signature))
-		proc_run('php','include/notifier.php','comment',$message_id);
+		proc_run('php','include/notifier.php','comment-import',$message_id);
 
 	return;
 }
@@ -1993,7 +2024,7 @@ function diaspora_signed_retraction($importer,$xml,$msg) {
 						// is already relaying.
 						logger('diaspora_signed_retraction: relaying relayable_retraction');
 
-						proc_run('php','include/notifier.php','relayable_retraction',$r[0]['id']);
+						proc_run('php','include/notifier.php','drop',$r[0]['id']);
 					}
 				}
 			}
@@ -2153,12 +2184,6 @@ function diaspora_send_status($item,$owner,$contact,$public_batch = false) {
 		}
 	}
 */
-	/**
-	 * Transform #tags, strip off the [url] and replace spaces with underscore
-	 */
-	$body = preg_replace_callback('/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', create_function('$match',
-		'return \'#\'. str_replace(\' \', \'_\', $match[2]);'
-	), $body);
 
 	//if(strlen($title))
 	//	$body = "[b]".html_entity_decode($title)."[/b]\n\n".$body;
@@ -2344,8 +2369,8 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
 		// return the items ordered by `item`.`id`, in which case the wrong item is chosen as the parent.
 		// The only item with `parent` and `id` as the parent id is the parent item.
 		$p = q("select guid, type, uri, `parent-uri` from item where parent = %d and id = %d limit 1",
-			intval($item['parent']),
-			intval($item['parent'])
+		       intval($item['parent']),
+		       intval($item['parent'])
 		      );
 	//}
 	if(count($p))
@@ -2368,7 +2393,6 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
 		$like = true;
 
 		$target_type = ( $parent['uri'] === $parent['parent-uri']  ? 'Post' : 'Comment');
-//		$target_type = (strpos($parent['type'], 'comment') ? 'Comment' : 'Post');
 //		$positive = (($item['deleted']) ? 'false' : 'true');
 		$positive = 'true';
 
@@ -2382,7 +2406,7 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
 	// fetch the original signature	if the relayable was created by a Diaspora
 	// or DFRN user. Relayables for other networks are not supported.
 
-	$r = q("select * from sign where " . $sql_sign_id . " = %d limit 1",
+/*	$r = q("select * from sign where " . $sql_sign_id . " = %d limit 1",
 		intval($item['id'])
 	);
 	if(count($r)) { 
@@ -2398,7 +2422,25 @@ function diaspora_send_relay($item,$owner,$contact,$public_batch = false) {
 		// function is called
 		logger('diaspora_send_relay: original author signature not found, cannot send relayable');
 		return;
-	}
+	}*/
+
+	/* Since the author signature is only checked by the parent, not by the relay recipients,
+	 * I think it may not be necessary for us to do so much work to preserve all the original
+	 * signatures. The important thing that Diaspora DOES need is the original creator's handle.
+	 * Let's just generate that and forget about all the original author signature stuff.
+	 *
+	 * Note: this might be more of an problem if we want to support likes on comments for older
+	 * versions of Diaspora (diaspora-pistos), but since there are a number of problems with
+	 * doing that, let's ignore it for now.
+	 *
+	 * Currently, only DFRN contacts are supported. StatusNet shouldn't be hard, but it hasn't
+	 * been done yet
+	 */
+
+	$handle = diaspora_handle_from_contact($item['contact-id']);
+	if(! $handle)
+		return;
+
 
 	if($relay_retract)
 		$sender_signed_text = $item['guid'] . ';' . $target_type;
diff --git a/include/items.php b/include/items.php
index 93200cc4b..0ba40e0fa 100755
--- a/include/items.php
+++ b/include/items.php
@@ -2459,6 +2459,7 @@ function local_delivery($importer,$data) {
 
 					$is_a_remote_delete = false;
 
+					// POSSIBLE CLEANUP --> Why select so many fields when only forum_mode and wall are used?
 					$r = q("select `item`.`id`, `item`.`uri`, `item`.`tag`, `item`.`forum_mode`,`item`.`origin`,`item`.`wall`, 
 						`contact`.`name`, `contact`.`url`, `contact`.`thumb` from `item` 
 						LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` 
@@ -2472,7 +2473,7 @@ function local_delivery($importer,$data) {
 						intval($importer['importer_uid'])
 					);
 					if($r && count($r))
-						$is_a_remote_delete = true;			
+						$is_a_remote_delete = true;
 
 					// Does this have the characteristics of a community or private group comment?
 					// If it's a reply to a wall post on a community/prvgroup page it's a 
@@ -2799,7 +2800,7 @@ function local_delivery($importer,$data) {
 					}
 
 					if($posted_id && $parent) {
-				
+
 						proc_run('php',"include/notifier.php","comment-import","$posted_id");
 					
 						if((! $is_like) && (! $importer['self'])) {
diff --git a/include/notifier.php b/include/notifier.php
index f54efba31..947818d59 100644
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -18,6 +18,31 @@ require_once('include/html2plain.php');
  * us by hosting providers. 
  */
 
+/*
+ * The notifier is typically called with:
+ *
+ *		proc_run('php', "include/notifier.php", COMMAND, ITEM_ID);
+ *
+ * where COMMAND is one of the following:
+ *
+ *		activity				(in diaspora.php, dfrn_confirm.php, profiles.php)
+ *		comment-import			(in diaspora.php, items.php)
+ *		comment-new				(in item.php)
+ *		drop					(in diaspora.php, items.php, photos.php)
+ *		edit_post				(in item.php)
+ *		event					(in events.php)
+ *		expire					(in items.php)
+ *		like					(in like.php, poke.php)
+ *		mail					(in message.php)
+ *		suggest					(in fsuggest.php)
+ *		tag						(in photos.php, poke.php, tagger.php)
+ *		tgroup					(in items.php)
+ *		wall-new				(in photos.php, item.php)
+ *
+ * and ITEM_ID is the id of the item in the database that needs to be sent to others.
+ */
+
+
 function notifier_run($argv, $argc){
 	global $a, $db;
 

From d9279da369d34a804f9e1af6b5b88ae0c3864854 Mon Sep 17 00:00:00 2001
From: Zach Prezkuta <fermion@gmx.com>
Date: Thu, 9 Aug 2012 21:17:11 -0600
Subject: [PATCH 09/14] - Frost Mobile: redo CSS to adjust automatically to the
 screen width - Frost Mobile: various tweaks and fixes - Allow themes to limit
 number of items on the Network page

---
 boot.php                               |   1 +
 mod/network.php                        |  15 ++-
 view/theme/frost-mobile/TODO           |   8 +-
 view/theme/frost-mobile/head.tpl       |   7 +-
 view/theme/frost-mobile/js/main.js     |  18 ++--
 view/theme/frost-mobile/js/main.min.js |   2 +-
 view/theme/frost-mobile/js/theme.js    |   6 +-
 view/theme/frost-mobile/mail_conv.tpl  |  18 ++++
 view/theme/frost-mobile/style.css      | 121 +++++++++++++++++--------
 view/theme/frost-mobile/theme.php      |   2 +-
 10 files changed, 137 insertions(+), 61 deletions(-)
 create mode 100644 view/theme/frost-mobile/mail_conv.tpl

diff --git a/boot.php b/boot.php
index c50dbb582..647f779e8 100644
--- a/boot.php
+++ b/boot.php
@@ -364,6 +364,7 @@ if(! class_exists('App')) {
 		public	$sourcename = '';
 		public	$videowidth = 425;
 		public	$videoheight = 350;
+		public	$force_max_items = 0;
 
 		private $scheme;
 		private $hostname;
diff --git a/mod/network.php b/mod/network.php
index 17368ab92..97f00eeda 100644
--- a/mod/network.php
+++ b/mod/network.php
@@ -563,7 +563,7 @@ function network_content(&$a, $update = 0) {
 
 	}
 	else {
- 	        if(! get_pconfig(local_user(),'system','alt_pager')) {
+		if(! get_pconfig(local_user(),'system','alt_pager')) {
 		        $r = q("SELECT COUNT(*) AS `total`
 			        FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
 			        WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
@@ -576,10 +576,15 @@ function network_content(&$a, $update = 0) {
 		        if(count($r)) {
 			        $a->set_pager_total($r[0]['total']);
 		        }
-	         }
-                $itemspage_network = get_pconfig(local_user(),'system','itemspage_network');
-                $a->set_pager_itemspage(((intval($itemspage_network)) ? $itemspage_network : 40));
-                $pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
+		}
+
+		$itemspage_network = get_pconfig(local_user(),'system','itemspage_network');
+		$itemspage_network = ((intval($itemspage_network)) ? $itemspage_network : 40);
+		if(($a->force_max_items > 0) && ($a->force_max_items < $itemspage_network))
+			$itemspage_network = $a->force_max_items;
+
+		$a->set_pager_itemspage($itemspage_network);
+		$pager_sql = sprintf(" LIMIT %d, %d ",intval($a->pager['start']), intval($a->pager['itemspage']));
 	}
 
 	$simple_update = (($update) ? " and `item`.`unseen` = 1 " : '');
diff --git a/view/theme/frost-mobile/TODO b/view/theme/frost-mobile/TODO
index 940d9e588..05e32cb47 100644
--- a/view/theme/frost-mobile/TODO
+++ b/view/theme/frost-mobile/TODO
@@ -12,11 +12,15 @@ Photo album display?
 
 - Admin: access to more pages than summary?
 
-- Embedded video playback is way too big
+- Find a way to show embedded videos at the normal size for tablets that can handle it
+
+- Need to find a way to deal with freakin annoying elements that don't respect screen width limits. Specifically, need to find a way to keep them from forcing a horizontal scroll bar to show up and making the rest of the body text overflow the item's borders that is screen-width sensitive (it's annoying to have a 300px truncated code block on a 1024px wide screen). At least the following cause problems:
+	- code blocks
+	- blockquote blocks
+	- #reallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongtags
 
 - Needs to be faster!
 	- Reduce DOM elements (~2400 for 10 items, ~8400 for 40 items)
-	- Automatically set limit of 10 items for Network and Profile?
 
 
 
diff --git a/view/theme/frost-mobile/head.tpl b/view/theme/frost-mobile/head.tpl
index 8496667e1..a849f4459 100644
--- a/view/theme/frost-mobile/head.tpl
+++ b/view/theme/frost-mobile/head.tpl
@@ -1,7 +1,10 @@
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-<meta content='width=device-width, minimum-scale=1 maximum-scale=1' name='viewport'>
+<!--<meta content='width=device-width, minimum-scale=1 maximum-scale=1' name='viewport'>
 <meta content='True' name='HandheldFriendly'>
-<meta content='320' name='MobileOptimized'>
+<meta content='320' name='MobileOptimized'>-->
+<meta name="viewport" content="width=device-width; initial-scale = 1.0; maximum-scale=1.0; user-scalable=no" />
+<!--<meta name="viewport" content="width=100%;  initial-scale=1; maximum-scale=1; minimum-scale=1; user-scalable=no;" />-->
+
 <base href="$baseurl/" />
 <meta name="generator" content="$generator" />
 <!--<link rel="stylesheet" href="$baseurl/library/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
diff --git a/view/theme/frost-mobile/js/main.js b/view/theme/frost-mobile/js/main.js
index bffa7977a..f8d8b8db0 100644
--- a/view/theme/frost-mobile/js/main.js
+++ b/view/theme/frost-mobile/js/main.js
@@ -401,19 +401,19 @@
 
 	function getPosition(e) {
 		var cursor = {x:0, y:0};
-		if ( e.pageX || e.pageY  ) {
-			cursor.x = e.pageX;
-			cursor.y = e.pageY;
+		if ( e.touches[0].pageX || e.touches[0].pageY  ) {
+			cursor.x = e.touches[0].pageX;
+			cursor.y = e.touches[0].pageY;
 		}
 		else {
-			if( e.clientX || e.clientY ) {
-				cursor.x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
-				cursor.y = e.clientY + (document.documentElement.scrollTop  || document.body.scrollTop)  - document.documentElement.clientTop;
+			if( e.touches[0].clientX || e.touches[0].clientY ) {
+				cursor.x = e.touches[0].clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
+				cursor.y = e.touches[0].clientY + (document.documentElement.scrollTop  || document.body.scrollTop)  - document.documentElement.clientTop;
 			}
 			else {
-				if( e.x || e.y ) {
-					cursor.x = e.x;
-					cursor.y = e.y;
+				if( e.touches[0].x || e.touches[0].y ) {
+					cursor.touches[0].x = e.touches[0].x;
+					cursor.touches[0].y = e.touches[0].y;
 				}
 			}
 		}
diff --git a/view/theme/frost-mobile/js/main.min.js b/view/theme/frost-mobile/js/main.min.js
index 337f8e249..22be25550 100644
--- a/view/theme/frost-mobile/js/main.min.js
+++ b/view/theme/frost-mobile/js/main.min.js
@@ -1 +1 @@
-function openClose(e){document.getElementById(e).style.display=="block"?document.getElementById(e).style.display="none":document.getElementById(e).style.display="block"}function openMenu(e){document.getElementById(e).style.display="block"}function closeMenu(e){document.getElementById(e).style.display="none"}function NavUpdate(){if(!stopped){var e="ping"+(localUser!=0?"?f=&uid="+localUser:"");$j.get(e,function(e){$j(e).find("result").each(function(){$j("nav").trigger("nav-update",this),$j("#live-network").length&&(src="network",liveUpdate()),$j("#live-profile").length&&(src="profile",liveUpdate()),$j("#live-community").length&&(src="community",liveUpdate()),$j("#live-notes").length&&(src="notes",liveUpdate()),$j("#live-display").length&&liking&&(liking=0,window.location.href=window.location.href),$j("#live-photos").length&&liking&&(liking=0,window.location.href=window.location.href)})})}timer=setTimeout(NavUpdate,updateInterval)}function liveUpdate(){if(src==null||stopped||!profile_uid){$j(".like-rotator").hide();return}if($j(".comment-edit-text-full").length||in_progress){livetime&&clearTimeout(livetime),livetime=setTimeout(liveUpdate,1e4);return}livetime!=null&&(livetime=null),prev="live-"+src,in_progress=!0;var e=netargs.length?"/"+netargs:"",t="update_"+src+e+"&p="+profile_uid+"&page="+profile_page+"&msie="+(msie?1:0);$j.get(t,function(e){in_progress=!1,$j(".tread-wrapper",e).each(function(){var e=$j(this).attr("id");$j("#"+e).length==0&&profile_page==1?($j("img",this).each(function(){$j(this).attr("src",$j(this).attr("dst"))}),$j("#"+prev).after($j(this))):($j("img",this).each(function(){$j(this).attr("src",$j(this).attr("dst"))}),$j("#"+e).replaceWith($j(this))),prev=e}),$j(".like-rotator").hide(),commentBusy&&(commentBusy=!1,$j("body").css("cursor","auto")),$j(".comment-edit-form  textarea").contact_autocomplete(baseurl+"/acl")})}function imgbright(e){$j(e).removeClass("drophide").addClass("drop")}function imgdull(e){$j(e).removeClass("drop").addClass("drophide")}function dolike(e,t){unpause(),$j("#like-rotator-"+e.toString()).show(),$j.get("like/"+e.toString()+"?verb="+t,NavUpdate),liking=1}function dostar(e){e=e.toString(),$j.get("starred/"+e,function(t){t.match(/1/)?($j("#starred-"+e).addClass("starred"),$j("#starred-"+e).removeClass("unstarred"),$j("#star-"+e).addClass("hidden"),$j("#unstar-"+e).removeClass("hidden")):($j("#starred-"+e).addClass("unstarred"),$j("#starred-"+e).removeClass("starred"),$j("#star-"+e).removeClass("hidden"),$j("#unstar-"+e).addClass("hidden"))})}function getPosition(e){var t={x:0,y:0};if(e.pageX||e.pageY)t.x=e.pageX,t.y=e.pageY;else if(e.clientX||e.clientY)t.x=e.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft)-document.documentElement.clientLeft,t.y=e.clientY+(document.documentElement.scrollTop||document.body.scrollTop)-document.documentElement.clientTop;else if(e.x||e.y)t.x=e.x,t.y=e.y;return t}function lockview(e,t){e=e||window.event,cursor=getPosition(e),lockvisible?lockviewhide():(lockvisible=!0,$j.get("lockview/"+t,function(e){$j("#panel").html(e),$j("#panel").css({left:cursor.x+5,top:cursor.y+5}),$j("#panel").show()}))}function lockviewhide(){lockvisible=!1,$j("#panel").hide()}function post_comment(e){return unpause(),commentBusy=!0,$j("body").css("cursor","wait"),$j("#comment-preview-inp-"+e).val("0"),$j.post("item",$j("#comment-edit-form-"+e).serialize(),function(t){if(t.success){$j("#comment-edit-wrapper-"+e).hide(),$j("#comment-edit-text-"+e).val("");var n=document.getElementById("comment-edit-text-"+e);n&&commentClose(n,e),timer&&clearTimeout(timer),timer=setTimeout(NavUpdate,10)}t.reload&&(window.location.href=t.reload)},"json"),!1}function preview_comment(e){return $j("#comment-preview-inp-"+e).val("1"),$j("#comment-edit-preview-"+e).show(),$j.post("item",$j("#comment-edit-form-"+e).serialize(),function(t){t.preview&&($j("#comment-edit-preview-"+e).html(t.preview),$j("#comment-edit-preview-"+e+" a").click(function(){return!1}))},"json"),!0}function preview_post(){return $j("#jot-preview").val("1"),$j("#jot-preview-content").show(),tinyMCE.triggerSave(),$j.post("item",$j("#profile-jot-form").serialize(),function(e){e.preview&&($j("#jot-preview-content").html(e.preview),$j("#jot-preview-content a").click(function(){return!1}))},"json"),$j("#jot-preview").val("0"),!0}function unpause(){totStopped=!1,stopped=!1,$j("#pause").html("")}function bin2hex(e){var t,n,r=0,i=[];e+="",r=e.length;for(n=0;n<r;n++)i[n]=e.charCodeAt(n).toString(16).replace(/^([\da-f])$/,"0$1");return i.join("")}function groupChangeMember(e,t,n){$j("body .fakelink").css("cursor","wait"),$j.get("group/"+e+"/"+t+"?t="+n,function(e){$j("#group-update-wrapper").html(e),$j("body .fakelink").css("cursor","auto")})}function profChangeMember(e,t){$j("body .fakelink").css("cursor","wait"),$j.get("profperm/"+e+"/"+t,function(e){$j("#prof-update-wrapper").html(e),$j("body .fakelink").css("cursor","auto")})}function contactgroupChangeMember(e,t){$j("body").css("cursor","wait"),$j.get("contactgroup/"+e+"/"+t,function(e){$j("body").css("cursor","auto")})}function checkboxhighlight(e){$j(e).is(":checked")?$j(e).addClass("checkeditem"):$j(e).removeClass("checkeditem")}function notifyMarkAll(){$j.get("notify/mark/all",function(e){timer&&clearTimeout(timer),timer=setTimeout(NavUpdate,1e3)})}function fcFileBrowser(e,t,n,r){var i=baseurl+"/fbrowser/"+n+"/";return tinyMCE.activeEditor.windowManager.open({file:i,title:"File Browser",width:420,height:400,resizable:"yes",inline:"yes",close_previous:"no"},{window:r,input:e}),!1}function setupFieldRichtext(){tinyMCE.init({theme:"advanced",mode:"specific_textareas",editor_selector:"fieldRichtext",plugins:"bbcode,paste, inlinepopups",theme_advanced_buttons1:"bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",theme_advanced_buttons2:"",theme_advanced_buttons3:"",theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"center",theme_advanced_blockformats:"blockquote,code",paste_text_sticky:!0,entity_encoding:"raw",add_unload_trigger:!1,remove_linebreaks:!1,force_p_newlines:!1,force_br_newlines:!0,forced_root_block:"",convert_urls:!1,content_css:baseurl+"/view/custom_tinymce.css",theme_advanced_path:!1,file_browser_callback:"fcFileBrowser"})}function previewTheme(e){theme=$j(e).val(),$j.getJSON("pretheme?f=&theme="+theme,function(e){$j("#theme-preview").html('<div id="theme-desc">'+e.desc+'</div><div id="theme-version">'+e.version+'</div><div id="theme-credits">'+e.credits+'</div><a href="'+e.img+'"><img src="'+e.img+'" width="320" height="240" alt="'+theme+'" /></a>')})}var src=null,prev=null,livetime=null,msie=!1,stopped=!1,totStopped=!1,timer=null,pr=0,liking=0,in_progress=!1,langSelect=!1,commentBusy=!1,last_popup_menu=null,last_popup_button=null;$j(function(){function e(e){last_popup_menu&&"#"+last_popup_menu.attr("id")!==$j(e.target).attr("rel")&&(last_popup_menu.hide(),last_popup_menu.attr("id")=="nav-notifications-menu"&&$j("section").show(),last_popup_button.removeClass("selected"),last_popup_menu=null,last_popup_button=null)}$j.ajaxSetup({cache:!1}),msie=$j.browser.msie,$j(".onoff input").each(function(){val=$j(this).val(),id=$j(this).attr("id"),$j("#"+id+"_onoff ."+(val==0?"on":"off")).addClass("hidden")}),$j(".onoff > a").click(function(e){e.preventDefault();var t=$j(this).siblings("input"),n=1-t.val(),r=t.attr("id");$j("#"+r+"_onoff ."+(n==0?"on":"off")).addClass("hidden"),$j("#"+r+"_onoff ."+(n==1?"on":"off")).removeClass("hidden"),t.val(n)}),$j("img[rel^=#]").click(function(t){return e(t),menu=$j($j(this).attr("rel")),t.preventDefault(),t.stopPropagation(),menu.attr("popup")=="false"?!1:(menu.css("display")=="none"?($j(this).parent().addClass("selected"),menu.show(),menu.attr("id")=="nav-notifications-menu"&&$j("section").hide(),last_popup_menu=menu,last_popup_button=$j(this).parent()):($j(this).parent().removeClass("selected"),menu.hide(),menu.attr("id")=="nav-notifications-menu"&&$j("section").show(),last_popup_menu=null,last_popup_button=null),!1)}),$j("html").click(function(t){e(t)});var t=unescape($j("#nav-notifications-template[rel=template]").html()),n=unescape($j("<div>").append($j("#nav-notifications-see-all").clone()).html()),r=unescape($j("<div>").append($j("#nav-notifications-mark-all").clone()).html()),i=unescape($j("#nav-notifications-menu").html());$j("nav").bind("nav-update",function(e,s){var o=$j(s).find("invalid").text();o==1&&(window.location.href=window.location.href);var u=$j(s).find("net").text();u==0?(u="",$j("#net-update").removeClass("show")):$j("#net-update").addClass("show"),$j("#net-update").html(u);var a=$j(s).find("home").text();a==0?(a="",$j("#home-update").removeClass("show")):$j("#home-update").addClass("show"),$j("#home-update").html(a);var f=$j(s).find("intro").text();f==0?(f="",$j("#intro-update").removeClass("show")):$j("#intro-update").addClass("show"),$j("#intro-update").html(f);var l=$j(s).find("mail").text();l==0?(l="",$j("#mail-update").removeClass("show")):$j("#mail-update").addClass("show"),$j("#mail-update").html(l);var f=$j(s).find("intro").text();f==0?(f="",$j("#intro-update-li").removeClass("show")):$j("#intro-update-li").addClass("show"),$j("#intro-update-li").html(f);var l=$j(s).find("mail").text();l==0?(l="",$j("#mail-update-li").removeClass("show")):$j("#mail-update-li").addClass("show"),$j("#mail-update-li").html(l);var c=$j(s).find("notif");c.children("note").length==0?$j("#nav-notifications-menu").html(i):(nnm=$j("#nav-notifications-menu"),nnm.html(n+r),c.children("note").each(function(){e=$j(this),text=e.text().format("<span class='contactname'>"+e.attr("name")+"</span>"),html=t.format(e.attr("href"),e.attr("photo"),text,e.attr("date"),e.attr("seen")),nnm.append(html)})),notif=c.attr("count"),notif>0?$j("#nav-notifications-linkmenu").addClass("on"):$j("#nav-notifications-linkmenu").removeClass("on"),notif==0?(notif="",$j("#notify-update").removeClass("show")):$j("#notify-update").addClass("show"),$j("#notify-update").html(notif);var h=$j(s).find("sysmsgs");h.children("notice").each(function(){text=$j(this).text(),$j.jGrowl(text,{sticky:!1,theme:"notice",life:1500})}),h.children("info").each(function(){text=$j(this).text(),$j.jGrowl(text,{sticky:!1,theme:"info",life:1e3})})}),NavUpdate()});var lockvisible=!1;String.prototype.format=function(){var e=this;for(var t=0;t<arguments.length;t++){var n=new RegExp("\\{"+t+"\\}","gi");e=e.replace(n,arguments[t])}return e},Array.prototype.remove=function(e){to=undefined,from=this.indexOf(e);var t=this.slice((to||from)+1||this.length);return this.length=from<0?this.length+from:from,this.push.apply(this,t)};
\ No newline at end of file
+function openClose(e){document.getElementById(e).style.display=="block"?document.getElementById(e).style.display="none":document.getElementById(e).style.display="block"}function openMenu(e){document.getElementById(e).style.display="block"}function closeMenu(e){document.getElementById(e).style.display="none"}function NavUpdate(){if(!stopped){var e="ping"+(localUser!=0?"?f=&uid="+localUser:"");$j.get(e,function(e){$j(e).find("result").each(function(){$j("nav").trigger("nav-update",this),$j("#live-network").length&&(src="network",liveUpdate()),$j("#live-profile").length&&(src="profile",liveUpdate()),$j("#live-community").length&&(src="community",liveUpdate()),$j("#live-notes").length&&(src="notes",liveUpdate()),$j("#live-display").length&&liking&&(liking=0,window.location.href=window.location.href),$j("#live-photos").length&&liking&&(liking=0,window.location.href=window.location.href)})})}timer=setTimeout(NavUpdate,updateInterval)}function liveUpdate(){if(src==null||stopped||!profile_uid){$j(".like-rotator").hide();return}if($j(".comment-edit-text-full").length||in_progress){livetime&&clearTimeout(livetime),livetime=setTimeout(liveUpdate,1e4);return}livetime!=null&&(livetime=null),prev="live-"+src,in_progress=!0;var e=netargs.length?"/"+netargs:"",t="update_"+src+e+"&p="+profile_uid+"&page="+profile_page+"&msie="+(msie?1:0);$j.get(t,function(e){in_progress=!1,$j(".tread-wrapper",e).each(function(){var e=$j(this).attr("id");$j("#"+e).length==0&&profile_page==1?($j("img",this).each(function(){$j(this).attr("src",$j(this).attr("dst"))}),$j("#"+prev).after($j(this))):($j("img",this).each(function(){$j(this).attr("src",$j(this).attr("dst"))}),$j("#"+e).replaceWith($j(this))),prev=e}),$j(".like-rotator").hide(),commentBusy&&(commentBusy=!1,$j("body").css("cursor","auto")),$j(".comment-edit-form  textarea").contact_autocomplete(baseurl+"/acl")})}function imgbright(e){$j(e).removeClass("drophide").addClass("drop")}function imgdull(e){$j(e).removeClass("drop").addClass("drophide")}function dolike(e,t){unpause(),$j("#like-rotator-"+e.toString()).show(),$j.get("like/"+e.toString()+"?verb="+t,NavUpdate),liking=1}function dostar(e){e=e.toString(),$j.get("starred/"+e,function(t){t.match(/1/)?($j("#starred-"+e).addClass("starred"),$j("#starred-"+e).removeClass("unstarred"),$j("#star-"+e).addClass("hidden"),$j("#unstar-"+e).removeClass("hidden")):($j("#starred-"+e).addClass("unstarred"),$j("#starred-"+e).removeClass("starred"),$j("#star-"+e).removeClass("hidden"),$j("#unstar-"+e).addClass("hidden"))})}function getPosition(e){var t={x:0,y:0};if(e.touches[0].pageX||e.touches[0].pageY)t.x=e.touches[0].pageX,t.y=e.touches[0].pageY;else if(e.touches[0].clientX||e.touches[0].clientY)t.x=e.touches[0].clientX+(document.documentElement.scrollLeft||document.body.scrollLeft)-document.documentElement.clientLeft,t.y=e.touches[0].clientY+(document.documentElement.scrollTop||document.body.scrollTop)-document.documentElement.clientTop;else if(e.touches[0].x||e.touches[0].y)t.touches[0].x=e.touches[0].x,t.touches[0].y=e.touches[0].y;return t}function lockview(e,t){e=e||window.event,cursor=getPosition(e),lockvisible?lockviewhide():(lockvisible=!0,$j.get("lockview/"+t,function(e){$j("#panel").html(e),$j("#panel").css({left:cursor.x+5,top:cursor.y+5}),$j("#panel").show()}))}function lockviewhide(){lockvisible=!1,$j("#panel").hide()}function post_comment(e){return unpause(),commentBusy=!0,$j("body").css("cursor","wait"),$j("#comment-preview-inp-"+e).val("0"),$j.post("item",$j("#comment-edit-form-"+e).serialize(),function(t){if(t.success){$j("#comment-edit-wrapper-"+e).hide(),$j("#comment-edit-text-"+e).val("");var n=document.getElementById("comment-edit-text-"+e);n&&commentClose(n,e),timer&&clearTimeout(timer),timer=setTimeout(NavUpdate,10)}t.reload&&(window.location.href=t.reload)},"json"),!1}function preview_comment(e){return $j("#comment-preview-inp-"+e).val("1"),$j("#comment-edit-preview-"+e).show(),$j.post("item",$j("#comment-edit-form-"+e).serialize(),function(t){t.preview&&($j("#comment-edit-preview-"+e).html(t.preview),$j("#comment-edit-preview-"+e+" a").click(function(){return!1}))},"json"),!0}function preview_post(){return $j("#jot-preview").val("1"),$j("#jot-preview-content").show(),tinyMCE.triggerSave(),$j.post("item",$j("#profile-jot-form").serialize(),function(e){e.preview&&($j("#jot-preview-content").html(e.preview),$j("#jot-preview-content a").click(function(){return!1}))},"json"),$j("#jot-preview").val("0"),!0}function unpause(){totStopped=!1,stopped=!1,$j("#pause").html("")}function bin2hex(e){var t,n,r=0,i=[];e+="",r=e.length;for(n=0;n<r;n++)i[n]=e.charCodeAt(n).toString(16).replace(/^([\da-f])$/,"0$1");return i.join("")}function groupChangeMember(e,t,n){$j("body .fakelink").css("cursor","wait"),$j.get("group/"+e+"/"+t+"?t="+n,function(e){$j("#group-update-wrapper").html(e),$j("body .fakelink").css("cursor","auto")})}function profChangeMember(e,t){$j("body .fakelink").css("cursor","wait"),$j.get("profperm/"+e+"/"+t,function(e){$j("#prof-update-wrapper").html(e),$j("body .fakelink").css("cursor","auto")})}function contactgroupChangeMember(e,t){$j("body").css("cursor","wait"),$j.get("contactgroup/"+e+"/"+t,function(e){$j("body").css("cursor","auto")})}function checkboxhighlight(e){$j(e).is(":checked")?$j(e).addClass("checkeditem"):$j(e).removeClass("checkeditem")}function notifyMarkAll(){$j.get("notify/mark/all",function(e){timer&&clearTimeout(timer),timer=setTimeout(NavUpdate,1e3)})}function fcFileBrowser(e,t,n,r){var i=baseurl+"/fbrowser/"+n+"/";return tinyMCE.activeEditor.windowManager.open({file:i,title:"File Browser",width:420,height:400,resizable:"yes",inline:"yes",close_previous:"no"},{window:r,input:e}),!1}function setupFieldRichtext(){tinyMCE.init({theme:"advanced",mode:"specific_textareas",editor_selector:"fieldRichtext",plugins:"bbcode,paste, inlinepopups",theme_advanced_buttons1:"bold,italic,underline,undo,redo,link,unlink,image,forecolor,formatselect,code",theme_advanced_buttons2:"",theme_advanced_buttons3:"",theme_advanced_toolbar_location:"top",theme_advanced_toolbar_align:"center",theme_advanced_blockformats:"blockquote,code",paste_text_sticky:!0,entity_encoding:"raw",add_unload_trigger:!1,remove_linebreaks:!1,force_p_newlines:!1,force_br_newlines:!0,forced_root_block:"",convert_urls:!1,content_css:baseurl+"/view/custom_tinymce.css",theme_advanced_path:!1,file_browser_callback:"fcFileBrowser"})}function previewTheme(e){theme=$j(e).val(),$j.getJSON("pretheme?f=&theme="+theme,function(e){$j("#theme-preview").html('<div id="theme-desc">'+e.desc+'</div><div id="theme-version">'+e.version+'</div><div id="theme-credits">'+e.credits+'</div><a href="'+e.img+'"><img src="'+e.img+'" width="320" height="240" alt="'+theme+'" /></a>')})}var src=null,prev=null,livetime=null,msie=!1,stopped=!1,totStopped=!1,timer=null,pr=0,liking=0,in_progress=!1,langSelect=!1,commentBusy=!1,last_popup_menu=null,last_popup_button=null;$j(function(){function e(e){last_popup_menu&&"#"+last_popup_menu.attr("id")!==$j(e.target).attr("rel")&&(last_popup_menu.hide(),last_popup_menu.attr("id")=="nav-notifications-menu"&&$j("section").show(),last_popup_button.removeClass("selected"),last_popup_menu=null,last_popup_button=null)}$j.ajaxSetup({cache:!1}),msie=$j.browser.msie,$j(".onoff input").each(function(){val=$j(this).val(),id=$j(this).attr("id"),$j("#"+id+"_onoff ."+(val==0?"on":"off")).addClass("hidden")}),$j(".onoff > a").click(function(e){e.preventDefault();var t=$j(this).siblings("input"),n=1-t.val(),r=t.attr("id");$j("#"+r+"_onoff ."+(n==0?"on":"off")).addClass("hidden"),$j("#"+r+"_onoff ."+(n==1?"on":"off")).removeClass("hidden"),t.val(n)}),$j("img[rel^=#]").click(function(t){return e(t),menu=$j($j(this).attr("rel")),t.preventDefault(),t.stopPropagation(),menu.attr("popup")=="false"?!1:(menu.css("display")=="none"?($j(this).parent().addClass("selected"),menu.show(),menu.attr("id")=="nav-notifications-menu"&&$j("section").hide(),last_popup_menu=menu,last_popup_button=$j(this).parent()):($j(this).parent().removeClass("selected"),menu.hide(),menu.attr("id")=="nav-notifications-menu"&&$j("section").show(),last_popup_menu=null,last_popup_button=null),!1)}),$j("html").click(function(t){e(t)});var t=unescape($j("#nav-notifications-template[rel=template]").html()),n=unescape($j("<div>").append($j("#nav-notifications-see-all").clone()).html()),r=unescape($j("<div>").append($j("#nav-notifications-mark-all").clone()).html()),i=unescape($j("#nav-notifications-menu").html());$j("nav").bind("nav-update",function(e,s){var o=$j(s).find("invalid").text();o==1&&(window.location.href=window.location.href);var u=$j(s).find("net").text();u==0?(u="",$j("#net-update").removeClass("show")):$j("#net-update").addClass("show"),$j("#net-update").html(u);var a=$j(s).find("home").text();a==0?(a="",$j("#home-update").removeClass("show")):$j("#home-update").addClass("show"),$j("#home-update").html(a);var f=$j(s).find("intro").text();f==0?(f="",$j("#intro-update").removeClass("show")):$j("#intro-update").addClass("show"),$j("#intro-update").html(f);var l=$j(s).find("mail").text();l==0?(l="",$j("#mail-update").removeClass("show")):$j("#mail-update").addClass("show"),$j("#mail-update").html(l);var f=$j(s).find("intro").text();f==0?(f="",$j("#intro-update-li").removeClass("show")):$j("#intro-update-li").addClass("show"),$j("#intro-update-li").html(f);var l=$j(s).find("mail").text();l==0?(l="",$j("#mail-update-li").removeClass("show")):$j("#mail-update-li").addClass("show"),$j("#mail-update-li").html(l);var c=$j(s).find("notif");c.children("note").length==0?$j("#nav-notifications-menu").html(i):(nnm=$j("#nav-notifications-menu"),nnm.html(n+r),c.children("note").each(function(){e=$j(this),text=e.text().format("<span class='contactname'>"+e.attr("name")+"</span>"),html=t.format(e.attr("href"),e.attr("photo"),text,e.attr("date"),e.attr("seen")),nnm.append(html)})),notif=c.attr("count"),notif>0?$j("#nav-notifications-linkmenu").addClass("on"):$j("#nav-notifications-linkmenu").removeClass("on"),notif==0?(notif="",$j("#notify-update").removeClass("show")):$j("#notify-update").addClass("show"),$j("#notify-update").html(notif);var h=$j(s).find("sysmsgs");h.children("notice").each(function(){text=$j(this).text(),$j.jGrowl(text,{sticky:!1,theme:"notice",life:1500})}),h.children("info").each(function(){text=$j(this).text(),$j.jGrowl(text,{sticky:!1,theme:"info",life:1e3})})}),NavUpdate()});var lockvisible=!1;String.prototype.format=function(){var e=this;for(var t=0;t<arguments.length;t++){var n=new RegExp("\\{"+t+"\\}","gi");e=e.replace(n,arguments[t])}return e},Array.prototype.remove=function(e){to=undefined,from=this.indexOf(e);var t=this.slice((to||from)+1||this.length);return this.length=from<0?this.length+from:from,this.push.apply(this,t)};
\ No newline at end of file
diff --git a/view/theme/frost-mobile/js/theme.js b/view/theme/frost-mobile/js/theme.js
index 6cbeb2a32..826fca316 100644
--- a/view/theme/frost-mobile/js/theme.js
+++ b/view/theme/frost-mobile/js/theme.js
@@ -1,8 +1,8 @@
 $j(document).ready(function() {
 
-		/* enable tinymce on focus and click */
-		$j("#profile-jot-text").focus(enableOnUser);
-		$j("#profile-jot-text").click(enableOnUser);
+	/* enable tinymce on focus and click */
+	$j("#profile-jot-text").focus(enableOnUser);
+	$j("#profile-jot-text").click(enableOnUser);
 
 	if(typeof window.AjaxUpload != "undefined") {
 		switch(window.ajaxType) {
diff --git a/view/theme/frost-mobile/mail_conv.tpl b/view/theme/frost-mobile/mail_conv.tpl
new file mode 100644
index 000000000..3529fcffa
--- /dev/null
+++ b/view/theme/frost-mobile/mail_conv.tpl
@@ -0,0 +1,18 @@
+<div class="mail-conv-outside-wrapper">
+	<div class="mail-conv-sender" >
+		<a href="$mail.from_url" class="mail-conv-sender-url" ><img class="mframe mail-conv-sender-photo$mail.sparkle" src="$mail.from_photo" heigth="80" width="80" alt="$mail.from_name" /></a>
+	</div>
+	<div class="mail-conv-detail" >
+		<div class="mail-conv-sender-name" >$mail.from_name</div>
+		<div class="mail-conv-date">$mail.date</div>
+		<div class="mail-conv-subject">$mail.subject</div>
+	</div>
+	<div class="mail-conv-body">$mail.body</div>
+</div>
+<div class="mail-conv-outside-wrapper-end"></div>
+
+
+<div class="mail-conv-delete-wrapper" id="mail-conv-delete-wrapper-$mail.id" ><a href="message/drop/$mail.id" class="icon drophide delete-icon mail-list-delete-icon" onclick="return confirmDelete();" title="$mail.delete" id="mail-conv-delete-icon-$mail.id" class="mail-conv-delete-icon" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a></div>
+<div class="mail-conv-delete-end"></div>
+
+<hr class="mail-conv-break" />
diff --git a/view/theme/frost-mobile/style.css b/view/theme/frost-mobile/style.css
index 8095d7eff..745f90eb6 100644
--- a/view/theme/frost-mobile/style.css
+++ b/view/theme/frost-mobile/style.css
@@ -9,9 +9,10 @@
 
 /* generals */
 html {
-	width: 320px;
+/*	width: 320px;*/
 	margin-left: auto;
 	margin-right: auto;
+	overflow-x:hidden;
 }
 
 body {
@@ -23,6 +24,7 @@ body {
 	background-repeat: repeat-x;
 	color: #505050;
 	margin: 0px;
+	overflow-x:hidden;
 }
 
 div.container {
@@ -32,6 +34,7 @@ div.container {
 	margin-bottom: 0px;
 	margin-left: auto;
 	margin-right: auto;
+	overflow-x:hidden;
 }
 
 a, a:visited, a:link { color: #3465a4; text-decoration: none; }
@@ -39,7 +42,7 @@ a:hover {text-decoration: underline; }
 
 input {
 	border: 1px solid #666666;
-	-moz-border-radius: 3px;
+/*	-moz-border-radius: 3px;*/
 	-webkit-border-radius: 3px;
 	border-radius: 3px;	
 	padding: 3px;
@@ -78,6 +81,10 @@ blockquote {
 	background-color: #f4f8f9;
 	border-left: 4px solid #dae4ee;
 	padding: 0.4em;
+	margin-left: 20px;
+	margin-right: 0px;
+	width: 260px;
+	overflow: hidden;
 }
 
 .icollapse-wrapper, .ccollapse-wrapper {
@@ -176,7 +183,7 @@ nav #banner #logo-text a:hover { text-decoration: none; }
 	border-bottom: 0px;
 	background-color: #aec0d3;
 	color: #565854;		
-	-moz-border-radius: 3px 3px 0px 0px;
+/*	-moz-border-radius: 3px 3px 0px 0px;*/
 	-webkit-border-radius: 3px 3px 0px 0px;
 	border-radius: 3px 3px 0px 0px;	
 }
@@ -197,7 +204,7 @@ nav #banner #logo-text a:hover { text-decoration: none; }
 	right: 2px;
 	padding: 1px 2px;
 	border-radius: 4px;
-	-moz-border-radius: 4px;
+/*	-moz-border-radius: 4px;*/
 	-webkit-border-radius: 4px;
 	background-color: gold !important;
 }
@@ -245,7 +252,7 @@ nav .nav-link {
 /*	right: -33px;*/
 	padding: 1em 0px;
 
-	-moz-box-shadow: 3px 3px 5px #555;
+/*	-moz-box-shadow: 3px 3px 5px #555;*/
 	-webkit-box-shadow: 3px 3px 5px #555;
 	box-shadow: 3px 3px 5px #555;
 
@@ -300,7 +307,7 @@ aside {
 	display: block;
 	color: #FFFFFF;
 	-webkit-border-radius: 5px ;
-	-moz-border-radius: 5px;
+/*	-moz-border-radius: 5px;*/
 	border-radius: 5px;
 	padding: 5px;
 	font-weight: bold;
@@ -310,7 +317,7 @@ aside {
 	display: block;
 	color: #FFFFFF;
 	-webkit-border-radius: 5px ;
-	-moz-border-radius: 5px;
+/*	-moz-border-radius: 5px;*/
 	border-radius: 5px;
 	padding: 5px;
 	font-weight: bold;
@@ -320,10 +327,11 @@ aside {
 /* section */
 div.section-wrapper {
 /*	width: 100%;*/
-	width: 320px;
+/*	width: 320px;
 
 	margin-left: auto;
-	margin-right: auto;
+	margin-right: auto;*/
+	margin-left: 0px;
 
 	/*padding-right:2em;*/
 
@@ -349,6 +357,7 @@ section {
 
 	min-height: 112px;
 	border-top: 1px solid #babdb6;	
+	overflow-x:hidden;
 }
 
 .tabs {
@@ -363,7 +372,7 @@ section {
 	padding: 0.4em 2em;
 	border: 1px solid #aaa;
 	border-radius: 8px;
-	-moz-border-radius: 8px;
+/*	-moz-border-radius: 8px;*/
 	-webkit-border-radius: 8px;
 }
 .tab {
@@ -437,8 +446,8 @@ footer {
 
 #jot-title::-webkit-input-placeholder{font-weight: normal;}
 #jot-category::-webkit-input-placeholder{font-weight: normal;}
-#jot-title:-moz-placeholder{font-weight: normal;}
-#jot-category:-moz-placeholder{font-weight: normal;}
+/*#jot-title:-moz-placeholder{font-weight: normal;}
+#jot-category:-moz-placeholder{font-weight: normal;}*/
 		
 	
 #jot-title:hover,
@@ -468,7 +477,7 @@ footer {
 
 .group-selected, .nets-selected, .fileas-selected, .categories-selected {
 	padding: 3px;
-	-moz-border-radius: 3px;
+/*	-moz-border-radius: 3px;*/
 	-webkit-border-radius: 3px;
 	border-radius: 3px;	
 	border: 1px solid #CCCCCC;
@@ -478,7 +487,7 @@ footer {
 
 .settings-widget .selected {
 	padding: 3px;
-	-moz-border-radius: 3px;
+/*	-moz-border-radius: 3px;*/
 	-webkit-border-radius: 3px;
 	border-radius: 3px;	
 	border: 1px solid #CCCCCC;
@@ -1133,7 +1142,7 @@ input#dfrn-url {
 	border: 2px solid #AAAAAA;
 	border-radius: 10px;
 	-webkit-border-radius: 10px;
-	-moz-border-radius: 10px;
+/*	-moz-border-radius: 10px;*/
 /*	background: #EEEEEE;*/
 }
 
@@ -1328,12 +1337,15 @@ input#dfrn-url {
 }
 
 .wall-item-content img {
-	max-width: 300px;
+	max-width: 290px;
 	border-radius: 7px;
-	-moz-border-radius: 7px;
+/*	-moz-border-radius: 7px;*/
 	-webkit-border-radius: 7px;
 }
 
+.comment .wall-item-content img {
+	max-width: 280px;
+}
 
 
 .wall-item-title {
@@ -1350,19 +1362,28 @@ input#dfrn-url {
 .wall-item-body {
 	text-align: justify;
 	float: left;
-	width: 300px;
+/*	width: 300px;*/
 	overflow: hidden;
 	margin-top: 10px;
+	padding-right: 1em;
 	line-height: 23px;
 }
 
 .wall-item-body code {
-	overflow: auto;
+	width: 260px;
+	overflow: hidden;
 }
 
 .comment .wall-item-body {
 	margin-left: 5px;
-	width: 280px;
+	padding-right: 0.5em;
+/*	width: 280px;*/
+}
+
+.comment .wall-item-body blockquote {
+	margin-left: 0px;
+	margin-right: 0px;
+	width: 260px;
 }
 
 .wall-item-tools {
@@ -1413,7 +1434,7 @@ input#dfrn-url {
 }
 .comment-edit-text-empty, .comment-edit-text-full {
 /*	float: left;*/
-	-moz-border-radius: 3px;
+/*	-moz-border-radius: 3px;*/
 	-webkit-border-radius: 3px;
 	border-radius: 3px;	
 	border: 1px solid #cccccc;
@@ -1669,7 +1690,7 @@ input#dfrn-url {
 	padding: 0.2em 1em;
 	border: 1px solid #aaa;
 	border-radius: 10px;
-	-moz-border-radius: 10px;
+/*	-moz-border-radius: 10px;*/
 	-webkit-border-radius: 10px;
 }
 
@@ -1729,7 +1750,7 @@ input#dfrn-url {
 	padding: 0.2em 1em;
 	border: 1px solid #aaa;
 	border-radius: 10px;
-	-moz-border-radius: 10px;
+/*	-moz-border-radius: 10px;*/
 	-webkit-border-radius: 10px;
 }
 
@@ -1738,7 +1759,7 @@ input#dfrn-url {
 	float: left;
 	border: 1px solid black;
 	border-radius: 7px;
-	-moz-border-radius: 7px;
+/*	-moz-border-radius: 7px;*/
 	-webkit-border-radius: 7px;
 	background: #FFCCCC;
 	font-size: 1.25em;
@@ -1966,7 +1987,7 @@ input#dfrn-url {
 	left: -30px; top: 80px;
 	display: none;
 	z-index: 10000;
-	-moz-box-shadow: 3px 3px 5px #555;
+/*	-moz-box-shadow: 3px 3px 5px #555;*/
 	-webkit-box-shadow: 3px 3px 5px #555;
 	box-shadow: 3px 3px 5px #555;
 }
@@ -2004,7 +2025,7 @@ input#dfrn-url {
 	color:#cccccc;
 	border: 1px solid #cccccc;
 	padding: 3px 0px 0px 5px;
-	-moz-border-radius: 3px;
+/*	-moz-border-radius: 3px;*/
 	-webkit-border-radius: 3px;
 	border-radius: 3px;	
 }
@@ -2049,7 +2070,7 @@ input#dfrn-url {
 	background-repeat: no-repeat;
 	padding: 7px 5px 0px 30px;
 	-webkit-border-radius: 5px ;
-	-moz-border-radius: 5px;
+/*	-moz-border-radius: 5px;*/
 	border-radius: 5px;
 	color: #999999;
 }
@@ -2074,7 +2095,7 @@ input#dfrn-url {
 	width: 120px;
 	height: 30px;
 	border: 1px solid #cccccc;
-	-moz-border-radius: 4px;
+/*	-moz-border-radius: 4px;*/
 	-webkit-border-radius: 4px;
 	border-radius: 4px;
 	margin-top: 5px;
@@ -2104,7 +2125,7 @@ input#dfrn-url {
 	background-repeat: no-repeat;
 	margin-right: 5px;
 	-webkit-border-radius: 2px ;
-	-moz-border-radius: 2px;
+/*	-moz-border-radius: 2px;*/
 	border-radius: 2px;
 	padding-left: 15px;
 }
@@ -2248,7 +2269,7 @@ a.mail-list-link {
 .mail-conv-detail {
 	margin-left: 20px;
 	margin-bottom: 10px;
-	width: 270px;
+	/*width: 270px;*/
 }
 
 .mail-conv-subject {
@@ -2256,6 +2277,11 @@ a.mail-list-link {
     margin: 10px 0;
 }
 
+.mail-conv-body {
+	padding-top: 20px;
+	clear: both;
+}
+
 .mail-conv-outside-wrapper-end {
 	clear: both;
 }
@@ -2266,6 +2292,7 @@ a.mail-list-link {
 
 .mail-conv-delete-wrapper {
 	float: right;
+	padding-bottom: 0.5em;
 	margin-right: 5px;
 	margin-top: 15px;
 }
@@ -2371,7 +2398,7 @@ aside input[type='text'] {
 	border: 1px solid #DDDDDD;
 	padding: 8px;
 	margin-top: 5px;
-	-moz-border-radius:5px;
+/*	-moz-border-radius:5px;*/
 	-webkit-border-radius:5px;
 	border-radius:5px;
 
@@ -2429,7 +2456,7 @@ aside input[type='text'] {
 .photo-top-image-wrapper img {
 	max-width: 290px;
 	border-radius: 10px;
-	-moz-border-radius: 10px;
+/*	-moz-border-radius: 10px;*/
 	-webkit-border-radius: 10px;
 }
 .photo-top-album-name {
@@ -2588,7 +2615,7 @@ aside input[type='text'] {
 	margin-top: 15px;
 	border: 1px solid #aaa;
 	border-radius: 10px;
-	-moz-border-radius: 10px;
+/*	-moz-border-radius: 10px;*/
 	-webkit-border-radius: 10px;
 }
 
@@ -3823,11 +3850,11 @@ ul.notifications-menu-popup {
 	height: auto;
 	overflow-y: scroll;overflow-style:scrollbar;
 	background-color:#FFFFFF;
-	-moz-border-radius: 5px;
+/*	-moz-border-radius: 5px;*/
 	-webkit-border-radius: 5px;
 	border-radius:5px;
 	border: 1px solid #AAA;
-	-moz-box-shadow: 3px 3px 5px #555;
+/*	-moz-box-shadow: 3px 3px 5px #555;*/
 	-webkit-box-shadow: 3px 3px 5px #555;
 	box-shadow: 3px 3px 5px #555;
 }
@@ -3886,8 +3913,9 @@ ul.notifications-menu-popup {
 	width: 130px;
 }
 
-@media only screen and (min-device-width: 768px)
-and (max-device-width: 1024px)
+/*@media only screen and (min-device-width: 768px)
+and (max-device-width: 1024px)*/
+/*@media only screen and (min-device-width: 768px)
 {
 html {
 width:700px
@@ -3902,4 +3930,21 @@ width:700px;
 .comment .wall-item-body {
 width:650px;
 }
-}
\ No newline at end of file
+}*/
+
+@media only screen and (min-device-width: 768px)
+{
+	.wall-item-body code {
+		width: 700px;
+	}
+
+	.comment .wall-item-body blockquote {
+		margin-left: 20px;
+		width: 680px;
+	}
+	blockquote {
+		width: 700px;
+	}
+
+}
+
diff --git a/view/theme/frost-mobile/theme.php b/view/theme/frost-mobile/theme.php
index 96d40958e..460bda585 100644
--- a/view/theme/frost-mobile/theme.php
+++ b/view/theme/frost-mobile/theme.php
@@ -4,7 +4,7 @@
  * Name: Frost--mobile version
  * Description: Like frosted glass
  * Credits: Navigation icons taken from http://iconza.com. Other icons taken from http://thenounproject.com, including: Like, Dislike, Black Lock, Unlock, Pencil, Tag, Camera, Paperclip (Marie Coons), Folder (Sergio Calcara), Chain-link (Andrew Fortnum), Speaker (Harold Kim), Quotes (Henry Ryder), Video Camera (Anas Ramadan), and Left Arrow, Right Arrow, and Delete X (all three P.J. Onori). All under Attribution (CC BY 3.0). Others from The Noun Project are public domain or No Rights Reserved (CC0).
- * Version: Version 0.2.4
+ * Version: Version 0.2.5
  * Author: Zach P <windforest@f.shmuz.in>
  * Maintainer: Zach P <windforest@f.shmuz.in>
  */

From bcf214debb74c1375b3eb7ee87a277885a3e38f5 Mon Sep 17 00:00:00 2001
From: Zach Prezkuta <fermion@gmx.com>
Date: Fri, 10 Aug 2012 08:37:31 -0600
Subject: [PATCH 10/14] readability in TODO

---
 view/theme/frost-mobile/TODO | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/view/theme/frost-mobile/TODO b/view/theme/frost-mobile/TODO
index 05e32cb47..0ffd4f8c3 100644
--- a/view/theme/frost-mobile/TODO
+++ b/view/theme/frost-mobile/TODO
@@ -14,7 +14,10 @@ Photo album display?
 
 - Find a way to show embedded videos at the normal size for tablets that can handle it
 
-- Need to find a way to deal with freakin annoying elements that don't respect screen width limits. Specifically, need to find a way to keep them from forcing a horizontal scroll bar to show up and making the rest of the body text overflow the item's borders that is screen-width sensitive (it's annoying to have a 300px truncated code block on a 1024px wide screen). At least the following cause problems:
+- Need to find a way to deal with freakin annoying elements that don't respect screen width limits.
+  Specifically, need to find a way to keep them from forcing a horizontal scroll bar to show up and
+  making the rest of the body text overflow the item's borders that is screen-width sensitive (it's
+  annoying to have a 300px truncated code block on a 1024px wide screen). At least the following cause problems:
 	- code blocks
 	- blockquote blocks
 	- #reallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongtags

From b960352b54a84869da0c7b157a797cfde3967a69 Mon Sep 17 00:00:00 2001
From: friendica <info@friendica.com>
Date: Fri, 10 Aug 2012 16:02:20 -0700
Subject: [PATCH 11/14] rev update

---
 boot.php         |   2 +-
 util/messages.po | 488 ++++++++++++++++++++++++-----------------------
 2 files changed, 249 insertions(+), 241 deletions(-)

diff --git a/boot.php b/boot.php
index c50dbb582..6f6403398 100644
--- a/boot.php
+++ b/boot.php
@@ -11,7 +11,7 @@ require_once('include/cache.php');
 require_once('library/Mobile_Detect/Mobile_Detect.php');
 
 define ( 'FRIENDICA_PLATFORM',     'Friendica');
-define ( 'FRIENDICA_VERSION',      '3.0.1430' );
+define ( 'FRIENDICA_VERSION',      '3.0.1431' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.23'    );
 define ( 'DB_UPDATE_VERSION',      1154      );
 
diff --git a/util/messages.po b/util/messages.po
index c245fa152..9feeaf380 100644
--- a/util/messages.po
+++ b/util/messages.po
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: 3.0.1430\n"
+"Project-Id-Version: 3.0.1431\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-08-09 10:00-0700\n"
+"POT-Creation-Date: 2012-08-10 10:00-0700\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -45,13 +45,13 @@ msgstr ""
 #: ../../mod/wallmessage.php:33 ../../mod/wallmessage.php:79
 #: ../../mod/wallmessage.php:103 ../../mod/attach.php:33
 #: ../../mod/group.php:19 ../../mod/viewcontacts.php:22
-#: ../../mod/register.php:38 ../../mod/regmod.php:116 ../../mod/item.php:125
-#: ../../mod/item.php:141 ../../mod/profile_photo.php:19
+#: ../../mod/register.php:38 ../../mod/regmod.php:116 ../../mod/item.php:126
+#: ../../mod/item.php:142 ../../mod/profile_photo.php:19
 #: ../../mod/profile_photo.php:142 ../../mod/profile_photo.php:153
 #: ../../mod/profile_photo.php:166 ../../mod/message.php:38
 #: ../../mod/message.php:168 ../../mod/allfriends.php:9
 #: ../../mod/nogroup.php:25 ../../mod/wall_upload.php:53
-#: ../../mod/follow.php:9 ../../mod/display.php:130 ../../mod/profiles.php:7
+#: ../../mod/follow.php:9 ../../mod/display.php:131 ../../mod/profiles.php:7
 #: ../../mod/profiles.php:408 ../../mod/delegate.php:6
 #: ../../mod/suggest.php:28 ../../mod/invite.php:13 ../../mod/invite.php:81
 #: ../../mod/dfrn_confirm.php:53 ../../addon/facebook/facebook.php:510
@@ -86,7 +86,7 @@ msgid "Return to contact editor"
 msgstr ""
 
 #: ../../mod/crepair.php:148 ../../mod/settings.php:539
-#: ../../mod/settings.php:565 ../../mod/admin.php:664 ../../mod/admin.php:673
+#: ../../mod/settings.php:565 ../../mod/admin.php:667 ../../mod/admin.php:676
 msgid "Name"
 msgstr ""
 
@@ -131,8 +131,8 @@ msgstr ""
 #: ../../mod/contacts.php:341 ../../mod/settings.php:537
 #: ../../mod/settings.php:691 ../../mod/settings.php:752
 #: ../../mod/settings.php:958 ../../mod/group.php:85 ../../mod/message.php:294
-#: ../../mod/message.php:478 ../../mod/admin.php:422 ../../mod/admin.php:661
-#: ../../mod/admin.php:797 ../../mod/admin.php:996 ../../mod/admin.php:1083
+#: ../../mod/message.php:478 ../../mod/admin.php:424 ../../mod/admin.php:664
+#: ../../mod/admin.php:800 ../../mod/admin.php:999 ../../mod/admin.php:1086
 #: ../../mod/profiles.php:578 ../../mod/invite.php:119
 #: ../../addon/fromgplus/fromgplus.php:40
 #: ../../addon/facebook/facebook.php:619
@@ -172,7 +172,7 @@ msgstr ""
 #: ../../view/theme/diabook/theme.php:757
 #: ../../view/theme/diabook/config.php:190
 #: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70
-#: ../../include/conversation.php:696
+#: ../../include/conversation.php:525
 msgid "Submit"
 msgstr ""
 
@@ -524,7 +524,7 @@ msgid "Use as profile photo"
 msgstr ""
 
 #: ../../mod/photos.php:1171 ../../mod/content.php:601
-#: ../../include/conversation.php:606
+#: ../../include/conversation.php:365
 msgid "Private Message"
 msgstr ""
 
@@ -565,49 +565,49 @@ msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
 msgstr ""
 
 #: ../../mod/photos.php:1303 ../../mod/content.php:665
-#: ../../include/conversation.php:670
+#: ../../include/conversation.php:500
 msgid "I like this (toggle)"
 msgstr ""
 
 #: ../../mod/photos.php:1304 ../../mod/content.php:666
-#: ../../include/conversation.php:671
+#: ../../include/conversation.php:501
 msgid "I don't like this (toggle)"
 msgstr ""
 
-#: ../../mod/photos.php:1305 ../../include/conversation.php:1129
+#: ../../mod/photos.php:1305 ../../include/conversation.php:1121
 msgid "Share"
 msgstr ""
 
 #: ../../mod/photos.php:1306 ../../mod/editpost.php:112
 #: ../../mod/content.php:482 ../../mod/content.php:843
 #: ../../mod/wallmessage.php:152 ../../mod/message.php:293
-#: ../../mod/message.php:479 ../../include/conversation.php:487
-#: ../../include/conversation.php:848 ../../include/conversation.php:1148
+#: ../../mod/message.php:479 ../../include/conversation.php:590
+#: ../../include/conversation.php:821 ../../include/conversation.php:1140
 msgid "Please wait"
 msgstr ""
 
 #: ../../mod/photos.php:1322 ../../mod/photos.php:1363
 #: ../../mod/photos.php:1395 ../../mod/content.php:688
-#: ../../include/conversation.php:693
+#: ../../include/conversation.php:522
 msgid "This is you"
 msgstr ""
 
 #: ../../mod/photos.php:1324 ../../mod/photos.php:1365
 #: ../../mod/photos.php:1397 ../../mod/content.php:690
-#: ../../include/conversation.php:695 ../../boot.php:580
+#: ../../include/conversation.php:524 ../../boot.php:580
 msgid "Comment"
 msgstr ""
 
 #: ../../mod/photos.php:1326 ../../mod/editpost.php:133
-#: ../../mod/content.php:700 ../../include/conversation.php:705
-#: ../../include/conversation.php:1166
+#: ../../mod/content.php:700 ../../include/conversation.php:534
+#: ../../include/conversation.php:1158
 msgid "Preview"
 msgstr ""
 
 #: ../../mod/photos.php:1426 ../../mod/content.php:439
 #: ../../mod/content.php:721 ../../mod/settings.php:600
-#: ../../mod/settings.php:689 ../../mod/group.php:168 ../../mod/admin.php:668
-#: ../../include/conversation.php:444 ../../include/conversation.php:726
+#: ../../mod/settings.php:689 ../../mod/group.php:168 ../../mod/admin.php:671
+#: ../../include/conversation.php:379 ../../include/conversation.php:778
 msgid "Delete"
 msgstr ""
 
@@ -673,28 +673,28 @@ msgstr ""
 msgid "Edit post"
 msgstr ""
 
-#: ../../mod/editpost.php:88 ../../include/conversation.php:1115
+#: ../../mod/editpost.php:88 ../../include/conversation.php:1107
 msgid "Post to Email"
 msgstr ""
 
 #: ../../mod/editpost.php:103 ../../mod/content.php:708
-#: ../../mod/settings.php:599 ../../include/conversation.php:713
+#: ../../mod/settings.php:599 ../../include/conversation.php:370
 msgid "Edit"
 msgstr ""
 
 #: ../../mod/editpost.php:104 ../../mod/wallmessage.php:150
 #: ../../mod/message.php:291 ../../mod/message.php:476
-#: ../../include/conversation.php:1130
+#: ../../include/conversation.php:1122
 msgid "Upload photo"
 msgstr ""
 
-#: ../../mod/editpost.php:105 ../../include/conversation.php:1132
+#: ../../mod/editpost.php:105 ../../include/conversation.php:1124
 msgid "Attach file"
 msgstr ""
 
 #: ../../mod/editpost.php:106 ../../mod/wallmessage.php:151
 #: ../../mod/message.php:292 ../../mod/message.php:477
-#: ../../include/conversation.php:1134
+#: ../../include/conversation.php:1126
 msgid "Insert web link"
 msgstr ""
 
@@ -710,35 +710,35 @@ msgstr ""
 msgid "Insert Vorbis [.ogg] audio"
 msgstr ""
 
-#: ../../mod/editpost.php:110 ../../include/conversation.php:1140
+#: ../../mod/editpost.php:110 ../../include/conversation.php:1132
 msgid "Set your location"
 msgstr ""
 
-#: ../../mod/editpost.php:111 ../../include/conversation.php:1142
+#: ../../mod/editpost.php:111 ../../include/conversation.php:1134
 msgid "Clear browser location"
 msgstr ""
 
-#: ../../mod/editpost.php:113 ../../include/conversation.php:1149
+#: ../../mod/editpost.php:113 ../../include/conversation.php:1141
 msgid "Permission settings"
 msgstr ""
 
-#: ../../mod/editpost.php:121 ../../include/conversation.php:1158
+#: ../../mod/editpost.php:121 ../../include/conversation.php:1150
 msgid "CC: email addresses"
 msgstr ""
 
-#: ../../mod/editpost.php:122 ../../include/conversation.php:1159
+#: ../../mod/editpost.php:122 ../../include/conversation.php:1151
 msgid "Public post"
 msgstr ""
 
-#: ../../mod/editpost.php:125 ../../include/conversation.php:1145
+#: ../../mod/editpost.php:125 ../../include/conversation.php:1137
 msgid "Set title"
 msgstr ""
 
-#: ../../mod/editpost.php:127 ../../include/conversation.php:1147
+#: ../../mod/editpost.php:127 ../../include/conversation.php:1139
 msgid "Categories (comma-separated list)"
 msgstr ""
 
-#: ../../mod/editpost.php:128 ../../include/conversation.php:1161
+#: ../../mod/editpost.php:128 ../../include/conversation.php:1153
 msgid "Example: bob@example.com, mary@example.com"
 msgstr ""
 
@@ -1280,28 +1280,28 @@ msgid "Group: "
 msgstr ""
 
 #: ../../mod/content.php:438 ../../mod/content.php:720
-#: ../../include/conversation.php:443 ../../include/conversation.php:725
+#: ../../include/conversation.php:378 ../../include/conversation.php:777
 msgid "Select"
 msgstr ""
 
 #: ../../mod/content.php:455 ../../mod/content.php:813
-#: ../../mod/content.php:814 ../../include/conversation.php:460
-#: ../../include/conversation.php:818 ../../include/conversation.php:819
+#: ../../mod/content.php:814 ../../include/conversation.php:560
+#: ../../include/conversation.php:561 ../../include/conversation.php:794
 #, php-format
 msgid "View %s's profile @ %s"
 msgstr ""
 
 #: ../../mod/content.php:465 ../../mod/content.php:825
-#: ../../include/conversation.php:470 ../../include/conversation.php:830
+#: ../../include/conversation.php:572 ../../include/conversation.php:804
 #, php-format
 msgid "%s from %s"
 msgstr ""
 
-#: ../../mod/content.php:480 ../../include/conversation.php:485
+#: ../../mod/content.php:480 ../../include/conversation.php:819
 msgid "View in context"
 msgstr ""
 
-#: ../../mod/content.php:586 ../../include/conversation.php:591
+#: ../../mod/content.php:586 ../../include/conversation.php:599
 #, php-format
 msgid "%d comment"
 msgid_plural "%d comments"
@@ -1310,92 +1310,92 @@ msgstr[1] ""
 
 #: ../../mod/content.php:587 ../../addon/page/page.php:76
 #: ../../addon/page/page.php:110 ../../addon/showmore/showmore.php:119
-#: ../../include/contact_widgets.php:188 ../../include/conversation.php:592
+#: ../../include/contact_widgets.php:188 ../../include/conversation.php:600
 #: ../../boot.php:581
 msgid "show more"
 msgstr ""
 
-#: ../../mod/content.php:665 ../../include/conversation.php:670
+#: ../../mod/content.php:665 ../../include/conversation.php:500
 msgid "like"
 msgstr ""
 
-#: ../../mod/content.php:666 ../../include/conversation.php:671
+#: ../../mod/content.php:666 ../../include/conversation.php:501
 msgid "dislike"
 msgstr ""
 
-#: ../../mod/content.php:668 ../../include/conversation.php:673
+#: ../../mod/content.php:668 ../../include/conversation.php:503
 msgid "Share this"
 msgstr ""
 
-#: ../../mod/content.php:668 ../../include/conversation.php:673
+#: ../../mod/content.php:668 ../../include/conversation.php:503
 msgid "share"
 msgstr ""
 
-#: ../../mod/content.php:692 ../../include/conversation.php:697
+#: ../../mod/content.php:692 ../../include/conversation.php:526
 msgid "Bold"
 msgstr ""
 
-#: ../../mod/content.php:693 ../../include/conversation.php:698
+#: ../../mod/content.php:693 ../../include/conversation.php:527
 msgid "Italic"
 msgstr ""
 
-#: ../../mod/content.php:694 ../../include/conversation.php:699
+#: ../../mod/content.php:694 ../../include/conversation.php:528
 msgid "Underline"
 msgstr ""
 
-#: ../../mod/content.php:695 ../../include/conversation.php:700
+#: ../../mod/content.php:695 ../../include/conversation.php:529
 msgid "Quote"
 msgstr ""
 
-#: ../../mod/content.php:696 ../../include/conversation.php:701
+#: ../../mod/content.php:696 ../../include/conversation.php:530
 msgid "Code"
 msgstr ""
 
-#: ../../mod/content.php:697 ../../include/conversation.php:702
+#: ../../mod/content.php:697 ../../include/conversation.php:531
 msgid "Image"
 msgstr ""
 
-#: ../../mod/content.php:698 ../../include/conversation.php:703
+#: ../../mod/content.php:698 ../../include/conversation.php:532
 msgid "Link"
 msgstr ""
 
-#: ../../mod/content.php:699 ../../include/conversation.php:704
+#: ../../mod/content.php:699 ../../include/conversation.php:533
 msgid "Video"
 msgstr ""
 
-#: ../../mod/content.php:733 ../../include/conversation.php:738
+#: ../../mod/content.php:733 ../../include/conversation.php:471
 msgid "add star"
 msgstr ""
 
-#: ../../mod/content.php:734 ../../include/conversation.php:739
+#: ../../mod/content.php:734 ../../include/conversation.php:472
 msgid "remove star"
 msgstr ""
 
-#: ../../mod/content.php:735 ../../include/conversation.php:740
+#: ../../mod/content.php:735 ../../include/conversation.php:473
 msgid "toggle star status"
 msgstr ""
 
-#: ../../mod/content.php:738 ../../include/conversation.php:743
+#: ../../mod/content.php:738 ../../include/conversation.php:476
 msgid "starred"
 msgstr ""
 
-#: ../../mod/content.php:739 ../../include/conversation.php:744
+#: ../../mod/content.php:739 ../../include/conversation.php:477
 msgid "add tag"
 msgstr ""
 
-#: ../../mod/content.php:743 ../../include/conversation.php:748
+#: ../../mod/content.php:743 ../../include/conversation.php:382
 msgid "save to folder"
 msgstr ""
 
-#: ../../mod/content.php:815 ../../include/conversation.php:820
+#: ../../mod/content.php:815 ../../include/conversation.php:562
 msgid "to"
 msgstr ""
 
-#: ../../mod/content.php:816 ../../include/conversation.php:821
+#: ../../mod/content.php:816 ../../include/conversation.php:563
 msgid "Wall-to-Wall"
 msgstr ""
 
-#: ../../mod/content.php:817 ../../include/conversation.php:822
+#: ../../mod/content.php:817 ../../include/conversation.php:564
 msgid "via Wall-To-Wall:"
 msgstr ""
 
@@ -1480,7 +1480,7 @@ msgid "if applicable"
 msgstr ""
 
 #: ../../mod/notifications.php:157 ../../mod/notifications.php:204
-#: ../../mod/admin.php:666
+#: ../../mod/admin.php:669
 msgid "Approve"
 msgstr ""
 
@@ -1681,12 +1681,12 @@ msgid "View all contacts"
 msgstr ""
 
 #: ../../mod/contacts.php:308 ../../mod/contacts.php:367
-#: ../../mod/admin.php:670
+#: ../../mod/admin.php:673
 msgid "Unblock"
 msgstr ""
 
 #: ../../mod/contacts.php:308 ../../mod/contacts.php:367
-#: ../../mod/admin.php:669
+#: ../../mod/admin.php:672
 msgid "Block"
 msgstr ""
 
@@ -1783,7 +1783,7 @@ msgstr ""
 msgid "Update public posts"
 msgstr ""
 
-#: ../../mod/contacts.php:364 ../../mod/admin.php:1141
+#: ../../mod/contacts.php:364 ../../mod/admin.php:1144
 msgid "Update now"
 msgstr ""
 
@@ -1996,7 +1996,7 @@ msgstr ""
 msgid "Remove account"
 msgstr ""
 
-#: ../../mod/settings.php:69 ../../mod/admin.php:756 ../../mod/admin.php:961
+#: ../../mod/settings.php:69 ../../mod/admin.php:759 ../../mod/admin.php:964
 #: ../../addon/dav/layout.fnk.php:225 ../../addon/mathjax/mathjax.php:36
 #: ../../view/theme/diabook/theme.php:643
 #: ../../view/theme/diabook/theme.php:773 ../../include/nav.php:137
@@ -2635,7 +2635,7 @@ msgstr ""
 
 #: ../../mod/wallmessage.php:123 ../../mod/wallmessage.php:131
 #: ../../mod/message.php:242 ../../mod/message.php:250
-#: ../../include/conversation.php:1066 ../../include/conversation.php:1083
+#: ../../include/conversation.php:1058 ../../include/conversation.php:1075
 msgid "Please enter a link URL:"
 msgstr ""
 
@@ -2926,7 +2926,7 @@ msgstr ""
 msgid "Your invitation ID: "
 msgstr ""
 
-#: ../../mod/register.php:255 ../../mod/admin.php:423
+#: ../../mod/register.php:255 ../../mod/admin.php:425
 msgid "Registration"
 msgstr ""
 
@@ -2982,8 +2982,8 @@ msgid "%1$s doesn't like %2$s's %3$s"
 msgstr ""
 
 #: ../../mod/notice.php:15 ../../mod/viewsrc.php:15 ../../mod/admin.php:159
-#: ../../mod/admin.php:705 ../../mod/admin.php:904 ../../mod/display.php:29
-#: ../../mod/display.php:134 ../../include/items.php:3692
+#: ../../mod/admin.php:708 ../../mod/admin.php:907 ../../mod/display.php:29
+#: ../../mod/display.php:135 ../../include/items.php:3692
 msgid "Item not found."
 msgstr ""
 
@@ -3013,42 +3013,42 @@ msgstr ""
 msgid "Please login."
 msgstr ""
 
-#: ../../mod/item.php:90
+#: ../../mod/item.php:91
 msgid "Unable to locate original post."
 msgstr ""
 
-#: ../../mod/item.php:274
+#: ../../mod/item.php:275
 msgid "Empty post discarded."
 msgstr ""
 
-#: ../../mod/item.php:395 ../../mod/wall_upload.php:122
+#: ../../mod/item.php:396 ../../mod/wall_upload.php:122
 #: ../../mod/wall_upload.php:131 ../../mod/wall_upload.php:138
 #: ../../include/message.php:144
 msgid "Wall Photos"
 msgstr ""
 
-#: ../../mod/item.php:803
+#: ../../mod/item.php:808
 msgid "System error. Post not saved."
 msgstr ""
 
-#: ../../mod/item.php:828
+#: ../../mod/item.php:833
 #, php-format
 msgid ""
 "This message was sent to you by %s, a member of the Friendica social network."
 msgstr ""
 
-#: ../../mod/item.php:830
+#: ../../mod/item.php:835
 #, php-format
 msgid "You may visit them online at %s"
 msgstr ""
 
-#: ../../mod/item.php:831
+#: ../../mod/item.php:836
 msgid ""
 "Please contact the sender by replying to this post if you do not wish to "
 "receive these messages."
 msgstr ""
 
-#: ../../mod/item.php:833
+#: ../../mod/item.php:838
 #, php-format
 msgid "%s posted an update."
 msgstr ""
@@ -3213,19 +3213,19 @@ msgstr ""
 msgid "Theme settings updated."
 msgstr ""
 
-#: ../../mod/admin.php:96 ../../mod/admin.php:421
+#: ../../mod/admin.php:96 ../../mod/admin.php:423
 msgid "Site"
 msgstr ""
 
-#: ../../mod/admin.php:97 ../../mod/admin.php:660 ../../mod/admin.php:672
+#: ../../mod/admin.php:97 ../../mod/admin.php:663 ../../mod/admin.php:675
 msgid "Users"
 msgstr ""
 
-#: ../../mod/admin.php:98 ../../mod/admin.php:754 ../../mod/admin.php:796
+#: ../../mod/admin.php:98 ../../mod/admin.php:757 ../../mod/admin.php:799
 msgid "Plugins"
 msgstr ""
 
-#: ../../mod/admin.php:99 ../../mod/admin.php:959 ../../mod/admin.php:995
+#: ../../mod/admin.php:99 ../../mod/admin.php:962 ../../mod/admin.php:998
 msgid "Themes"
 msgstr ""
 
@@ -3233,7 +3233,7 @@ msgstr ""
 msgid "DB updates"
 msgstr ""
 
-#: ../../mod/admin.php:115 ../../mod/admin.php:122 ../../mod/admin.php:1082
+#: ../../mod/admin.php:115 ../../mod/admin.php:122 ../../mod/admin.php:1085
 msgid "Logs"
 msgstr ""
 
@@ -3249,19 +3249,19 @@ msgstr ""
 msgid "User registrations waiting for confirmation"
 msgstr ""
 
-#: ../../mod/admin.php:183 ../../mod/admin.php:642
+#: ../../mod/admin.php:183 ../../mod/admin.php:645
 msgid "Normal Account"
 msgstr ""
 
-#: ../../mod/admin.php:184 ../../mod/admin.php:643
+#: ../../mod/admin.php:184 ../../mod/admin.php:646
 msgid "Soapbox Account"
 msgstr ""
 
-#: ../../mod/admin.php:185 ../../mod/admin.php:644
+#: ../../mod/admin.php:185 ../../mod/admin.php:647
 msgid "Community/Celebrity Account"
 msgstr ""
 
-#: ../../mod/admin.php:186 ../../mod/admin.php:645
+#: ../../mod/admin.php:186 ../../mod/admin.php:648
 msgid "Automatic Friend Account"
 msgstr ""
 
@@ -3277,9 +3277,9 @@ msgstr ""
 msgid "Message queues"
 msgstr ""
 
-#: ../../mod/admin.php:212 ../../mod/admin.php:420 ../../mod/admin.php:659
-#: ../../mod/admin.php:753 ../../mod/admin.php:795 ../../mod/admin.php:958
-#: ../../mod/admin.php:994 ../../mod/admin.php:1081
+#: ../../mod/admin.php:212 ../../mod/admin.php:422 ../../mod/admin.php:662
+#: ../../mod/admin.php:756 ../../mod/admin.php:798 ../../mod/admin.php:961
+#: ../../mod/admin.php:997 ../../mod/admin.php:1084
 msgid "Administration"
 msgstr ""
 
@@ -3303,503 +3303,511 @@ msgstr ""
 msgid "Active plugins"
 msgstr ""
 
-#: ../../mod/admin.php:359
+#: ../../mod/admin.php:361
 msgid "Site settings updated."
 msgstr ""
 
-#: ../../mod/admin.php:407
+#: ../../mod/admin.php:409
 msgid "Closed"
 msgstr ""
 
-#: ../../mod/admin.php:408
+#: ../../mod/admin.php:410
 msgid "Requires approval"
 msgstr ""
 
-#: ../../mod/admin.php:409
+#: ../../mod/admin.php:411
 msgid "Open"
 msgstr ""
 
-#: ../../mod/admin.php:413
+#: ../../mod/admin.php:415
 msgid "No SSL policy, links will track page SSL state"
 msgstr ""
 
-#: ../../mod/admin.php:414
+#: ../../mod/admin.php:416
 msgid "Force all links to use SSL"
 msgstr ""
 
-#: ../../mod/admin.php:415
+#: ../../mod/admin.php:417
 msgid "Self-signed certificate, use SSL for local links only (discouraged)"
 msgstr ""
 
-#: ../../mod/admin.php:424
+#: ../../mod/admin.php:426
 msgid "File upload"
 msgstr ""
 
-#: ../../mod/admin.php:425
+#: ../../mod/admin.php:427
 msgid "Policies"
 msgstr ""
 
-#: ../../mod/admin.php:426
+#: ../../mod/admin.php:428
 msgid "Advanced"
 msgstr ""
 
-#: ../../mod/admin.php:430 ../../addon/statusnet/statusnet.php:567
+#: ../../mod/admin.php:432 ../../addon/statusnet/statusnet.php:567
 msgid "Site name"
 msgstr ""
 
-#: ../../mod/admin.php:431
+#: ../../mod/admin.php:433
 msgid "Banner/Logo"
 msgstr ""
 
-#: ../../mod/admin.php:432
+#: ../../mod/admin.php:434
 msgid "System language"
 msgstr ""
 
-#: ../../mod/admin.php:433
+#: ../../mod/admin.php:435
 msgid "System theme"
 msgstr ""
 
-#: ../../mod/admin.php:433
+#: ../../mod/admin.php:435
 msgid ""
 "Default system theme - may be over-ridden by user profiles - <a href='#' "
 "id='cnftheme'>change theme settings</a>"
 msgstr ""
 
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:436
 msgid "SSL link policy"
 msgstr ""
 
-#: ../../mod/admin.php:434
+#: ../../mod/admin.php:436
 msgid "Determines whether generated links should be forced to use SSL"
 msgstr ""
 
-#: ../../mod/admin.php:435
+#: ../../mod/admin.php:437
 msgid "Maximum image size"
 msgstr ""
 
-#: ../../mod/admin.php:435
+#: ../../mod/admin.php:437
 msgid ""
 "Maximum size in bytes of uploaded images. Default is 0, which means no "
 "limits."
 msgstr ""
 
-#: ../../mod/admin.php:437
+#: ../../mod/admin.php:439
 msgid "Register policy"
 msgstr ""
 
-#: ../../mod/admin.php:438
+#: ../../mod/admin.php:440
 msgid "Register text"
 msgstr ""
 
-#: ../../mod/admin.php:438
+#: ../../mod/admin.php:440
 msgid "Will be displayed prominently on the registration page."
 msgstr ""
 
-#: ../../mod/admin.php:439
+#: ../../mod/admin.php:441
 msgid "Accounts abandoned after x days"
 msgstr ""
 
-#: ../../mod/admin.php:439
+#: ../../mod/admin.php:441
 msgid ""
 "Will not waste system resources polling external sites for abandonded "
 "accounts. Enter 0 for no time limit."
 msgstr ""
 
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:442
 msgid "Allowed friend domains"
 msgstr ""
 
-#: ../../mod/admin.php:440
+#: ../../mod/admin.php:442
 msgid ""
 "Comma separated list of domains which are allowed to establish friendships "
 "with this site. Wildcards are accepted. Empty to allow any domains"
 msgstr ""
 
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:443
 msgid "Allowed email domains"
 msgstr ""
 
-#: ../../mod/admin.php:441
+#: ../../mod/admin.php:443
 msgid ""
 "Comma separated list of domains which are allowed in email addresses for "
 "registrations to this site. Wildcards are accepted. Empty to allow any "
 "domains"
 msgstr ""
 
-#: ../../mod/admin.php:442
+#: ../../mod/admin.php:444
 msgid "Block public"
 msgstr ""
 
-#: ../../mod/admin.php:442
+#: ../../mod/admin.php:444
 msgid ""
 "Check to block public access to all otherwise public personal pages on this "
 "site unless you are currently logged in."
 msgstr ""
 
-#: ../../mod/admin.php:443
+#: ../../mod/admin.php:445
 msgid "Force publish"
 msgstr ""
 
-#: ../../mod/admin.php:443
+#: ../../mod/admin.php:445
 msgid ""
 "Check to force all profiles on this site to be listed in the site directory."
 msgstr ""
 
-#: ../../mod/admin.php:444
+#: ../../mod/admin.php:446
 msgid "Global directory update URL"
 msgstr ""
 
-#: ../../mod/admin.php:444
+#: ../../mod/admin.php:446
 msgid ""
 "URL to update the global directory. If this is not set, the global directory "
 "is completely unavailable to the application."
 msgstr ""
 
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:447
+msgid "Allow threaded items"
+msgstr ""
+
+#: ../../mod/admin.php:447
+msgid "Allow infinite level threading for items on this site."
+msgstr ""
+
+#: ../../mod/admin.php:449
 msgid "Block multiple registrations"
 msgstr ""
 
-#: ../../mod/admin.php:446
+#: ../../mod/admin.php:449
 msgid "Disallow users to register additional accounts for use as pages."
 msgstr ""
 
-#: ../../mod/admin.php:447
+#: ../../mod/admin.php:450
 msgid "OpenID support"
 msgstr ""
 
-#: ../../mod/admin.php:447
+#: ../../mod/admin.php:450
 msgid "OpenID support for registration and logins."
 msgstr ""
 
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:451
 msgid "Fullname check"
 msgstr ""
 
-#: ../../mod/admin.php:448
+#: ../../mod/admin.php:451
 msgid ""
 "Force users to register with a space between firstname and lastname in Full "
 "name, as an antispam measure"
 msgstr ""
 
-#: ../../mod/admin.php:449
+#: ../../mod/admin.php:452
 msgid "UTF-8 Regular expressions"
 msgstr ""
 
-#: ../../mod/admin.php:449
+#: ../../mod/admin.php:452
 msgid "Use PHP UTF8 regular expressions"
 msgstr ""
 
-#: ../../mod/admin.php:450
+#: ../../mod/admin.php:453
 msgid "Show Community Page"
 msgstr ""
 
-#: ../../mod/admin.php:450
+#: ../../mod/admin.php:453
 msgid ""
 "Display a Community page showing all recent public postings on this site."
 msgstr ""
 
-#: ../../mod/admin.php:451
+#: ../../mod/admin.php:454
 msgid "Enable OStatus support"
 msgstr ""
 
-#: ../../mod/admin.php:451
+#: ../../mod/admin.php:454
 msgid ""
 "Provide built-in OStatus (identi.ca, status.net, etc.) compatibility. All "
 "communications in OStatus are public, so privacy warnings will be "
 "occasionally displayed."
 msgstr ""
 
-#: ../../mod/admin.php:452
+#: ../../mod/admin.php:455
 msgid "Enable Diaspora support"
 msgstr ""
 
-#: ../../mod/admin.php:452
+#: ../../mod/admin.php:455
 msgid "Provide built-in Diaspora network compatibility."
 msgstr ""
 
-#: ../../mod/admin.php:453
+#: ../../mod/admin.php:456
 msgid "Only allow Friendica contacts"
 msgstr ""
 
-#: ../../mod/admin.php:453
+#: ../../mod/admin.php:456
 msgid ""
 "All contacts must use Friendica protocols. All other built-in communication "
 "protocols disabled."
 msgstr ""
 
-#: ../../mod/admin.php:454
+#: ../../mod/admin.php:457
 msgid "Verify SSL"
 msgstr ""
 
-#: ../../mod/admin.php:454
+#: ../../mod/admin.php:457
 msgid ""
 "If you wish, you can turn on strict certificate checking. This will mean you "
 "cannot connect (at all) to self-signed SSL sites."
 msgstr ""
 
-#: ../../mod/admin.php:455
+#: ../../mod/admin.php:458
 msgid "Proxy user"
 msgstr ""
 
-#: ../../mod/admin.php:456
+#: ../../mod/admin.php:459
 msgid "Proxy URL"
 msgstr ""
 
-#: ../../mod/admin.php:457
+#: ../../mod/admin.php:460
 msgid "Network timeout"
 msgstr ""
 
-#: ../../mod/admin.php:457
+#: ../../mod/admin.php:460
 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
 msgstr ""
 
-#: ../../mod/admin.php:458
+#: ../../mod/admin.php:461
 msgid "Delivery interval"
 msgstr ""
 
-#: ../../mod/admin.php:458
+#: ../../mod/admin.php:461
 msgid ""
 "Delay background delivery processes by this many seconds to reduce system "
 "load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
 "for large dedicated servers."
 msgstr ""
 
-#: ../../mod/admin.php:459
+#: ../../mod/admin.php:462
 msgid "Poll interval"
 msgstr ""
 
-#: ../../mod/admin.php:459
+#: ../../mod/admin.php:462
 msgid ""
 "Delay background polling processes by this many seconds to reduce system "
 "load. If 0, use delivery interval."
 msgstr ""
 
-#: ../../mod/admin.php:460
+#: ../../mod/admin.php:463
 msgid "Maximum Load Average"
 msgstr ""
 
-#: ../../mod/admin.php:460
+#: ../../mod/admin.php:463
 msgid ""
 "Maximum system load before delivery and poll processes are deferred - "
 "default 50."
 msgstr ""
 
-#: ../../mod/admin.php:477
+#: ../../mod/admin.php:480
 msgid "Update has been marked successful"
 msgstr ""
 
-#: ../../mod/admin.php:487
-#, php-format
-msgid "Executing %s failed. Check system logs."
-msgstr ""
-
 #: ../../mod/admin.php:490
 #, php-format
-msgid "Update %s was successfully applied."
+msgid "Executing %s failed. Check system logs."
 msgstr ""
 
-#: ../../mod/admin.php:494
+#: ../../mod/admin.php:493
 #, php-format
-msgid "Update %s did not return a status. Unknown if it succeeded."
+msgid "Update %s was successfully applied."
 msgstr ""
 
 #: ../../mod/admin.php:497
 #, php-format
+msgid "Update %s did not return a status. Unknown if it succeeded."
+msgstr ""
+
+#: ../../mod/admin.php:500
+#, php-format
 msgid "Update function %s could not be found."
 msgstr ""
 
-#: ../../mod/admin.php:512
+#: ../../mod/admin.php:515
 msgid "No failed updates."
 msgstr ""
 
-#: ../../mod/admin.php:516
+#: ../../mod/admin.php:519
 msgid "Failed Updates"
 msgstr ""
 
-#: ../../mod/admin.php:517
+#: ../../mod/admin.php:520
 msgid ""
 "This does not include updates prior to 1139, which did not return a status."
 msgstr ""
 
-#: ../../mod/admin.php:518
+#: ../../mod/admin.php:521
 msgid "Mark success (if update was manually applied)"
 msgstr ""
 
-#: ../../mod/admin.php:519
+#: ../../mod/admin.php:522
 msgid "Attempt to execute this update step automatically"
 msgstr ""
 
-#: ../../mod/admin.php:544
+#: ../../mod/admin.php:547
 #, php-format
 msgid "%s user blocked/unblocked"
 msgid_plural "%s users blocked/unblocked"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../../mod/admin.php:551
+#: ../../mod/admin.php:554
 #, php-format
 msgid "%s user deleted"
 msgid_plural "%s users deleted"
 msgstr[0] ""
 msgstr[1] ""
 
-#: ../../mod/admin.php:590
+#: ../../mod/admin.php:593
 #, php-format
 msgid "User '%s' deleted"
 msgstr ""
 
-#: ../../mod/admin.php:598
+#: ../../mod/admin.php:601
 #, php-format
 msgid "User '%s' unblocked"
 msgstr ""
 
-#: ../../mod/admin.php:598
+#: ../../mod/admin.php:601
 #, php-format
 msgid "User '%s' blocked"
 msgstr ""
 
-#: ../../mod/admin.php:662
+#: ../../mod/admin.php:665
 msgid "select all"
 msgstr ""
 
-#: ../../mod/admin.php:663
+#: ../../mod/admin.php:666
 msgid "User registrations waiting for confirm"
 msgstr ""
 
-#: ../../mod/admin.php:664
+#: ../../mod/admin.php:667
 msgid "Request date"
 msgstr ""
 
-#: ../../mod/admin.php:664 ../../mod/admin.php:673
+#: ../../mod/admin.php:667 ../../mod/admin.php:676
 #: ../../include/contact_selectors.php:79
 msgid "Email"
 msgstr ""
 
-#: ../../mod/admin.php:665
+#: ../../mod/admin.php:668
 msgid "No registrations."
 msgstr ""
 
-#: ../../mod/admin.php:667
+#: ../../mod/admin.php:670
 msgid "Deny"
 msgstr ""
 
-#: ../../mod/admin.php:673
+#: ../../mod/admin.php:676
 msgid "Register date"
 msgstr ""
 
-#: ../../mod/admin.php:673
+#: ../../mod/admin.php:676
 msgid "Last login"
 msgstr ""
 
-#: ../../mod/admin.php:673
+#: ../../mod/admin.php:676
 msgid "Last item"
 msgstr ""
 
-#: ../../mod/admin.php:673
+#: ../../mod/admin.php:676
 msgid "Account"
 msgstr ""
 
-#: ../../mod/admin.php:675
+#: ../../mod/admin.php:678
 msgid ""
 "Selected users will be deleted!\\n\\nEverything these users had posted on "
 "this site will be permanently deleted!\\n\\nAre you sure?"
 msgstr ""
 
-#: ../../mod/admin.php:676
+#: ../../mod/admin.php:679
 msgid ""
 "The user {0} will be deleted!\\n\\nEverything this user has posted on this "
 "site will be permanently deleted!\\n\\nAre you sure?"
 msgstr ""
 
-#: ../../mod/admin.php:717
+#: ../../mod/admin.php:720
 #, php-format
 msgid "Plugin %s disabled."
 msgstr ""
 
-#: ../../mod/admin.php:721
+#: ../../mod/admin.php:724
 #, php-format
 msgid "Plugin %s enabled."
 msgstr ""
 
-#: ../../mod/admin.php:731 ../../mod/admin.php:929
+#: ../../mod/admin.php:734 ../../mod/admin.php:932
 msgid "Disable"
 msgstr ""
 
-#: ../../mod/admin.php:733 ../../mod/admin.php:931
+#: ../../mod/admin.php:736 ../../mod/admin.php:934
 msgid "Enable"
 msgstr ""
 
-#: ../../mod/admin.php:755 ../../mod/admin.php:960
+#: ../../mod/admin.php:758 ../../mod/admin.php:963
 msgid "Toggle"
 msgstr ""
 
-#: ../../mod/admin.php:763 ../../mod/admin.php:970
+#: ../../mod/admin.php:766 ../../mod/admin.php:973
 msgid "Author: "
 msgstr ""
 
-#: ../../mod/admin.php:764 ../../mod/admin.php:971
+#: ../../mod/admin.php:767 ../../mod/admin.php:974
 msgid "Maintainer: "
 msgstr ""
 
-#: ../../mod/admin.php:893
+#: ../../mod/admin.php:896
 msgid "No themes found."
 msgstr ""
 
-#: ../../mod/admin.php:952
+#: ../../mod/admin.php:955
 msgid "Screenshot"
 msgstr ""
 
-#: ../../mod/admin.php:1000
+#: ../../mod/admin.php:1003
 msgid "[Experimental]"
 msgstr ""
 
-#: ../../mod/admin.php:1001
+#: ../../mod/admin.php:1004
 msgid "[Unsupported]"
 msgstr ""
 
-#: ../../mod/admin.php:1028
+#: ../../mod/admin.php:1031
 msgid "Log settings updated."
 msgstr ""
 
-#: ../../mod/admin.php:1084
+#: ../../mod/admin.php:1087
 msgid "Clear"
 msgstr ""
 
-#: ../../mod/admin.php:1090
+#: ../../mod/admin.php:1093
 msgid "Debugging"
 msgstr ""
 
-#: ../../mod/admin.php:1091
+#: ../../mod/admin.php:1094
 msgid "Log file"
 msgstr ""
 
-#: ../../mod/admin.php:1091
+#: ../../mod/admin.php:1094
 msgid ""
 "Must be writable by web server. Relative to your Friendica top-level "
 "directory."
 msgstr ""
 
-#: ../../mod/admin.php:1092
+#: ../../mod/admin.php:1095
 msgid "Log level"
 msgstr ""
 
-#: ../../mod/admin.php:1142
+#: ../../mod/admin.php:1145
 msgid "Close"
 msgstr ""
 
-#: ../../mod/admin.php:1148
+#: ../../mod/admin.php:1151
 msgid "FTP Host"
 msgstr ""
 
-#: ../../mod/admin.php:1149
+#: ../../mod/admin.php:1152
 msgid "FTP Path"
 msgstr ""
 
-#: ../../mod/admin.php:1150
+#: ../../mod/admin.php:1153
 msgid "FTP User"
 msgstr ""
 
-#: ../../mod/admin.php:1151
+#: ../../mod/admin.php:1154
 msgid "FTP Password"
 msgstr ""
 
@@ -3894,7 +3902,7 @@ msgstr ""
 msgid "link"
 msgstr ""
 
-#: ../../mod/display.php:127
+#: ../../mod/display.php:128
 msgid "Item has been removed."
 msgstr ""
 
@@ -4218,8 +4226,8 @@ msgstr ""
 msgid "Edit visibility"
 msgstr ""
 
-#: ../../mod/filer.php:29 ../../include/conversation.php:1070
-#: ../../include/conversation.php:1087
+#: ../../mod/filer.php:29 ../../include/conversation.php:1062
+#: ../../include/conversation.php:1079
 msgid "Save to Folder:"
 msgstr ""
 
@@ -8162,34 +8170,34 @@ msgstr ""
 msgid "stopped following"
 msgstr ""
 
-#: ../../include/Contact.php:220 ../../include/conversation.php:967
+#: ../../include/Contact.php:220 ../../include/conversation.php:959
 msgid "Poke"
 msgstr ""
 
-#: ../../include/Contact.php:221 ../../include/conversation.php:961
+#: ../../include/Contact.php:221 ../../include/conversation.php:953
 msgid "View Status"
 msgstr ""
 
-#: ../../include/Contact.php:222 ../../include/conversation.php:962
+#: ../../include/Contact.php:222 ../../include/conversation.php:954
 msgid "View Profile"
 msgstr ""
 
-#: ../../include/Contact.php:223 ../../include/conversation.php:963
+#: ../../include/Contact.php:223 ../../include/conversation.php:955
 msgid "View Photos"
 msgstr ""
 
 #: ../../include/Contact.php:224 ../../include/Contact.php:237
-#: ../../include/conversation.php:964
+#: ../../include/conversation.php:956
 msgid "Network Posts"
 msgstr ""
 
 #: ../../include/Contact.php:225 ../../include/Contact.php:237
-#: ../../include/conversation.php:965
+#: ../../include/conversation.php:957
 msgid "Edit Contact"
 msgstr ""
 
 #: ../../include/Contact.php:226 ../../include/Contact.php:237
-#: ../../include/conversation.php:966
+#: ../../include/conversation.php:958
 msgid "Send PM"
 msgstr ""
 
@@ -8207,106 +8215,106 @@ msgstr ""
 msgid "%1$s marked %2$s's %3$s as favorite"
 msgstr ""
 
-#: ../../include/conversation.php:867
+#: ../../include/conversation.php:859
 msgid "Delete Selected Items"
 msgstr ""
 
-#: ../../include/conversation.php:1025
+#: ../../include/conversation.php:1017
 #, php-format
 msgid "%s likes this."
 msgstr ""
 
-#: ../../include/conversation.php:1025
+#: ../../include/conversation.php:1017
 #, php-format
 msgid "%s doesn't like this."
 msgstr ""
 
-#: ../../include/conversation.php:1029
+#: ../../include/conversation.php:1021
 #, php-format
 msgid "<span  %1$s>%2$d people</span> like this."
 msgstr ""
 
-#: ../../include/conversation.php:1031
+#: ../../include/conversation.php:1023
 #, php-format
 msgid "<span  %1$s>%2$d people</span> don't like this."
 msgstr ""
 
-#: ../../include/conversation.php:1037
+#: ../../include/conversation.php:1029
 msgid "and"
 msgstr ""
 
-#: ../../include/conversation.php:1040
+#: ../../include/conversation.php:1032
 #, php-format
 msgid ", and %d other people"
 msgstr ""
 
-#: ../../include/conversation.php:1041
+#: ../../include/conversation.php:1033
 #, php-format
 msgid "%s like this."
 msgstr ""
 
-#: ../../include/conversation.php:1041
+#: ../../include/conversation.php:1033
 #, php-format
 msgid "%s don't like this."
 msgstr ""
 
-#: ../../include/conversation.php:1065 ../../include/conversation.php:1082
+#: ../../include/conversation.php:1057 ../../include/conversation.php:1074
 msgid "Visible to <strong>everybody</strong>"
 msgstr ""
 
-#: ../../include/conversation.php:1067 ../../include/conversation.php:1084
+#: ../../include/conversation.php:1059 ../../include/conversation.php:1076
 msgid "Please enter a video link/URL:"
 msgstr ""
 
-#: ../../include/conversation.php:1068 ../../include/conversation.php:1085
+#: ../../include/conversation.php:1060 ../../include/conversation.php:1077
 msgid "Please enter an audio link/URL:"
 msgstr ""
 
-#: ../../include/conversation.php:1069 ../../include/conversation.php:1086
+#: ../../include/conversation.php:1061 ../../include/conversation.php:1078
 msgid "Tag term:"
 msgstr ""
 
-#: ../../include/conversation.php:1071 ../../include/conversation.php:1088
+#: ../../include/conversation.php:1063 ../../include/conversation.php:1080
 msgid "Where are you right now?"
 msgstr ""
 
-#: ../../include/conversation.php:1131
+#: ../../include/conversation.php:1123
 msgid "upload photo"
 msgstr ""
 
-#: ../../include/conversation.php:1133
+#: ../../include/conversation.php:1125
 msgid "attach file"
 msgstr ""
 
-#: ../../include/conversation.php:1135
+#: ../../include/conversation.php:1127
 msgid "web link"
 msgstr ""
 
-#: ../../include/conversation.php:1136
+#: ../../include/conversation.php:1128
 msgid "Insert video link"
 msgstr ""
 
-#: ../../include/conversation.php:1137
+#: ../../include/conversation.php:1129
 msgid "video link"
 msgstr ""
 
-#: ../../include/conversation.php:1138
+#: ../../include/conversation.php:1130
 msgid "Insert audio link"
 msgstr ""
 
-#: ../../include/conversation.php:1139
+#: ../../include/conversation.php:1131
 msgid "audio link"
 msgstr ""
 
-#: ../../include/conversation.php:1141
+#: ../../include/conversation.php:1133
 msgid "set location"
 msgstr ""
 
-#: ../../include/conversation.php:1143
+#: ../../include/conversation.php:1135
 msgid "clear location"
 msgstr ""
 
-#: ../../include/conversation.php:1150
+#: ../../include/conversation.php:1142
 msgid "permissions"
 msgstr ""
 

From 20be1778db11333e9eed5dfa2ea0ec72b5e1b70b Mon Sep 17 00:00:00 2001
From: friendica <info@friendica.com>
Date: Fri, 10 Aug 2012 16:36:44 -0700
Subject: [PATCH 12/14] bring likes back - comment ordering is still a bit
 funky

---
 include/conversation.php | 23 +++++++++++++++--------
 view/wall_thread.tpl     | 17 ++++++++++-------
 view/wallwall_thread.tpl | 16 +++++++++-------
 3 files changed, 34 insertions(+), 22 deletions(-)

diff --git a/include/conversation.php b/include/conversation.php
index 68aa1fa33..df076de3a 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -305,6 +305,9 @@ function localize_item(&$item){
 function count_descendants($item) {
 	$total = count($item['children']);
 
+	if($item['verb'] === ACTIVITY_LIKE || $item['verb'] === ACTIVITY_DISLIKE)
+		return 0;
+
 	if($total > 0) {
 		foreach($item['children'] as $child) {
 			$total += count_descendants($child);
@@ -318,7 +321,7 @@ function count_descendants($item) {
  * Recursively prepare a thread for HTML
  */
 
-function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $profile_owner, $thread_level=1) {
+function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $profile_owner, $alike, $dlike, $thread_level=1) {
 	$result = array();
 
 	$wall_template = 'wall_thread.tpl';
@@ -335,11 +338,14 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr
 			$nb_items--;
 			continue;
 		}
+
+		if($item['verb'] === ACTIVITY_LIKE || $item['verb'] === ACTIVITY_DISLIKE) {
+			$nb_items --;
+			continue;
+		}
 		
 		$items_seen++;
 		
-		$alike = array();
-		$dlike = array();
 		$comment = '';
 		$template = $wall_template;
 		$commentww = '';
@@ -410,9 +416,6 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr
 			$tag = trim($tag);
 			if ($tag!="") $tags[] = bbcode($tag);
 		}
-		
-		like_puller($a,$item,$alike,'like');
-		like_puller($a,$item,$dlike,'dislike');
 
 		$like    = ((x($alike,$item['uri'])) ? format_like($alike[$item['uri']],$alike[$item['uri'] . '-l'],'like',$item['uri']) : '');
 		$dislike = ((x($dlike,$item['uri'])) ? format_like($dlike[$item['uri']],$dlike[$item['uri'] . '-l'],'dislike',$item['uri']) : '');
@@ -602,7 +605,7 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr
 
 		$item_result['children'] = array();
 		if(count($item['children'])) {
-			$item_result['children'] = prepare_threads_body($a, $item['children'], $cmnt_tpl, $page_writeable, $mode, $profile_owner, ($thread_level + 1));
+			$item_result['children'] = prepare_threads_body($a, $item['children'], $cmnt_tpl, $page_writeable, $mode, $profile_owner, $alike, $dlike, ($thread_level + 1));
 		}
 		$item_result['private'] = $item['private'];
 		$item_result['toplevel'] = ($toplevelpost ? 'toplevel_item' : '');
@@ -842,12 +845,16 @@ function conversation(&$a, $items, $mode, $update, $preview = false) {
 
 			$threads = array();
 			foreach($items as $item) {
+
+				like_puller($a,$item,$alike,'like');
+				like_puller($a,$item,$dlike,'dislike');
+
 				if($item['id'] == $item['parent']) {
 					$threads[] = $item;
 				}
 			}
 
-			$threads = prepare_threads_body($a, $threads, $cmnt_tpl, $page_writeable, $mode, $profile_owner);
+			$threads = prepare_threads_body($a, $threads, $cmnt_tpl, $page_writeable, $mode,  $profile_owner, $alike, $dlike);
 		}
 	}
 		
diff --git a/view/wall_thread.tpl b/view/wall_thread.tpl
index 600f755b1..6f7ced7fe 100644
--- a/view/wall_thread.tpl
+++ b/view/wall_thread.tpl
@@ -73,18 +73,20 @@
 			</div>
 				{{ if $item.drop.dropping }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
 			<div class="wall-item-delete-end"></div>
-			{{ if $item.threaded }}
-			{{ if $item.comment }}
-			<div class="wall-item-comment-wrapper" >
-				$item.comment
-			</div>
-			{{ endif }}
-			{{ endif }}
 		</div>
 	</div>
 	<div class="wall-item-wrapper-end"></div>
 	<div class="wall-item-like $item.indent" id="wall-item-like-$item.id">$item.like</div>
 	<div class="wall-item-dislike $item.indent" id="wall-item-dislike-$item.id">$item.dislike</div>
+
+			{{ if $item.threaded }}
+			{{ if $item.comment }}
+			<div class="wall-item-comment-wrapper$item.indent" >
+				$item.comment
+			</div>
+			{{ endif }}
+			{{ endif }}
+
 <div class="wall-item-outside-wrapper-end$item.indent" ></div>
 </div>
 {{ for $item.children as $item }}
@@ -98,3 +100,4 @@
 {{ endif }}
 </div>
 {{if $item.comment_lastcollapsed}}</div>{{endif}}
+
diff --git a/view/wallwall_thread.tpl b/view/wallwall_thread.tpl
index 89f121f21..63799664c 100644
--- a/view/wallwall_thread.tpl
+++ b/view/wallwall_thread.tpl
@@ -78,18 +78,20 @@
 			</div>
 				{{ if $item.drop.dropping }}<input type="checkbox" onclick="checkboxhighlight(this);" title="$item.drop.select" class="item-select" name="itemselected[]" value="$item.id" />{{ endif }}
 			<div class="wall-item-delete-end"></div>
-			{{ if $item.threaded }}
-			{{ if $item.comment }}
-			<div class="wall-item-comment-wrapper" >
-				$item.comment
-			</div>
-			{{ endif }}
-			{{ endif }}
 		</div>
 	</div>	
 	<div class="wall-item-wrapper-end"></div>
 	<div class="wall-item-like $item.indent" id="wall-item-like-$item.id">$item.like</div>
 	<div class="wall-item-dislike $item.indent" id="wall-item-dislike-$item.id">$item.dislike</div>
+
+			{{ if $item.threaded }}
+			{{ if $item.comment }}
+			<div class="wall-item-comment-wrapper$item.indent" >
+				$item.comment
+			</div>
+			{{ endif }}
+			{{ endif }}
+
 <div class="wall-item-outside-wrapper-end$item.indent" ></div>
 </div>
 {{ for $item.children as $item }}

From 95bf9324b47ab6b18612980ed13554b8bb9a289a Mon Sep 17 00:00:00 2001
From: friendica <info@friendica.com>
Date: Fri, 10 Aug 2012 23:42:45 -0700
Subject: [PATCH 13/14] fix child count

---
 include/conversation.php | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/conversation.php b/include/conversation.php
index df076de3a..e6f998a9d 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -336,11 +336,13 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr
 		if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) {
 			// Don't count it as a visible item
 			$nb_items--;
+			$total_children = $nb_items;
 			continue;
 		}
 
 		if($item['verb'] === ACTIVITY_LIKE || $item['verb'] === ACTIVITY_DISLIKE) {
 			$nb_items --;
+			$total_children = $nb_items;
 			continue;
 		}
 		

From d4b61883568b9d8271e1960f3a4a15a5413284be Mon Sep 17 00:00:00 2001
From: friendica <info@friendica.com>
Date: Sat, 11 Aug 2012 01:26:10 -0700
Subject: [PATCH 14/14] getting comment counts correct in a threaded world

---
 include/conversation.php | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/include/conversation.php b/include/conversation.php
index e6f998a9d..adc198412 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -305,11 +305,11 @@ function localize_item(&$item){
 function count_descendants($item) {
 	$total = count($item['children']);
 
-	if($item['verb'] === ACTIVITY_LIKE || $item['verb'] === ACTIVITY_DISLIKE)
-		return 0;
-
 	if($total > 0) {
 		foreach($item['children'] as $child) {
+			if($child['verb'] === ACTIVITY_LIKE || $child['verb'] === ACTIVITY_DISLIKE) {
+				$total --;
+			}
 			$total += count_descendants($child);
 		}
 	}
@@ -332,17 +332,25 @@ function prepare_threads_body($a, $items, $cmnt_tpl, $page_writeable, $mode, $pr
 	$total_children = $nb_items;
 	
 	foreach($items as $item) {
-		// prevent private email reply to public conversation from leaking.
 		if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) {
 			// Don't count it as a visible item
 			$nb_items--;
-			$total_children = $nb_items;
+			$total_children --;
+		}
+		if($item['verb'] === ACTIVITY_LIKE || $item['verb'] === ACTIVITY_DISLIKE) {
+			$nb_items --;
+			$total_children --;
+
+		}
+	}
+
+	foreach($items as $item) {
+		// prevent private email reply to public conversation from leaking.
+		if($item['network'] === NETWORK_MAIL && local_user() != $item['uid']) {
 			continue;
 		}
 
 		if($item['verb'] === ACTIVITY_LIKE || $item['verb'] === ACTIVITY_DISLIKE) {
-			$nb_items --;
-			$total_children = $nb_items;
 			continue;
 		}