]> xenbits.xensource.com Git - people/larsk/xenproject-org-websites.git/commitdiff
Added blog theme (as extracted from blog.xen.org pre LF header)
authorlarsk <lars.kurth@citrix.com>
Fri, 14 Jun 2013 10:54:01 +0000 (11:54 +0100)
committerlarsk <lars.kurth@citrix.com>
Fri, 14 Jun 2013 10:54:01 +0000 (11:54 +0100)
430 files changed:
theme-blog.xenproject.org/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/.svn/text-base/CHANGELOG.txt.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/.svn/text-base/README.txt.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/.svn/text-base/admin.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/.svn/text-base/ajax-load.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/.svn/text-base/attachment.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/.svn/text-base/carrington.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/.svn/text-base/compatibility.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/.svn/text-base/templates.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/.svn/text-base/utility.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/404.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/CHANGELOG.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/admin.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/ajax-load.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/archive.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/attachment.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/attachment/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/attachment/attachment-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/admin.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/ajax-load.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/attachment.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/carrington.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/compatibility.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/css/colorpicker.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/blank.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_background.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hex.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_h.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_s.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_indic.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_overlay.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_g.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_r.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_select.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_submit.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_background.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hex.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_h.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_s.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_indic.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_g.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_r.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_submit.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/select.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/select2.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/slider.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/js/colorpicker.js [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/LICENSE.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/css/thickbox.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/blank.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/loadingAnimation.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/macFFBgHack.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/thickbox.js [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/templates.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington-core/utility.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/carrington.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/comment/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/comment/comment-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/comment/ping.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/comments.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/comments/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/comments/comments-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/comments/comments-loop.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/comments/pings-loop.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/comments/threaded.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/compatibility.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/content/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/content/content-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/content/page.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/.svn/prop-base/colorpicker.css.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/.svn/text-base/colorpicker.css.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/attachment-light.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/attachment.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/carrington-blog.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/colorpicker.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/css.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/ie.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/ie6.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/iepngfix.htc [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/img.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/css/typography.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/error/404.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/error/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/error/exit.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/excerpt/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/excerpt/excerpt-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/excerpt/search.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/footer.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/footer/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/footer/footer-default-old.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/footer/footer-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/footer/footer-default.php~ [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/forms/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/forms/comment.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/forms/search.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/functions.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/functions/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/functions/admin.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/functions/sidebars.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/header.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/header/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/header/header-default-old.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/header/header-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/header/header-default.php~ [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/blank.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_background.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hex.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hsb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hsb_h.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hsb_s.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_indic.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_overlay.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_rgb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_rgb_g.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_rgb_r.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_select.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_submit.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_background.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hex.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hsb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hsb_h.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hsb_s.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_indic.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_rgb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_rgb_g.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_rgb_r.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_submit.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/select.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/select2.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/slider.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/blank.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_background.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hex.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_h.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_s.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_indic.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_overlay.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_g.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_r.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_select.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_submit.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_background.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hex.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_h.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_s.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_indic.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_g.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_r.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_submit.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/select.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/select2.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/slider.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/blank.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_background.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hex.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_h.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_s.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_indic.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_overlay.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_g.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_r.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_select.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_submit.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_background.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hex.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_h.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_s.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_indic.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_g.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_r.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_submit.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/select.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/select2.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/images/colorpicker/slider.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/arrow-bullet.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-left-dark.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-left-light.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-right-dark.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-right-light.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/author-comment.jpg [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/comment-reply.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/comment-thread.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/comment.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/comments-divider.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/divider-ornament-wide-dark.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/divider-ornament-wide.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/divider-ornament.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/dropdown-divider.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/footer/by-crowd-favorite-dark.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/footer/by-crowd-favorite-light.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/footer/divider-ornament-wide-light.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/footer/gradient-dark.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/footer/gradient-light.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/grey-to-white-gradient.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/header/gradient-dark.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/header/gradient-light.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/header/texture-dark.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/header/texture-light.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/lightbox/nextlabel.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/lightbox/prevlabel.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/ndash.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/rss-button.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/sidebar-background.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/spinner.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/sub-header-border-bottom.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/watermark-light.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/xen_logo.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/img/xen_logo_trans.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/index.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/js/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/js/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/js/.svn/prop-base/colorpicker.js.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/js/.svn/text-base/colorpicker.js.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/js/DD_belatedPNG.js [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/js/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/js/carrington.js [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/js/colorpicker.js [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/js/iepngfix_tilebg.js [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/.svn/prop-base/LICENSE.txt.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/.svn/text-base/LICENSE.txt.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/.svn/text-base/thickbox.js.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/LICENSE.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/css/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/css/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/css/.svn/text-base/thickbox.css.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/css/thickbox.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/prop-base/blank.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/prop-base/loadingAnimation.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/prop-base/macFFBgHack.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/blank.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/loadingAnimation.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/macFFBgHack.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/img/blank.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/img/loadingAnimation.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/img/macFFBgHack.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/lightbox/thickbox.js [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/CHANGELOG.txt.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/README.txt.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/admin.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/ajax-load.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/attachment.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/carrington.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/compatibility.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/templates.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/utility.php.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/CHANGELOG.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/admin.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/ajax-load.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/archive.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/attachment.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/carrington.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/compatibility.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/css/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/css/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/css/.svn/prop-base/colorpicker.css.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/css/.svn/text-base/colorpicker.css.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/css/colorpicker.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/blank.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_background.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hex.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hsb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hsb_h.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hsb_s.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_indic.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_overlay.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_rgb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_rgb_g.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_rgb_r.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_select.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_submit.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_background.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hex.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hsb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hsb_h.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hsb_s.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_indic.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_rgb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_rgb_g.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_rgb_r.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_submit.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/select.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/select2.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/slider.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/blank.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_background.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hex.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_h.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_s.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_indic.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_overlay.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_g.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_r.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_select.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_submit.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_background.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hex.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_h.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_s.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_indic.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_b.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_g.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_r.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_submit.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/select.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/select2.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/slider.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/blank.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_background.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hex.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_h.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_s.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_indic.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_overlay.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_g.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_r.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_select.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_submit.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_background.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hex.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_h.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_s.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_indic.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_b.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_g.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_r.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_submit.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/select.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/select2.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/slider.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/js/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/js/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/js/.svn/prop-base/colorpicker.js.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/js/.svn/text-base/colorpicker.js.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/js/colorpicker.js [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/prop-base/LICENSE.txt.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/text-base/LICENSE.txt.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/text-base/thickbox.js.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/LICENSE.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/.svn/text-base/thickbox.css.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/thickbox.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/all-wcprops [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/entries [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/prop-base/blank.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/prop-base/loadingAnimation.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/prop-base/macFFBgHack.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/blank.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/loadingAnimation.gif.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/macFFBgHack.png.svn-base [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/blank.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/loadingAnimation.gif [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/macFFBgHack.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/lightbox/thickbox.js [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/loop-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/page.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/search.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/single.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/templates.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/loop/utility.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/misc/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/misc/banner.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/misc/nav-posts.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/misc/no-results.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/page.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/pages/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/pages/pages-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/plugins/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/posts/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/posts/author.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/posts/category.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/posts/home.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/posts/posts-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/posts/search.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/posts/tag.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/screenshot.png [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/search.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/sidebar.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/sidebar/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/sidebar/sidebar-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/single.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/single/README.txt [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/single/single-default.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/style.css [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/templates.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/utility.php [new file with mode: 0644]
theme-blog.xenproject.org/carrington-blog/xen_logo_trans.gif [new file with mode: 0644]

diff --git a/theme-blog.xenproject.org/README.txt b/theme-blog.xenproject.org/README.txt
new file mode 100644 (file)
index 0000000..8196c12
--- /dev/null
@@ -0,0 +1,8 @@
+TO INSTALL
+
+Machine: bog.xen.org
+
+Copy theme the into the theme dir /var/www/wordpress/wp-content/themes/ and make sure it is www-data user owned
+
+Note that /var/www/wordpress/wp-content/themes/carrington-blog is a symlink to carrington-blog-new in the same dir.
+
diff --git a/theme-blog.xenproject.org/carrington-blog/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..44cfe00
--- /dev/null
@@ -0,0 +1,59 @@
+K 25
+svn:wc:ra_dav:version-url
+V 38
+/svn/!svn/ver/511/framework/tags/3.0.1
+END
+compatibility.php
+K 25
+svn:wc:ra_dav:version-url
+V 56
+/svn/!svn/ver/511/framework/tags/3.0.1/compatibility.php
+END
+templates.php
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/511/framework/tags/3.0.1/templates.php
+END
+CHANGELOG.txt
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/511/framework/tags/3.0.1/CHANGELOG.txt
+END
+ajax-load.php
+K 25
+svn:wc:ra_dav:version-url
+V 52
+/svn/!svn/ver/511/framework/tags/3.0.1/ajax-load.php
+END
+utility.php
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svn/!svn/ver/511/framework/tags/3.0.1/utility.php
+END
+README.txt
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/511/framework/tags/3.0.1/README.txt
+END
+carrington.php
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/511/framework/tags/3.0.1/carrington.php
+END
+attachment.php
+K 25
+svn:wc:ra_dav:version-url
+V 53
+/svn/!svn/ver/511/framework/tags/3.0.1/attachment.php
+END
+admin.php
+K 25
+svn:wc:ra_dav:version-url
+V 48
+/svn/!svn/ver/511/framework/tags/3.0.1/admin.php
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/.svn/entries b/theme-blog.xenproject.org/carrington-blog/.svn/entries
new file mode 100644 (file)
index 0000000..9bba81c
--- /dev/null
@@ -0,0 +1,346 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0.1
+http://carrington.googlecode.com/svn
+
+
+
+2010-07-28T23:05:07.705090Z
+511
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+compatibility.php
+file
+
+
+
+
+2010-08-02T15:33:17.647216Z
+95a18c7c384460a28e5110d61186e1b0
+2010-07-22T19:53:57.334278Z
+501
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6870
+\f
+lightbox
+dir
+\f
+templates.php
+file
+
+
+
+
+2010-08-02T15:33:17.651215Z
+a5f8c0b74a88b136a18b138357cc86fb
+2010-01-31T20:17:50.850874Z
+463
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2673
+\f
+images
+dir
+\f
+CHANGELOG.txt
+file
+
+
+
+
+2010-08-02T15:33:17.651215Z
+fae8d7dc209fdb28131a4d5dc799f429
+2010-07-28T23:04:38.198402Z
+510
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2769
+\f
+ajax-load.php
+file
+
+
+
+
+2010-08-02T15:33:17.651215Z
+6ce262704f06ce2e3365cf98afc02136
+2010-07-24T02:08:30.419719Z
+504
+marlfoskr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3370
+\f
+css
+dir
+\f
+utility.php
+file
+
+
+
+
+2010-08-02T15:33:17.651215Z
+6585b60c054571e4dd7e98dcb6e63101
+2010-06-07T21:29:12.363266Z
+493
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+19871
+\f
+README.txt
+file
+
+
+
+
+2010-08-02T15:33:17.651215Z
+ffc3c0cd0f0b459e008a8b8b857c5cd8
+2009-01-18T04:37:19.211768Z
+62
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+261
+\f
+js
+dir
+\f
+carrington.php
+file
+
+
+
+
+2010-08-02T15:33:17.651215Z
+0c1dda89733472850fc477f0860a5216
+2010-07-28T23:04:38.198402Z
+510
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3130
+\f
+attachment.php
+file
+
+
+
+
+2010-08-02T15:33:17.651215Z
+0da94ff326df84deef92b8a54c5f32f3
+2010-01-31T20:17:29.968514Z
+462
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3883
+\f
+admin.php
+file
+
+
+
+
+2010-08-02T15:33:17.651215Z
+4638d50f04121af391d224ce65456888
+2010-07-28T16:43:42.636495Z
+508
+wookieeboy@gmail.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10357
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/.svn/text-base/CHANGELOG.txt.svn-base b/theme-blog.xenproject.org/carrington-blog/.svn/text-base/CHANGELOG.txt.svn-base
new file mode 100644 (file)
index 0000000..2d059f4
--- /dev/null
@@ -0,0 +1,81 @@
+# Carrington Core Framework Changelog
+
+## 3.0.1
+
+- Added nonces to settings page
+- Made title of settings page filterable
+- Made menu item title filterable
+- Support custom post types in AJAX archives
+- Version # now tied to WP release # (this version, 3.0.1, released during WP 3.0)
+
+
+## 3.0
+
+- Added support for custom post types (WordPress 3.0)
+- Support for child themes (including adding templates and plugins in child themes that do not exist in the parent theme)
+- Allow custom functions to be filtered into the Single and Comment template selection process (already supported in General context selection)
+- Make the posts_per_page setting work as intended (only on initial query)
+- Support for nesting templates inside sub-directories in misc/ and forms/
+- Removed use of deprecated function `get_the_author_ID`. Replaced with 2.8 `get_the_author_meta` (since 2.8.0). Users of versions of WordPress prior to 2.8.0 should be aware this change will cause problems for them.
+- Define required Carrington settings in a more forgiving way, making it easier to use just part of Carrington on a site when desired
+- Make gallery settings (implemented in CSS) specific to each gallery
+- home.php is now only used in is_home() situations, not is_front_page() (reverses feature requested and added in v. 2.5)
+- Added changelog
+
+
+## 2.5
+
+- added CFCT_CORE_VERSION constant
+- added support for is_front_page() as 'home' in General context
+- added a filter in cfct_files() so that a plugin can declaritively set the files available for performance reasons (eliminates file system lookups)
+
+
+## 2.4
+
+- update included Thickbox script to support jQuery 1.2.6 (remove @ syntax for attributes)
+- allow filtered in functions to participate in template selection for General context
+
+
+## 2.3
+
+- updated copied Gallery functions
+- workaround for pages needing some vars set in global $wp_query
+- add is_sticky() function for compatibility
+- pass directory name along with filename to cfct_choose_general_template filter
+- pass type along with filename to cfct_choose_content_template filter
+- don't choose "page" content type unless there are no matches from cfct_choose_single_template()
+
+
+## 2.2.1
+
+- only output CSS for the admin on the Carrington settings page
+- fake "in_the_loop" for AJAX load of post content
+
+
+## 2.2
+
+- add a check for comment/ping.php before returning
+
+
+## 2.1
+
+- add a cfct_get_custom_colors() function to core
+
+
+## 2.0
+
+- add color picker
+- add gallery support
+- add hooks to admin forms
+- additional internationalization
+- add header image form
+- properly exclude private posts from AJX load
+- restructure code/files
+- add compatibility file
+- add threaded comment support
+- add single-* support to General context
+
+
+## 1.3
+
+- first tagged core version
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/.svn/text-base/README.txt.svn-base b/theme-blog.xenproject.org/carrington-blog/.svn/text-base/README.txt.svn-base
new file mode 100644 (file)
index 0000000..7ada478
--- /dev/null
@@ -0,0 +1,15 @@
+## carrington-core/
+
+### Overview
+
+This directory contains Carrington's custom features and functionality.
+
+
+### Supported Override Filenames
+
+- (none)
+
+
+### File Descriptions
+
+You do not need to do anything with files in this folder; they should remain as-is.
diff --git a/theme-blog.xenproject.org/carrington-blog/.svn/text-base/admin.php.svn-base b/theme-blog.xenproject.org/carrington-blog/.svn/text-base/admin.php.svn-base
new file mode 100644 (file)
index 0000000..4b8f75e
--- /dev/null
@@ -0,0 +1,333 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// - add admin page for config settings
+
+function cfct_admin_menu() {
+       if (!current_user_can('manage_options')) {
+               return;
+       }
+       add_submenu_page(
+               'themes.php',
+               apply_filters('cfct_admin_settings_title', __('Carrington Theme Settings', 'carrington')),
+               apply_filters('cfct_admin_settings_menu', __('Theme Settings', 'carrington')),
+               0,
+               'carrington-settings',
+               'cfct_settings_form'
+       );
+}
+add_action('admin_menu', 'cfct_admin_menu');
+
+function cfct_admin_request_handler() {
+       if (isset($_POST['cf_action'])) {
+               switch ($_POST['cf_action']) {
+                       case 'cfct_update_settings':
+                               call_user_func($_POST['cf_action']);
+                               wp_redirect(trailingslashit(get_bloginfo('wpurl')).'wp-admin/themes.php?page=carrington-settings&updated=true');
+               }
+       }
+}
+
+function cfct_update_settings() {
+       if (!current_user_can('manage_options')) {
+               return;
+       }
+       check_admin_referer('cfct_admin_settings');
+       
+       global $cfct_options;
+       foreach ($cfct_options as $option) {
+               if (isset($_POST[$option])) {
+                       update_option($option, stripslashes($_POST[$option]));
+               }
+       }
+       do_action('cfct_update_settings');
+}
+
+function cfct_settings_form() {
+       if (isset($_GET['updated'])) {
+               print('
+<div id="message" class="updated fade">
+       <p>'.__('Settings updated.', 'carrington').'</p>
+</div>
+               ');
+       }
+       print('
+<div class="wrap">
+       <h2>'.apply_filters('cfct_admin_settings_form_title', __('Carrington Theme Settings', 'carrington')).'</h2>
+       <form action="options.php" method="post">
+       ');
+       do_action('cfct_settings_form_top');
+       print('
+               <table class="form-table">
+                       <tbody>'
+//                     .cfct_options_home_column('1')
+//                     .cfct_options_home_column('2')
+//                     .cfct_options_home_column('3')
+                       .cfct_options_misc()
+                       .'</tbody>
+               </table>
+       ');
+       do_action('cfct_settings_form_bottom');
+       do_action('cfct_settings_form');
+       print('
+               <p class="submit" style="padding-left: 230px;">
+                       '.wp_nonce_field('cfct_admin_settings', '_wpnonce', true, false).'
+                       <input type="hidden" name="cf_action" value="cfct_update_settings" />
+                       <input type="submit" name="submit_button" class="button-primary" value="'.__('Save Changes', 'carrington').'" />
+               </p>
+       </form>
+</div>
+       ');
+       do_action('cfct_settings_form_after');
+}
+
+function cfct_options_home_column($key) {
+       $categories = get_categories('hide_empty=0');
+       $cat_options = '';
+       foreach ($categories as $category) {
+               if ($category->term_id == get_option('cfct_home_col_'.$key.'_cat')) {
+                       $selected = 'selected="selected"';
+               }
+               else {
+                       $selected = '';
+               }
+               $cat_options .= "\n\t<option value='$category->term_id' $selected>$category->name</option>";
+       }
+       $show_options = '';
+       $show_option = cfct_get_option('cfct_home_column_'.$key.'_content');
+       if ($show_option == 'latest') {
+               $latest_selected = 'selected="selected"';
+               $list_selected = '';
+       }
+       else {
+               $latest_selected = '';
+               $list_selected = 'selected="selected"';
+       }
+       $html = '
+                               <tr valign="top">
+                                       <th scope="row"><b>'.sprintf(__('Home Column %s', 'carrington'), $key).'</b></td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_home_column_'.$key.'_cat">'.__('Category:', 'carrington').'</label>
+                                                               <select name="cfct_home_column_'.$key.'_cat" id="cfct_home_column_'.$key.'_cat">'.$cat_options.'</select>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_home_column_'.$key.'_content">'.__('Show:', 'carrington').'</label>
+                                                               <select name="cfct_home_column_'.$key.'_content" id="cfct_home_column_'.$key.'_content" class="home_column_select">
+                                                                       <option value="latest" '.$latest_selected.'>'.__('Latest Post Preview', 'carrington').'</option>
+                                                                       <option value="list" '.$list_selected.'>'.__('List of Recent Post Titles', 'carrington').'</option>
+                                                               </select>
+                                                       </p>
+                                                       <p id="cfct_latest_limit_'.$key.'_option" class="hidden">
+                                                               <label for="cfct_latest_limit_'.$key.'">'.__('Length of preview, in characters (250 recommended):', 'carrington').'</label>
+                                                               <input type="text" name="cfct_latest_limit_'.$key.'" id="cfct_latest_limit_'.$key.'" value="'.cfct_get_option('cfct_latest_limit_'.$key).'" />
+                                                       </p>
+                                                       <p id="cfct_list_limit_'.$key.'_option" class="hidden">
+                                                               <label for="cfct_list_limit_'.$key.'">'.__('Number of titles to show in list (5 recommended):', 'carrington').'</label>
+                                                               <input type="text" name="cfct_list_limit_'.$key.'" id="cfct_list_limit_'.$key.'" value="'.cfct_get_option('cfct_list_limit_'.$key).'" />
+                                                       </p>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+       ';
+       return $html;
+}
+
+function cfct_options_misc() {
+       $options = array(
+               'yes' => __('Yes', 'carrington'),
+               'no' => __('No', 'carrington')
+       );
+       $credit_options = '';
+       foreach ($options as $k => $v) {
+               if ($k == get_option('cfct_credit')) {
+                       $credit_selected = 'selected="selected"';
+               }
+               else {
+                       $credit_selected = '';
+               }
+               $credit_options .= "\n\t<option value='$k' $credit_selected>$v</option>";
+       }
+       $html = '
+                               <tr valign="top">
+                                       <th scope="row">'.sprintf(__('Misc.', 'carrington'), $key).'</td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_about_text">'.__('About text (shown in sidebar):', 'carrington').'</label>
+                                                               <br />
+                                                               <textarea name="cfct_about_text" id="cfct_about_text" cols="40" rows="8">'.htmlspecialchars(get_option('cfct_about_text')).'</textarea>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_wp_footer">'.__('Footer code (for analytics, etc.):', 'carrington').'</label>
+                                                               <br />
+                                                               <textarea name="cfct_wp_footer" id="cfct_wp_footer" cols="40" rows="5">'.htmlspecialchars(get_option('cfct_wp_footer')).'</textarea>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_credit">'.__('Give <a href="http://crowdfavorite.com">Crowd Favorite</a> credit in footer:', 'carrington').'</label>
+                                                               <select name="cfct_credit" id="cfct_credit">'.$credit_options.'</select>
+                                                       </p>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+       ';
+       return $html;
+}
+
+function cfct_header_image_form() {
+       global $wpdb;
+
+       $images = $wpdb->get_results("
+               SELECT * FROM $wpdb->posts 
+               WHERE post_type = 'attachment' 
+               AND post_mime_type LIKE 'image%' 
+               AND post_parent = 0
+               ORDER BY post_date_gmt DESC
+               LIMIT 50
+       ");
+       $upload_url = trailingslashit(get_bloginfo('wpurl')).'wp-admin/media-new.php';
+       $checked_attr = ' checked="checked"';
+       $output = '
+<ul style="width: '.((count($images) + 1) * 152).'px">
+       <li style="background: #666;">
+               <label for="cfct_header_image_0">
+                       <input type="radio" name="cfct_header_image" value="0" id="cfct_header_image_0" '.$default_checked.'/>'.__('No Image', 'carrington-core').'
+               </label>
+       </li>
+       ';
+       if (count($images)) {
+               $header_image = get_option('cfct_header_image');
+               if (empty($header_image)) {
+                       $header_image = 0;
+                       $default_checked = $checked_attr;
+               }
+               else {
+                       $default_checked = '';
+               }
+               foreach ($images as $image) {
+                       $id = 'cfct_header_image_'.$image->ID;
+                       $thumbnail = wp_get_attachment_image_src($image->ID);
+                       $header_image == $image->ID ? $checked = $checked_attr : $checked = '';
+                       $output .= '
+       <li style="background-image: url('.$thumbnail[0].')">
+               <label for="'.$id.'">
+                       <input type="radio" name="cfct_header_image" value="'.$image->ID.'" id="'.$id.'"'.$checked.' />'.wp_specialchars($image->post_title).'
+               </label>
+       </li>';
+               }
+       }
+       $output .= '</ul>';
+       return '<p>'.sprintf(__('Header Image &mdash; <a href="%s">Upload Images</a>', 'carrington-core'), $upload_url).'</p><div class="cfct_header_image_carousel">'.$output.'</div>';
+}
+
+if (is_admin()) {
+       wp_enqueue_script('jquery-colorpicker', get_bloginfo('template_directory').'/carrington-core/js/colorpicker.js', array('jquery'), '1.0');
+// removing until we drop 2.5 compatibility
+//     wp_enqueue_style('jquery-colorpicker', get_bloginfo('template_directory').'/carrington-core/css/colorpicker.css');
+}
+
+function cfct_admin_head() {
+// see enqueued style above, we'll activate that in the future
+       if ($_GET['page'] == 'carrington-settings') {
+               echo '
+<link rel="stylesheet" type="text/css" media="screen" href="'.get_bloginfo('template_directory').'/carrington-core/css/colorpicker.css" />
+               ';
+               cfct_admin_css();
+       }
+//     cfct_admin_js();
+}
+add_action('admin_head', 'cfct_admin_head');
+
+function cfct_admin_css() {
+?>
+<style type="text/css">
+div.cfct_header_image_carousel {
+       height: 170px;
+       overflow: auto;
+       width: 600px;
+}
+div.cfct_header_image_carousel ul {
+       height: 150px;
+}
+div.cfct_header_image_carousel li {
+       background: #fff url() center center no-repeat;
+       float: left;
+       height: 150px;
+       margin-right: 2px;
+       overflow: hidden;
+       position: relative;
+       width: 150px;
+}
+div.cfct_header_image_carousel li label {
+       background: #000;
+       color: #fff;
+       display: block;
+       height: 50px;
+       line-height: 25px;
+       overflow: hidden;
+       position: absolute;
+       top: 110px;
+       width: 150px;
+       filter:alpha(opacity=75);
+       -moz-opacity:.75;
+       opacity:.75;
+}
+div.cfct_header_image_carousel li label input {
+       margin: 0 5px;
+}
+</style>
+<?php
+}
+
+function cfct_admin_js() {
+?>
+<script type="text/javascript">
+jQuery(function() {
+       jQuery('select.home_column_select').each(function() {
+               cfct_home_columns(jQuery(this), false);
+       }).change(function() {
+               cfct_home_columns(jQuery(this), true);
+       });
+});
+
+function cfct_home_columns(elem, slide) {
+       var id = elem.attr('id').replace('cfct_home_column_', '').replace('_content', '');
+       var val = elem.val();
+       var option_show = '#cfct_latest_limit_' + id + '_option';
+       var option_hide = '#cfct_list_limit_' + id + '_option';
+       if (val == 'list') {
+               option_show = '#cfct_list_limit_' + id + '_option';
+               option_hide = '#cfct_latest_limit_' + id + '_option';
+       }
+       if (slide) {
+               jQuery(option_hide).slideUp(function() {
+                       jQuery(option_show).slideDown();
+               });
+       }
+       else {
+               jQuery(option_show).show();
+               jQuery(option_hide).hide();
+       }
+}
+</script>
+<?php
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/.svn/text-base/ajax-load.php.svn-base b/theme-blog.xenproject.org/carrington-blog/.svn/text-base/ajax-load.php.svn-base
new file mode 100644 (file)
index 0000000..670ccbb
--- /dev/null
@@ -0,0 +1,112 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_ajax_post_content($post_id) {
+       global $post, $posts, $wp_query, $wp;
+       $post = get_post($post_id);
+       
+       // If the post wasn't found, or is not published or private, we're not interested.
+       if (!is_object($post) || !in_array($post->post_status, array('publish', 'private')) ) {
+               die();
+       }
+       
+       // If the post is private, make sure the user is allowed to see it before we show it.
+       if ($post->post_status == 'private') {
+               $user = wp_get_current_user();
+               if (!$user->ID || $user->ID != $post->post_author) {
+                       die();
+               }
+       }
+       
+       $wp_query->in_the_loop = true;
+       setup_postdata($post);
+       remove_filter('the_content', 'st_add_widget');
+       $wp->send_headers();
+       cfct_content();
+       
+       echo apply_filters('cfct_ajax_post_content_close', '<div class="close" id="post_close_'.$post_id.'"><a href="#">'.__('Close', 'carrington').'</a></div>', $post_id);
+}
+
+function cfct_ajax_post_comments($post_id) {
+       global $post, $posts, $wp_query, $wp;
+       $wp_query->is_single = true;
+       $posts = get_posts('include='.$post_id);
+       $post = $posts[0];
+       if (is_null($post)) {
+               $posts = get_pages('include='.$post_id);
+               $post = $posts[0];
+       }
+       setup_postdata($post);
+       $wp->send_headers();
+       comments_template();
+}
+
+function cfct_ajax_load() {
+       if (isset($_GET['cfct_action'])) {
+               switch ($_GET['cfct_action']) {
+                       case 'post_content':
+                       case 'post_comments':
+                               if (isset($_GET['id'])) {
+                                       $post_id = intval($_GET['id']);
+                               }
+                               else if (isset($_GET['url'])) {
+                                       $post_id = url_to_post_id($_GET['url']);
+                               }
+                               if ($post_id) {
+                                       call_user_func('cfct_ajax_'.$_GET['cfct_action'], $post_id);
+                                       die();
+                               }
+               }
+       }
+}
+
+function cfct_ajax_comment_link() {
+       global $post;
+       echo ' rev="post-'.$post->ID.'" ';
+}
+add_filter('comments_popup_link_attributes', 'cfct_ajax_comment_link');
+
+function cfct_posts_per_archive_page_setting() {
+       $count = get_option('cfct_posts_per_archive_page');
+       intval($count) > 0 ? $count = $count : $count = 25;
+       return $count;
+}
+
+// add a self-removing filter to handle category pages
+function cfct_add_posts_per_archive_page() {
+       add_filter('pre_get_posts', 'cfct_posts_per_archive_page');
+       add_filter('pre_get_posts', 'cfct_posts_per_category_page');
+}
+add_filter('parse_request', 'cfct_add_posts_per_archive_page');
+
+function cfct_posts_per_archive_page($query) {
+       remove_filter('pre_get_posts', 'cfct_posts_per_archive_page');
+       $query->set('posts_per_archive_page', cfct_posts_per_archive_page_setting());
+       return $query;
+}
+
+function cfct_posts_per_category_page($query) {
+       remove_filter('pre_get_posts', 'cfct_posts_per_category_page');
+       if (is_category()) {
+               $query->set('posts_per_page', cfct_posts_per_archive_page_setting());
+       }
+       return $query;
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/.svn/text-base/attachment.php.svn-base b/theme-blog.xenproject.org/carrington-blog/.svn/text-base/attachment.php.svn-base
new file mode 100644 (file)
index 0000000..f275f9f
--- /dev/null
@@ -0,0 +1,126 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+function cfct_get_adjacent_image_link($prev = true) {
+       global $post;
+       $post = get_post($post);
+       $attachments = array_values(get_children( array('post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID') ));
+
+       foreach ( $attachments as $k => $attachment )
+               if ( $attachment->ID == $post->ID )
+                       break;
+
+       $k = $prev ? $k - 1 : $k + 1;
+
+       if ( isset($attachments[$k]) )
+               return wp_get_attachment_link($attachments[$k]->ID, 'thumbnail', true);
+}
+
+function cfct_post_gallery($unused, $attr) {
+       global $post;
+
+       // We're trusting author input, so let's at least make sure it looks like a valid orderby statement
+       if ( isset( $attr['orderby'] ) ) {
+               $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
+               if ( !$attr['orderby'] )
+                       unset( $attr['orderby'] );
+       }
+
+       extract(shortcode_atts(array(
+               'order'      => 'ASC',
+               'orderby'    => 'menu_order ID',
+               'id'         => $post->ID,
+               'itemtag'    => 'dl',
+               'icontag'    => 'dt',
+               'captiontag' => 'dd',
+               'columns'    => 3,
+               'size'       => 'thumbnail'
+       ), $attr));
+
+       $id = intval($id);
+       $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
+
+       if ( empty($attachments) )
+               return '';
+
+       if ( is_feed() ) {
+               $output = "\n";
+               foreach ( $attachments as $id => $attachment )
+                       $output .= wp_get_attachment_link($id, $size, true) . "\n";
+               return $output;
+       }
+
+       $itemtag = tag_escape($itemtag);
+       $captiontag = tag_escape($captiontag);
+       $columns = apply_filters('cfct_post_gallery_columns', intval($columns));
+       $itemwidth = $columns > 0 ? floor(100/$columns) : 100;
+
+       $output = apply_filters('gallery_style', '
+               <style type="text/css">
+                       .post-'.$id.' .gallery {
+                               margin: auto;
+                       }
+                       .post-'.$id.' .gallery-item {
+                               float: left;
+                               margin-top: 10px;
+                               text-align: center;
+                               width: '.$itemwidth.'%;                 }
+                       .post-'.$id.' .gallery img {
+                               border: 2px solid #cfcfcf;
+                       }
+                       .post-'.$id.' .gallery-caption {
+                               margin-left: 0;
+                       }
+               </style>
+               <!-- see cfct_post_gallery() in carrington-core/attachment.php -->
+               <div class="gallery">');
+
+       $i = 0;
+       foreach ( $attachments as $id => $attachment ) {
+// get full item src
+               $item_src = wp_get_attachment_image_src($id, 'full', false);
+
+               $link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id, $size, false, false) : wp_get_attachment_link($id, $size, true, false);
+               
+// add full item src as rel
+               $link = str_replace('><img', ' class="thickbox" rel="'.$item_src[0].'"><img', $link);
+
+               $output .= "<{$itemtag} class='gallery-item'>";
+               $output .= "
+                       <{$icontag} class='gallery-icon'>
+                               $link
+                       </{$icontag}>";
+               if ( $captiontag && trim($attachment->post_excerpt) ) {
+                       $output .= "
+                               <{$captiontag} class='gallery-caption'>
+                               {$attachment->post_excerpt}
+                               </{$captiontag}>";
+               }
+               $output .= "</{$itemtag}>";
+               if ( $columns > 0 && ++$i % $columns == 0 )
+                       $output .= '<br style="clear: both" />';
+       }
+
+       $output .= "
+                       <br style='clear: both;' />
+               </div>\n";
+
+       return $output;
+}
+add_filter('post_gallery', 'cfct_post_gallery', 10, 2);
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/.svn/text-base/carrington.php.svn-base b/theme-blog.xenproject.org/carrington-blog/.svn/text-base/carrington.php.svn-base
new file mode 100644 (file)
index 0000000..f122a35
--- /dev/null
@@ -0,0 +1,106 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+//     ini_set('display_errors', '1');
+//     ini_set('error_reporting', E_ALL);
+
+define('CFCT_CORE_VERSION', '3.0.1');
+
+// Path to Carrington Core parent directory (usually the theme).
+if (!defined('CFCT_PATH')) {
+       define('CFCT_PATH', trailingslashit(TEMPLATEPATH));
+}
+
+load_theme_textdomain('carrington');
+
+$cfct_options[] = 'cfct_about_text';
+$cfct_options[] = 'cfct_credit';
+$cfct_options[] = 'cfct_wp_footer';
+
+include_once(CFCT_PATH.'carrington-core/admin.php');
+include_once(CFCT_PATH.'carrington-core/templates.php');
+include_once(CFCT_PATH.'carrington-core/utility.php');
+include_once(CFCT_PATH.'carrington-core/ajax-load.php');
+include_once(CFCT_PATH.'carrington-core/attachment.php');
+include_once(CFCT_PATH.'carrington-core/compatibility.php');
+
+cfct_load_plugins();
+
+function cfct_init() {
+       cfct_admin_request_handler();
+       if (cfct_get_option('cfct_ajax_load') == 'yes') {
+               cfct_ajax_load();
+       }
+}
+add_action('init', 'cfct_init');
+
+function cfct_wp_footer() {
+       echo get_option('cfct_wp_footer');
+}
+add_action('wp_footer', 'cfct_wp_footer');
+
+function cfct_about_text() {
+       $about_text = get_option('cfct_about_text');
+       if (!empty($about_text)) {
+               $about_text = cfct_basic_content_formatting($about_text);
+       }
+       else {
+               global $post, $wp_query;
+               $orig_post = $post;
+               isset($wp_query->query_vars['page']) ? $page = $wp_query->query_vars['page'] : $page = null;
+// temporary - resetting below
+               $wp_query->query_vars['page'] = null;
+               remove_filter('the_excerpt', 'st_add_widget');
+               $about_query = new WP_Query('pagename=about');
+               while ($about_query->have_posts()) {
+                       $about_query->the_post();
+                       $about_text = get_the_excerpt().sprintf(__('<a class="more" href="%s">more &rarr;</a>', 'carrington'), get_permalink());
+               }
+               $wp_query->query_vars['page'] = $page;
+               $post = $orig_post;
+               setup_postdata($post);
+       }
+       if (function_exists('st_add_widget')) {
+               add_filter('the_excerpt', 'st_add_widget');
+       }
+       return $about_text;
+}
+
+function cfct_get_custom_colors($type = 'option') {
+       global $cfct_color_options;
+       $colors = array();
+       foreach ($cfct_color_options as $option => $value) {
+               switch ($type) {
+                       case 'preview':
+                               !empty($_GET[$option]) ? $colors[$option] = strip_tags(stripslashes($_GET[$option])) : $colors[$option] = '';
+                               break;
+                       case 'option':
+                       default:
+                               $colors[$option] = cfct_get_option($option);
+                               break;
+               }
+       }
+       return $colors;
+}
+
+if (!defined('CFCT_DEBUG')) {
+       define('CFCT_DEBUG', false);
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/.svn/text-base/compatibility.php.svn-base b/theme-blog.xenproject.org/carrington-blog/.svn/text-base/compatibility.php.svn-base
new file mode 100644 (file)
index 0000000..1d86f3c
--- /dev/null
@@ -0,0 +1,242 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+/**
+ * Outputs hidden fields for comment form with unique IDs, based on post ID, making it safe for AJAX pull.
+ */
+function cfct_comment_id_fields() {
+       global $id;
+
+       $replytoid = isset($_GET['replytocom']) ? (int) $_GET['replytocom'] : 0;
+       echo "<input type='hidden' name='comment_post_ID' value='$id' id='comment_post_ID_p$id' />\n";
+       echo "<input type='hidden' name='comment_parent' id='comment_parent_p$id' value='$replytoid' />\n";
+}
+
+/**
+ * Filter the comment reply link to add a unique unique ID, based on post ID, making it safe for AJAX pull.
+ */
+function cfct_get_cancel_comment_reply_link($reply_link, $link, $text) {
+       global $post;
+       
+       if ( !empty($text) ) { $text = __('Cancel', 'carrington'); }
+       
+       $style = '';
+       if (!isset($_GET['replytocom'])) {
+               $style = ' style="display:none;"';
+       }
+       
+       $reply_link = '<a rel="nofollow" id="cancel-comment-reply-link-p' . $post->ID . '" href="' . $link . '-p' . $post->ID . '"' . $style . '>' . $text . '</a>';
+       return $reply_link;
+}
+
+
+
+
+// ITEMS BELOW THIS LINE ARE DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE
+
+
+// Functions here without the cfct_ prefix are taken from WordPress 2.7 (GPL)
+
+if (!function_exists('is_sticky')) {
+       function is_sticky() {
+               return false;
+       }
+}
+
+/**
+ * Displays classes for post div
+ *
+ * @param string|array $class One or more classes to add to the class list.
+ * @param int $post_id An optional post ID.
+ */
+
+if (!function_exists('post_class')) {
+       function post_class( $class = '', $post_id = null ) {
+               // Separates classes with a single space, collates classes for post DIV
+               echo 'class="' . join( ' ', get_post_class( $class, $post_id ) ) . '"';
+       }
+}
+
+/**
+ * Retrieve the classes for the post div as an array.
+ *
+ * The class names are add are many. If the post is a sticky, then the 'sticky'
+ * class name. The class 'hentry' is always added to each post. For each
+ * category, the class will be added with 'category-' with category slug is
+ * added. The tags are the same way as the categories with 'tag-' before the tag
+ * slug. All classes are passed through the filter, 'post_class' with the list
+ * of classes, followed by $class parameter value, with the post ID as the last
+ * parameter.
+ *
+ * @param string|array $class One or more classes to add to the class list.
+ * @param int $post_id An optional post ID.
+ * @return array Array of classes.
+ */
+if (!function_exists('get_post_class')) {
+       function get_post_class( $class = '', $post_id = null ) {
+               $post = get_post($post_id);
+
+               $classes = array();
+
+               $classes[] = $post->post_type;
+
+               // sticky for Sticky Posts
+               if ( is_sticky($post->ID) && is_home())
+                       $classes[] = 'sticky';
+
+               // hentry for hAtom compliace
+               $classes[] = 'hentry';
+
+               // Categories
+               foreach ( (array) get_the_category($post->ID) as $cat ) {
+                       if ( empty($cat->slug ) )
+                               continue;
+                       $classes[] = 'category-' . $cat->slug;
+               }
+
+               // Tags
+               foreach ( (array) get_the_tags($post->ID) as $tag ) {
+                       if ( empty($tag->slug ) )
+                               continue;
+                       $classes[] = 'tag-' . $tag->slug;
+               }
+
+               if ( !empty($class) ) {
+                       if ( !is_array( $class ) )
+                               $class = preg_split('#\s+#', $class);
+                       $classes = array_merge($classes, $class);
+               }
+
+               return apply_filters('post_class', $classes, $class, $post_id);
+       }
+}
+
+/**
+ * Display "sticky" CSS class, if a post is sticky.
+ *
+ * @param int $post_id An optional post ID.
+ */
+if (!function_exists('sticky_class')) {
+       function sticky_class( $post_id = null ) {
+               if ( !is_sticky($post_id) )
+                       return;
+
+               echo " sticky";
+       }
+}
+
+/**
+ * Generates semantic classes for each comment element
+ *
+ * @param string|array $class One or more classes to add to the class list
+ * @param int $comment_id An optional comment ID
+ * @param int $post_id An optional post ID
+ * @param bool $echo Whether comment_class should echo or return
+ */
+if (!function_exists('comment_class')) {
+       function comment_class( $class = '', $comment_id = null, $post_id = null, $echo = true ) {
+               // Separates classes with a single space, collates classes for comment DIV
+               $class = 'class="' . join( ' ', get_comment_class( $class, $comment_id, $post_id ) ) . '"';
+               if ( $echo)
+                       echo $class;
+               else
+                       return $class;
+       }
+}
+
+/**
+ * Returns the classes for the comment div as an array
+ *
+ * @param string|array $class One or more classes to add to the class list
+ * @param int $comment_id An optional comment ID
+ * @param int $post_id An optional post ID
+ * @return array Array of classes
+ */
+if (!function_exists('get_comment_class')) {
+       function get_comment_class( $class = '', $comment_id = null, $post_id = null ) {
+               global $comment_alt, $comment_depth, $comment_thread_alt;
+
+               $comment = get_comment($comment_id);
+
+               $classes = array();
+
+               // Get the comment type (comment, trackback),
+               $classes[] = ( empty( $comment->comment_type ) ) ? 'comment' : $comment->comment_type;
+
+               // If the comment author has an id (registered), then print the log in name
+               if ( $comment->user_id > 0 && $user = get_userdata($comment->user_id) ) {
+                       // For all registered users, 'byuser'
+                       $classes[] = 'byuser comment-author-' . $user->user_nicename;
+                       // For comment authors who are the author of the post
+                       if ( $post = get_post($post_id) ) {
+                               if ( $comment->user_id === $post->post_author )
+                                       $classes[] = 'bypostauthor';
+                       }
+               }
+
+               if ( empty($comment_alt) )
+                       $comment_alt = 0;
+               if ( empty($comment_depth) )
+                       $comment_depth = 1;
+               if ( empty($comment_thread_alt) )
+                       $comment_thread_alt = 0;
+
+               if ( $comment_alt % 2 ) {
+                       $classes[] = 'odd';
+                       $classes[] = 'alt';
+               } else {
+                       $classes[] = 'even';
+               }
+
+               $comment_alt++;
+
+               // Alt for top-level comments
+               if ( 1 == $comment_depth ) {
+                       if ( $comment_thread_alt % 2 ) {
+                               $classes[] = 'thread-odd';
+                               $classes[] = 'thread-alt';
+                       } else {
+                               $classes[] = 'thread-even';
+                       }
+                       $comment_thread_alt++;
+               }
+
+               $classes[] = "depth-$comment_depth";
+
+               if ( !empty($class) ) {
+                       if ( !is_array( $class ) )
+                               $class = preg_split('#\s+#', $class);
+                       $classes = array_merge($classes, $class);
+               }
+
+               return apply_filters('comment_class', $classes, $class, $comment_id, $post_id);
+       }
+}
+
+
+// For meeting wordpress.org requirements
+
+/*
+get_avatar();
+the_tags();
+register_sidebar('none');
+bloginfo('description');
+wp_head();
+wp_footer();
+*/
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/.svn/text-base/templates.php.svn-base b/theme-blog.xenproject.org/carrington-blog/.svn/text-base/templates.php.svn-base
new file mode 100644 (file)
index 0000000..1fb0139
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_page($file = '') {
+       if (empty($file)) {
+               $file = cfct_default_file('pages');
+       }
+       cfct_template_file('pages', $file);
+}
+
+function cfct_header() {
+       $file = cfct_choose_general_template('header');
+       cfct_template_file('header', $file);
+}
+
+function cfct_footer() {
+       $file = cfct_choose_general_template('footer');
+       cfct_template_file('footer', $file);
+}
+
+function cfct_sidebar() {
+       $file = cfct_choose_general_template('sidebar');
+       cfct_template_file('sidebar', $file);
+}
+
+function cfct_posts() {
+       $file = cfct_choose_general_template('posts');
+       cfct_template_file('posts', $file);
+}
+
+function cfct_single() {
+       $file = cfct_choose_general_template('single');
+       cfct_template_file('single', $file);
+}
+
+function cfct_attachment() {
+       $file = cfct_choose_general_template('attachment');
+       cfct_template_file('attachment', $file);
+}
+
+function cfct_loop() {
+       $file = cfct_choose_general_template('loop');
+       cfct_template_file('loop', $file);
+}
+
+function cfct_content() {
+       $file = cfct_choose_content_template();
+       cfct_template_file('content', $file);
+}
+
+function cfct_excerpt() {
+       $file = cfct_choose_content_template('excerpt');
+       cfct_template_file('excerpt', $file);
+}
+
+function cfct_comments() {
+       $file = cfct_choose_general_template('comments');
+       cfct_template_file('comments', $file);
+}
+
+function cfct_comment($data = null) {
+       $file = cfct_choose_comment_template();
+       cfct_template_file('comment', $file, $data);
+}
+
+function cfct_threaded_comment($comment, $args = array(), $depth) {
+       $GLOBALS['comment'] = $comment;
+       $data = array(
+               'args' => $args,
+               'depth' => $depth,
+       );
+       cfct_template_file('comments', 'threaded', $data);
+}
+
+function cfct_form($name = '') {
+       $parts = cfct_leading_dir($name);
+       cfct_template_file('forms/'.$parts['dir'], $parts['file']);
+}
+
+function cfct_misc($name = '') {
+       $parts = cfct_leading_dir($name);
+       cfct_template_file('misc/'.$parts['dir'], $parts['file']);
+}
+
+function cfct_error($name = '') {
+       cfct_template_file('error', $name);
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/.svn/text-base/utility.php.svn-base b/theme-blog.xenproject.org/carrington-blog/.svn/text-base/utility.php.svn-base
new file mode 100644 (file)
index 0000000..5482cf2
--- /dev/null
@@ -0,0 +1,821 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_die($str = '') {
+       if (!empty($str)) {
+               if (file_exists(CFCT_PATH.'error/exit.php')) {
+                       include(CFCT_PATH.'error/exit.php');
+                       die();
+               }
+               else {
+                       wp_die($str);
+               }
+       }
+}
+
+function cfct_banner($str = '') {
+       if (!empty($str)) {
+               if (file_exists(CFCT_PATH.'misc/banner.php')) {
+                       include(CFCT_PATH.'misc/banner.php');
+               }
+               else {
+                       echo '<p>'.$str.'</p>';
+               }
+       }
+}
+
+function cfct_get_option($name) {
+       $defaults = array(
+               'cfct_credit' => 'yes',
+               'cfct_lightbox' => 'yes',
+               'cfct_header_image' => 0,
+       );
+       $defaults = apply_filters('cfct_option_defaults', $defaults);
+       $value = get_option($name);
+       if ($value == '' && isset($defaults[$name])) {
+               $value = $defaults[$name];
+       }
+       return $value;
+}
+
+function cfct_load_plugins() {
+       $files = cfct_files(CFCT_PATH.'plugins');
+       if (count($files)) {
+               foreach ($files as $file) {
+                       if (file_exists(CFCT_PATH.'plugins/'.$file)) {
+                               include_once(CFCT_PATH.'plugins/'.$file);
+                       }
+// child theme support
+                       if (file_exists(STYLESHEETPATH.'/plugins/'.$file)) {
+                               include_once(STYLESHEETPATH.'/plugins/'.$file);
+                       }
+               }
+       }
+}
+
+function cfct_default_file($dir) {
+       $fancy = $dir.'-default.php';
+       file_exists(CFCT_PATH.$dir.'/'.$fancy) ? $default = $fancy : $default = 'default.php';
+       return $default;
+}
+
+function cfct_context() {
+       $context = 'home';
+       if (is_home()) {
+               $context = 'home';
+       }
+       else if (is_page()) {
+               $context = 'page';
+       }
+       else if (is_single()) {
+               $context = 'single';
+       }
+       else if (is_category()) {
+               $context = 'category';
+       }
+       else if (is_tag()) {
+               $context = 'tag';
+       }
+       else if (is_author()) {
+               $context = 'author';
+       }
+       else if (is_archive()) {
+// possible future abstraction for:
+//     is_month()
+//     is_year()
+//     is_day()
+               $context = 'archive';
+       }
+       else if (is_search()) {
+               $context = 'search';
+       }
+       else if (is_404()) {
+               $context = '404';
+       }
+       return apply_filters('cfct_context', $context);
+}
+
+/**
+ * @param $template = folder name of file
+ * @param $type = file name of file
+ * @param $keys = keys that could be used for additional filename params
+ * returns false if file does not exist
+ *
+ */
+function cfct_filename($dir, $type = 'default', $keys = array()) {
+       switch ($type) {
+               case 'author':
+                       if (count($keys)) {
+                               $file = 'author-'.$keys[0];
+                       }
+                       else {
+                               $file = 'author';
+                       }
+                       break;
+               case 'category':
+                       if (count($keys)) {
+                               $file = 'cat-'.$keys[0];
+                       }
+                       else {
+                               $file = 'category';
+                       }
+                       break;
+               case 'tag':
+                       if (count($keys)) {
+                               $file = 'tag-'.$keys[0];
+                       }
+                       else {
+                               $file = 'tag';
+                       }
+                       break;
+               case 'meta':
+                       if (count($keys)) {
+                               foreach ($keys as $k => $v) {
+                                       if (!empty($v)) {
+                                               $file = 'meta-'.$k.'-'.$v;
+                                       }
+                                       else {
+                                               $file = 'meta-'.$k;
+                                       }
+                                       break;
+                               }
+                       }
+                       break;
+               case 'user':
+                       if (count($keys)) {
+                               $file = 'user-'.$keys[0];
+                       }
+                       break;
+               case 'role':
+                       if (count($keys)) {
+                               $file = 'role-'.$keys[0];
+                       }
+                       break;
+               case 'parent':
+                       if (count($keys)) {
+                               $file = 'parent-'.$keys[0];
+                       }
+                       break;
+               default:
+               // handles page, etc.
+                       $file = $type;
+       }
+       // fallback for category, author, tag, etc.
+       // child theme path
+       $path = STYLESHEETPATH.'/'.$dir.'/'.$file.'.php';
+       // check for child theme first
+       if (!file_exists($path)) {
+               // use parent theme if no child theme file found
+               $path = CFCT_PATH.$dir.'/'.$file.'.php';
+       }
+       if (!file_exists($path)) {
+               switch ($type) {
+                       case 'author':
+                       case 'category':
+                       case 'tag':
+                               // child theme path
+                               $path = STYLESHEETPATH.'/'.$dir.'/archive.php';
+                               if (!file_exists($path)) {
+                                       // use parent theme if no child theme file found
+                                       $path = CFCT_PATH.$dir.'/archive.php';
+                               }
+               }
+       }
+       $default = CFCT_PATH.$dir.'/'.cfct_default_file($dir);
+       if (file_exists($path)) {
+               $path = $path;
+       }
+       else if (file_exists($default)) {
+               $path = $default;
+       }
+       else {
+               $path = false;
+       }
+       return apply_filters('cfct_filename', $path);
+}
+
+function cfct_template($dir, $keys = array()) {
+       $context = cfct_context();
+       $file = cfct_filename($dir, $context, $keys);
+       if ($file) {
+               include($file);
+       }
+       else {
+               cfct_die('Error loading '.$dir.' '.__LINE__);
+       }
+}
+
+function cfct_template_file($dir, $file, $data = null) {
+       $path = '';
+       if (!empty($file)) {
+               $file = basename($file, '.php');
+               // child theme support
+               $path = STYLESHEETPATH.'/'.$dir.'/'.$file.'.php';
+               if (!file_exists($path)) {
+                       $path = CFCT_PATH.$dir.'/'.$file.'.php';
+               }
+       }
+       if (file_exists($path)) {
+               include($path);
+       }
+       else {
+               cfct_die('Error loading '.$file.' '.__LINE__);
+       }
+}
+
+function cfct_choose_general_template($dir) {
+       $exec_order = array(
+               'author',
+               'role',
+               'category',
+               'tag',
+               'single',
+               'default'
+       );
+       $exec_order = apply_filters('cfct_general_match_order', $exec_order);
+       $files = cfct_files(CFCT_PATH.$dir);
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_general_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($dir, $files);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_general_template', $filename, $dir);
+}
+
+function cfct_choose_general_template_author($dir, $files) {
+       $files = cfct_author_templates($dir, $files);
+       if (count($files)) {
+               $username = get_query_var('author_name');
+               if (empty($username)) {
+                       $user = new WP_User(get_query_var('author'));
+                       $username = $user->user_login;
+               }
+               $filename = 'author-'.$username.'.php';
+               if (in_array($filename, $files)) {
+                       $keys = array($username);
+                       return cfct_filename($dir, 'author', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_category($dir, $files) {
+       $files = cfct_cat_templates($dir, $files);
+       if (count($files)) {
+               global $cat;
+               $slug = cfct_cat_id_to_slug($cat);
+               if (in_array('cat-'.$slug.'.php', $files)) {
+                       $keys = array($slug);
+                       return cfct_filename($dir, 'category', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_tag($dir, $files) {
+       $files = cfct_tag_templates($dir, $files);
+       if (count($files)) {
+               $tag = get_query_var('tag');
+               if (in_array('tag-'.$tag.'.php', $files)) {
+                       $keys = array($tag);
+                       return cfct_filename($dir, 'tag', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_role($dir, $files) {
+       $files = cfct_role_templates($dir, $files);
+       if (count($files)) {
+               $username = get_query_var('author_name');
+               $user = new WP_User(cfct_username_to_id($username));
+               if (!empty($user->user_login)) {
+                       if (count($user->roles)) {
+                               foreach ($user->roles as $role) {
+                                       $role_file = 'role-'.$role.'.php';
+                                       if (in_array($role_file, $files)) {
+                                               return $role_file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_single($dir, $files) {
+       if (cfct_context() == 'single') {
+               $files = cfct_single_templates($dir, $files);
+               if (count($files)) {
+// check to see if we're in the loop.
+                       global $post;
+                       $orig_post = $post;
+                       while (have_posts()) {
+                               the_post();
+                               $filename = cfct_choose_single_template($files, 'single-*');
+                               if (!$filename) {
+                                       if (file_exists(CFCT_PATH.$dir.'/single.php')) {
+                                               $filename = 'single.php';
+                                       }
+                               }
+                       }
+                       rewind_posts();
+                       $post = $orig_post;
+                       return $filename;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_default($dir, $files) {
+       $context = cfct_context();
+       return cfct_filename($dir, $context);
+}
+
+function cfct_choose_single_template($files = array(), $filter = '*') {
+// must be called within the_loop - cfct_choose_general_template_single() approximates a loop for this reason.
+       $exec_order = array(
+               'author',
+               'meta',
+               'category',
+               'type',
+               'role',
+               'tag',
+               'parent', // for pages
+       );
+       $exec_order = apply_filters('cfct_single_match_order', $exec_order);
+       $filename = false;
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_single_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($dir, $files, $filter);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_single_template', $filename);
+}
+
+function cfct_choose_single_template_type($dir, $files, $filter) {
+       $type_files = cfct_type_templates('', $files);
+       if (count($type_files)) {
+               global $post;
+               $file = cfct_filename_filter('type-'.$post->post_type.'.php', $filter);
+               if (in_array($file, $type_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_author($dir, $files, $filter) {
+       $author_files = cfct_author_templates('', $files);
+       if (count($author_files)) {
+               $author = get_the_author_login();
+               $file = cfct_filename_filter('author-'.$author.'.php', $filter);
+               if (in_array($file, $author_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_meta($dir, $files, $filter) {
+       global $post;
+       $meta_files = cfct_meta_templates('', $files);
+       if (count($meta_files)) {
+               $meta = get_post_custom($post->ID);
+               if (count($meta)) {
+// check key, value matches first
+                       foreach ($meta as $k => $v) {
+                               $val = $v[0];
+                               $file = cfct_filename_filter('meta-'.$k.'-'.$val.'.php', $filter);
+                               if (in_array($file, $meta_files)) {
+                                       return $file;
+                               }
+                       }
+// check key matches only
+                       if (!$filename) {
+                               foreach ($meta as $k => $v) {
+                                       $file = cfct_filename_filter('meta-'.$k.'.php', $filter);
+                                       if (in_array($file, $meta_files)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_category($dir, $files, $filter) {
+       $cat_files = cfct_cat_templates($type, $files);
+       if (count($cat_files)) {
+               foreach ($cat_files as $file) {
+                       $file = cfct_filename_filter($file, $filter);
+                       $cat_id = cfct_cat_filename_to_id($file);
+                       if (in_category($cat_id)) {
+                               return $file;
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_role($dir, $files, $filter) {
+       $role_files = cfct_role_templates($type, $files);
+       if (count($role_files)) {
+               $user = new WP_User(get_the_author_meta('ID'));
+               if (count($user->roles)) {
+                       foreach ($role_files as $file) {
+                               $file = cfct_filename_filter($file, $filter);
+                               foreach ($user->roles as $role) {
+                                       if (cfct_role_filename_to_name($file) == $role) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_tag($dir, $files, $filter) {
+       global $post;
+       $tag_files = cfct_tag_templates($type, $files);
+       if (count($tag_files)) {
+               $tags = get_the_tags($post->ID);
+               if (is_array($tags) && count($tags)) {
+                       foreach ($tag_files as $file) {
+                               $file = cfct_filename_filter($file, $filter);
+                               foreach ($tags as $tag) {
+                                       if ($tag->slug == cfct_tag_filename_to_name($file)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_parent($dir, $files, $filter) {
+       global $post;
+       $parent_files = cfct_parent_templates($type, $files);
+       if (count($parent_files) && $post->post_parent > 0) {
+               $parent = cfct_post_id_to_slug($post->post_parent);
+               $file = cfct_filename_filter('parent-'.$parent.'.php', $filter);
+               if (in_array($file, $parent_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_content_template($type = 'content') {
+       $files = cfct_files(CFCT_PATH.$type);
+       $filename = cfct_choose_single_template($files);
+       if (!$filename && cfct_context() == 'page' && file_exists(CFCT_PATH.$type.'/page.php')) {
+               $filename = 'page.php';
+       }
+       if (!$filename) {
+               $filename = cfct_default_file($type);
+       }
+       return apply_filters('cfct_choose_content_template', $filename, $type);
+}
+
+function cfct_choose_comment_template() {
+       $exec_order = array(
+               'ping',
+               'author',
+               'user',
+               'meta',
+               'role',
+               'default',
+       );
+       $exec_order = apply_filters('cfct_comment_match_order', $exec_order);
+       $files = cfct_files(CFCT_PATH.'comment');
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_comment_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($files);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_comment_template', $filename);
+}
+
+function cfct_choose_comment_template_ping($files) {
+       global $comment;
+       if (in_array('ping.php', $files)) {
+               switch ($comment->comment_type) {
+                       case 'pingback':
+                       case 'trackback':
+                               return 'ping';
+                               break;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_meta($files) {
+       global $comment;
+       $meta_files = cfct_meta_templates('', $files);
+       if (count($meta_files)) {
+               $meta = get_metadata('comment', $comment->comment_ID);
+               if (count($meta)) {
+// check key, value matches first
+                       foreach ($meta as $k => $v) {
+                               $val = $v[0];
+                               $file = 'meta-'.$k.'-'.$val.'.php';
+                               if (in_array($file, $meta_files)) {
+                                       return $file;
+                               }
+                       }
+// check key matches only
+                       if (!$filename) {
+                               foreach ($meta as $k => $v) {
+                                       $file = 'meta-'.$k.'.php';
+                                       if (in_array($file, $meta_files)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_author($files) {
+       global $post, $comment;
+       if (!empty($comment->user_id) && $comment->user_id == $post->post_author && in_array('author.php', $files)) {
+               return 'author';
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_user($files) {
+       global $comment;
+       $files = cfct_comment_templates('user', $files);
+       if (count($files) && !empty($comment->user_id)) {
+               $user = new WP_User($comment->user_id);
+               if (!empty($user->user_login)) {
+                       $user_file = 'user-'.$user->user_login.'.php';
+                       if (in_array($user_file, $files)) {
+                               return $user_file;
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_role($files) {
+       global $comment;
+       $files = cfct_comment_templates('role', $files);
+       if (count($files) && !empty($comment->user_id)) {
+               $user = new WP_User($comment->user_id);
+               if (!empty($user->user_login)) {
+                       if (count($user->roles)) {
+                               foreach ($user->roles as $role) {
+                                       $role_file = 'role-'.$role.'.php';
+                                       if (in_array($role_file, $files)) {
+                                               return $role_file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_default($files) {
+       return cfct_default_file('comment');
+}
+
+function cfct_filename_filter($filename, $filter) {
+       // check for filter already appended
+       if (substr($filename, 0, strlen($filter) - 1) == str_replace('*', '', $filter)) {
+               return $filename;
+       }
+       return str_replace('*', $filename, $filter);
+}
+
+function cfct_files($path) {
+       $files = apply_filters('cfct_files_'.$path, false);
+       if ($files) {
+               return $files;
+       }
+       $files = wp_cache_get('cfct_files_'.$path, 'cfct');
+       if ($files) {
+               return $files;
+       }
+       $files = array();
+       $paths = array($path);
+       if (STYLESHEETPATH.'/' != CFCT_PATH) {
+               // load child theme files
+               $paths[] = STYLESHEETPATH.'/'.str_replace(CFCT_PATH, '', $path);
+       }
+       foreach ($paths as $path) {
+               if (is_dir($path) && $handle = opendir($path)) {
+                       while (false !== ($file = readdir($handle))) {
+                               $path = trailingslashit($path);
+                               if (is_file($path.$file) && strtolower(substr($file, -4, 4)) == ".php") {
+                                       $files[] = $file;
+                               }
+                       }
+                       closedir($handle);
+               }
+       }
+       $files = array_unique($files);
+       wp_cache_set('cfct_files_'.$path, $files, 'cfct', 3600);
+       return $files;
+}
+
+function cfct_filter_files($files = array(), $prefix = '') {
+       $matches = array();
+       if (count($files)) {
+               foreach ($files as $file) {
+                       if (strpos($file, $prefix) !== false) {
+                               $matches[] = $file;
+                       }
+               }
+       }
+       return $matches;
+}
+
+function cfct_meta_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'meta-');
+       return apply_filters('cfct_meta_templates', $matches);
+}
+
+function cfct_cat_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'cat-');
+       return apply_filters('cfct_cat_templates', $matches);
+}
+
+function cfct_tag_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'tag-');
+       return apply_filters('cfct_tag_templates', $matches);
+}
+
+function cfct_author_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'author-');
+       return apply_filters('cfct_author_templates', $matches);
+}
+
+function cfct_type_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'type-');
+       return apply_filters('cfct_type_templates', $matches);
+}
+
+function cfct_role_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'role-');
+       return apply_filters('cfct_role_templates', $matches);
+}
+
+function cfct_parent_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'parent-');
+       return apply_filters('cfct_parent_templates', $matches);
+}
+
+function cfct_single_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'single');
+       return apply_filters('cfct_single_templates', $matches);
+}
+
+function cfct_comment_templates($type, $files = false) {
+       if (!$files) {
+               $files = cfct_files(CFCT_PATH.'comment');
+       }
+       $matches = array();
+       switch ($type) {
+               case 'user':
+                       $matches = cfct_filter_files($files, 'user-');
+                       break;
+               case 'role':
+                       $matches = cfct_filter_files($files, 'role-');
+                       break;
+       }
+       return apply_filters('cfct_comment_templates', $matches);
+}
+
+function cfct_cat_filename_to_id($file) {
+       $cat = cfct_cat_filename_to_slug($file);
+       $cat = get_category_by_slug($cat);
+       return $cat->cat_ID;
+}
+
+function cfct_cat_filename_to_name($file) {
+       $cat = cfct_cat_filename_to_slug($file);
+       $cat = get_category_by_slug($cat);
+       return $cat->name;
+}
+
+function cfct_cat_filename_to_slug($file) {
+       return str_replace(array('single-cat-', 'cat-', '.php'), '', $file);
+}
+
+function cfct_cat_id_to_slug($id) {
+       $cat = &get_category($id);
+       return $cat->slug;
+}
+
+function cfct_username_to_id($username) {
+       return get_profile('ID', $username);
+}
+
+function cfct_tag_filename_to_name($file) {
+       return str_replace(array('single-tag-', 'tag-', '.php'), '', $file);
+}
+
+function cfct_author_filename_to_name($file) {
+       return str_replace(array('single-author-', 'author-', '.php'), '', $file);
+}
+
+function cfct_role_filename_to_name($file) {
+       return str_replace(array('single-role-', 'role-', '.php'), '', $file);
+}
+
+function cfct_post_id_to_slug($id) {
+       $post = get_post($id);
+       return $post->post_name;
+}
+
+function cfct_basic_content_formatting($str) {
+       $str = wptexturize($str);
+       $str = convert_smilies($str);
+       $str = convert_chars($str);
+       $str = wpautop($str);
+       return $str;
+}
+
+function cfct_leading_dir($path) {
+       $val = array(
+               'dir' => '',
+               'file' => ''
+       );
+       if (strpos($path, '/') !== false) {
+               $parts = explode('/', $path);
+               $val['file'] = $parts[count($parts) - 1];
+               $val['dir'] = implode('/', array_slice($parts, 0, count($parts) - 1));
+       }
+       else {
+               $val['file'] = $path;
+       }
+       return $val;
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/404.php b/theme-blog.xenproject.org/carrington-blog/404.php
new file mode 100644 (file)
index 0000000..e4466bc
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// NOTE: this file is here for compatibility reasons - active templates are in the error/ dir 
+
+cfct_error('404');
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/CHANGELOG.txt b/theme-blog.xenproject.org/carrington-blog/CHANGELOG.txt
new file mode 100644 (file)
index 0000000..985d294
--- /dev/null
@@ -0,0 +1,73 @@
+# Carrington Core Framework Changelog
+
+## 3.0
+
+- Added support for custom post types (WordPress 3.0)
+- Support for child themes (including adding templates and plugins in child themes that do not exist in the parent theme)
+- Allow custom functions to be filtered into the Single and Comment template selection process (already supported in General context selection)
+- Make the posts_per_page setting work as intended (only on initial query)
+- Support for nesting templates inside sub-directories in misc/ and forms/
+- Removed use of deprecated function `get_the_author_ID`. Replaced with 2.8 `get_the_author_meta` (since 2.8.0). Users of versions of WordPress prior to 2.8.0 should be aware this change will cause problems for them.
+- Define required Carrington settings in a more forgiving way, making it easier to use just part of Carrington on a site when desired
+- Make gallery settings (implemented in CSS) specific to each gallery
+- home.php is now only used in is_home() situations, not is_front_page() (reverses feature requested and added in v. 2.5)
+- Compatibility code to make it easier to drop Carrington Core into an existing theme
+- Added changelog
+
+
+## 2.5
+
+- added CFCT_CORE_VERSION constant
+- added support for is_front_page() as 'home' in General context
+- added a filter in cfct_files() so that a plugin can declaritively set the files available for performance reasons (eliminates file system lookups)
+
+
+## 2.4
+
+- update included Thickbox script to support jQuery 1.2.6 (remove @ syntax for attributes)
+- allow filtered in functions to participate in template selection for General context
+
+
+## 2.3
+
+- updated copied Gallery functions
+- workaround for pages needing some vars set in global $wp_query
+- add is_sticky() function for compatibility
+- pass directory name along with filename to cfct_choose_general_template filter
+- pass type along with filename to cfct_choose_content_template filter
+- don't choose "page" content type unless there are no matches from cfct_choose_single_template()
+
+
+## 2.2.1
+
+- only output CSS for the admin on the Carrington settings page
+- fake "in_the_loop" for AJAX load of post content
+
+
+## 2.2
+
+- add a check for comment/ping.php before returning
+
+
+## 2.1
+
+- add a cfct_get_custom_colors() function to core
+
+
+## 2.0
+
+- add color picker
+- add gallery support
+- add hooks to admin forms
+- additional internationalization
+- add header image form
+- properly exclude private posts from AJX load
+- restructure code/files
+- add compatibility file
+- add threaded comment support
+- add single-* support to General context
+
+
+## 1.3
+
+- first tagged core version
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/README.txt b/theme-blog.xenproject.org/carrington-blog/README.txt
new file mode 100644 (file)
index 0000000..4b09ccd
--- /dev/null
@@ -0,0 +1,133 @@
+# Carrington CMS Theme Framework for WordPress
+http://carringtontheme.com
+
+by Crowd Favorite  
+http://crowdfavorite.com
+
+Released under the GPL license  
+http://www.opensource.org/licenses/gpl-license.php
+
+---
+
+## Online Developer Resources
+
+Please see the latest online developer resources for Carrington here:
+
+http://carringtontheme.com/developers/
+
+
+## What is Carrington?
+
+1. A collection of elegant, high-end WordPress themes for end-users.
+2. A designer and developer friendly CMS theme framework for WordPress.
+3. A set of best practices for theme organization.
+
+
+## Basic Framework Concept
+
+Carrington is a CMS theme framework that virtually eliminates the need for custom conditional code in themes. Instead, template naming conventions along with the Carrington engine replace the need for this conditional code.
+
+Theme functionality is broken up into thoughtfully crafted abstractions to enable customizations at different levels (the loop, the post/page content, comments, etc.) and the Carrington engine chooses which template to be used for each segment of the theme.
+
+The abstractions and supported template types are designed to easily handle most of the customization scenarios we commonly see without the need to write custom code to use them.
+
+
+## Context and Templates
+
+WordPress provides a number of functions to help you determine what type of view a theme is showing. These include:
+
+- `is_home()`
+- `is_single()`
+- `is_page()`
+- `is_archive()`
+- `in_category()`
+- etc.
+
+Carrington abstracts these to deduce a "context" that is used when selecting a template. There are three context types used by the Carrington framework:
+
+1. Comment (dirs: comment)
+2. Post (dirs: content, excerpt)
+3. General (dirs: attachment, comments, footer, header, loop, posts, sidebar, single)
+
+Each directory implements one of these contexts for selecting the appropriate template to use. Templates are used in page views based on how they match the given context(s) for the overall page and the specific pieces of content being displayed.
+
+Read about the options available in each directory in the README file for that directory.
+
+Note: "default.php" is a supported default file name for all directories, however we have found in real world usage that {dirname}-default.php is a preferable naming system. When you have a half-dozen "default.php" files open in your favorite text editor, telling them apart in the file list can be more difficult than it should be.
+
+
+## Theme Organization
+
+WordPress themes generally have a file structure similar to this:
+
+- 404.php
+- archive.php
+- archives.php
+- [...]
+- sidebar.php
+- single.php
+- style.css
+
+While this organization works well in many instances, it doesn't well support the concept of atomic elements that are combined to create a theme. For example, a representation of just a post's content, or just a comment, is not represented here.
+
+Carrington respects the supported WordPress file naming conventions (for example `get_header()` will still work), but eschews them in favor of an organizational structure that better suits the abstraction and customization commonly needed for a WordPress theme.
+
+Template files are layered into each other using the following basic approach:
+
+1. top level templates that include
+2. common elements like a header, footer and sidebar along with a
+3. loop that includes 
+4. atomic post/page content or excerpt templates and, where appropriate, a
+5. comments area template that includes 
+6. atomic template for comments and a 
+7. template for the comment form
+
+
+## Actions and Filters
+
+The Carrington core is a theme framework, not a parent/child theme system. It includes a core set of functions that enable the override template hierarchy. These functions include actions and filters where appropriate so that their functionality can be customized and overridden as needed. These actions and filters use the same hook and filter system used in the WordPress core.
+
+
+### Filters
+
+- `cfct_context` - allows you to apply filters to the return value of the `cfct_context()` function; the function that checks to see what posts file, loop file, etc. to show.
+- `cfct_filename` - filter the output of the `cfct_filename()` function.
+- `cfct_general_match_order` - set the order in which general templates are chosen (make it check for a cat-general template ahead of a cat-news template, etc.).
+- `cfct_choose_general_template` - filter the output of the `cfct_choose_general_template()` function (the selected general template).
+- `cfct_single_match_order` - set the order in which single and content templates are chosen (make it check for author templates ahead of meta template, etc.).
+- `cfct_choose_single_template` - filter the output of the `cfct_choose_single_template()` function (the selected single template).
+- `cfct_choose_content_template` - filter the output of the `cfct_choose_content_template()` function (the selected content template).
+- `cfct_comment_match_order` - set the order in which content templates are chosen (make it check for role templates ahead of user templates, etc.).
+- `cfct_choose_comment_template` - filter the output of the `cfct_choose_comment_template()` function (the selected comment template).
+- `cfct_meta_templates` - filter the return value of the `cfct_meta_templates()` function (change the list of files returned).
+- `cfct_cat_templates` - filter the return value of the `cfct_cat_templates()` function (change the list of files returned).
+- `cfct_tag_templates` - filter the return value of the `cfct_tag_templates()` function (change the list of files returned).
+- `cfct_author_templates` - filter the return value of the `cfct_author_templates()` function (change the list of files returned).
+- `cfct_role_templates` - filter the return value of the `cfct_role_templates()` function (change the list of files returned).
+- `cfct_parent_templates` - filter the return value of the `cfct_role_templates()` function (change the list of files returned).
+- `cfct_single_templates` - filter the return value of the `cfct_parent_templates()` function (change the list of files returned).
+- `cfct_comment_templates` - filter the return value of the `cfct_single_templates()` function (change the list of files returned).
+`cfct_post_gallery_columns` - set the number of columns to show in the gallery.
+`gallery_style` - retained from the WP function code copied in and altered for gallery display.
+`cfct_option_defaults` - allows you to set defaults (alter/add/etc.) for Carrington options.
+`cfct_files_{path}` - allows you to define the available files for a path.
+
+
+### Actions
+
+- `cfct_settings_form` - allows you to add your own fields to the Carrington Settings form (left for compatibility` - recommend using _top and _bottom as needed instead of this).
+- `cfct_settings_form_top` - allows you to add your own fields at the top of the Carrington Settings form.
+- `cfct_settings_form_bottom` - allows you to add your own fields at the bottom of the Carrington Settings form.
+- `cfct_settings_form_after` - allows you to add your content after the Carrington Settings form. Useful if you want to add a second form to the page, or some other content.
+- `cfct_update_settings` - allows you to take action when the Carrington settings are being saved (perhaps to also save fields you've added in the `cfct_settings_form` action).
+
+
+## Plugins
+
+Any .php files in the *plugins/* directory will be automatically loaded by Carrington. This is a great way to bundle in custom functions or to hook into Carrington's actions or filters and be able to distribute everything as a single theme package.
+
+---
+
+## Tips
+
+There is very minor extra processing associated with the file system and context checks that Carrington requires. This overhead is virtually unnoticeable, however the use of a caching plugin is recommended as a general best practice.
diff --git a/theme-blog.xenproject.org/carrington-blog/admin.php b/theme-blog.xenproject.org/carrington-blog/admin.php
new file mode 100644 (file)
index 0000000..0920fbf
--- /dev/null
@@ -0,0 +1,330 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// - add admin page for config settings
+
+function cfct_admin_menu() {
+       if (!current_user_can('manage_options')) {
+               return;
+       }
+       add_submenu_page(
+               'themes.php'
+               , __('Carrington Settings', 'carrington')
+               , __('Carrington', 'carrington')
+               , 0
+               , 'carrington-settings'
+               , 'cfct_settings_form'
+       );
+}
+add_action('admin_menu', 'cfct_admin_menu');
+
+function cfct_admin_request_handler() {
+       if (isset($_POST['cf_action'])) {
+               switch ($_POST['cf_action']) {
+                       case 'cfct_update_settings':
+                               call_user_func($_POST['cf_action']);
+                               wp_redirect(trailingslashit(get_bloginfo('wpurl')).'wp-admin/themes.php?page=carrington-settings&updated=true');
+               }
+       }
+}
+
+function cfct_update_settings() {
+       if (!current_user_can('manage_options')) {
+               return;
+       }
+       global $cfct_options;
+       foreach ($cfct_options as $option) {
+               if (isset($_POST[$option])) {
+                       update_option($option, stripslashes($_POST[$option]));
+               }
+       }
+       do_action('cfct_update_settings');
+}
+
+function cfct_settings_form() {
+       if (isset($_GET['updated'])) {
+               print('
+<div id="message" class="updated fade">
+       <p>'.__('Settings updated.', 'carrington').'</p>
+</div>
+               ');
+       }
+       print('
+<div class="wrap">
+       <h2>'.__('Carrington Settings', 'carrington').'</h2>
+       <form action="options.php" method="post">
+       ');
+       do_action('cfct_settings_form_top');
+       print('
+               <table class="form-table">
+                       <tbody>'
+//                     .cfct_options_home_column('1')
+//                     .cfct_options_home_column('2')
+//                     .cfct_options_home_column('3')
+                       .cfct_options_misc()
+                       .'</tbody>
+               </table>
+       ');
+       do_action('cfct_settings_form_bottom');
+       do_action('cfct_settings_form');
+       print('
+               <p class="submit" style="padding-left: 230px;">
+                       <input type="hidden" name="cf_action" value="cfct_update_settings" />
+                       <input type="submit" name="submit_button" class="button-primary" value="'.__('Save Changes', 'carrington').'" />
+               </p>
+       </form>
+</div>
+       ');
+       do_action('cfct_settings_form_after');
+}
+
+function cfct_options_home_column($key) {
+       $categories = get_categories('hide_empty=0');
+       $cat_options = '';
+       foreach ($categories as $category) {
+               if ($category->term_id == get_option('cfct_home_col_'.$key.'_cat')) {
+                       $selected = 'selected="selected"';
+               }
+               else {
+                       $selected = '';
+               }
+               $cat_options .= "\n\t<option value='$category->term_id' $selected>$category->name</option>";
+       }
+       $show_options = '';
+       $show_option = cfct_get_option('cfct_home_column_'.$key.'_content');
+       if ($show_option == 'latest') {
+               $latest_selected = 'selected="selected"';
+               $list_selected = '';
+       }
+       else {
+               $latest_selected = '';
+               $list_selected = 'selected="selected"';
+       }
+       $html = '
+                               <tr valign="top">
+                                       <th scope="row">'.sprintf(__('Home Column %s', 'carrington'), $key).'</td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_home_column_'.$key.'_cat">'.__('Category:', 'carrington').'</label>
+                                                               <select name="cfct_home_column_'.$key.'_cat" id="cfct_home_column_'.$key.'_cat">'.$cat_options.'</select>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_home_column_'.$key.'_content">'.__('Show:', 'carrington').'</label>
+                                                               <select name="cfct_home_column_'.$key.'_content" id="cfct_home_column_'.$key.'_content" class="home_column_select">
+                                                                       <option value="latest" '.$latest_selected.'>'.__('Latest Post Preview', 'carrington').'</option>
+                                                                       <option value="list" '.$list_selected.'>'.__('List of Recent Post Titles', 'carrington').'</option>
+                                                               </select>
+                                                       </p>
+                                                       <p id="cfct_latest_limit_'.$key.'_option" class="hidden">
+                                                               <label for="cfct_latest_limit_'.$key.'">'.__('Length of preview, in characters (250 recommended):', 'carrington').'</label>
+                                                               <input type="text" name="cfct_latest_limit_'.$key.'" id="cfct_latest_limit_'.$key.'" value="'.cfct_get_option('cfct_latest_limit_'.$key).'" />
+                                                       </p>
+                                                       <p id="cfct_list_limit_'.$key.'_option" class="hidden">
+                                                               <label for="cfct_list_limit_'.$key.'">'.__('Number of titles to show in list (5 recommended):', 'carrington').'</label>
+                                                               <input type="text" name="cfct_list_limit_'.$key.'" id="cfct_list_limit_'.$key.'" value="'.cfct_get_option('cfct_list_limit_'.$key).'" />
+                                                       </p>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+       ';
+       return $html;
+}
+
+function cfct_options_misc() {
+       $options = array(
+               'yes' => __('Yes', 'carrington'),
+               'no' => __('No', 'carrington')
+       );
+       $credit_options = '';
+       foreach ($options as $k => $v) {
+               if ($k == get_option('cfct_credit')) {
+                       $credit_selected = 'selected="selected"';
+               }
+               else {
+                       $credit_selected = '';
+               }
+               $credit_options .= "\n\t<option value='$k' $credit_selected>$v</option>";
+       }
+       $html = '
+                               <tr valign="top">
+                                       <th scope="row">'.sprintf(__('Misc.', 'carrington'), $key).'</td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_about_text">'.__('About text (shown in sidebar):', 'carrington').'</label>
+                                                               <br />
+                                                               <textarea name="cfct_about_text" id="cfct_about_text" cols="40" rows="8">'.htmlspecialchars(get_option('cfct_about_text')).'</textarea>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_wp_footer">'.__('Footer code (for analytics, etc.):', 'carrington').'</label>
+                                                               <br />
+                                                               <textarea name="cfct_wp_footer" id="cfct_wp_footer" cols="40" rows="5">'.htmlspecialchars(get_option('cfct_wp_footer')).'</textarea>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_credit">'.__('Give <a href="http://crowdfavorite.com">Crowd Favorite</a> credit in footer:', 'carrington').'</label>
+                                                               <select name="cfct_credit" id="cfct_credit">'.$credit_options.'</select>
+                                                       </p>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+       ';
+       return $html;
+}
+
+function cfct_header_image_form() {
+       global $wpdb;
+
+       $images = $wpdb->get_results("
+               SELECT * FROM $wpdb->posts 
+               WHERE post_type = 'attachment' 
+               AND post_mime_type LIKE 'image%' 
+               AND post_parent = 0
+               ORDER BY post_date_gmt DESC
+               LIMIT 50
+       ");
+       $upload_url = trailingslashit(get_bloginfo('wpurl')).'wp-admin/media-new.php';
+       $checked_attr = ' checked="checked"';
+       $output = '
+<ul style="width: '.((count($images) + 1) * 152).'px">
+       <li style="background: #666;">
+               <label for="cfct_header_image_0">
+                       <input type="radio" name="cfct_header_image" value="0" id="cfct_header_image_0" '.$default_checked.'/>'.__('No Image', 'carrington-core').'
+               </label>
+       </li>
+       ';
+       if (count($images)) {
+               $header_image = get_option('cfct_header_image');
+               if (empty($header_image)) {
+                       $header_image = 0;
+                       $default_checked = $checked_attr;
+               }
+               else {
+                       $default_checked = '';
+               }
+               foreach ($images as $image) {
+                       $id = 'cfct_header_image_'.$image->ID;
+                       $thumbnail = wp_get_attachment_image_src($image->ID);
+                       $header_image == $image->ID ? $checked = $checked_attr : $checked = '';
+                       $output .= '
+       <li style="background-image: url('.$thumbnail[0].')">
+               <label for="'.$id.'">
+                       <input type="radio" name="cfct_header_image" value="'.$image->ID.'" id="'.$id.'"'.$checked.' />'.wp_specialchars($image->post_title).'
+               </label>
+       </li>';
+               }
+       }
+       $output .= '</ul>';
+       return '<p>'.sprintf(__('Header Image &mdash; <a href="%s">Upload Images</a>', 'carrington-core'), $upload_url).'</p><div class="cfct_header_image_carousel">'.$output.'</div>';
+}
+
+if (is_admin()) {
+       wp_enqueue_script('jquery-colorpicker', get_bloginfo('template_directory').'/carrington-core/js/colorpicker.js', array('jquery'), '1.0');
+// removing until we drop 2.5 compatibility
+//     wp_enqueue_style('jquery-colorpicker', get_bloginfo('template_directory').'/carrington-core/css/colorpicker.css');
+}
+
+function cfct_admin_head() {
+// see enqueued style above, we'll activate that in the future
+       if ($_GET['page'] == 'carrington-settings') {
+               echo '
+<link rel="stylesheet" type="text/css" media="screen" href="'.get_bloginfo('template_directory').'/carrington-core/css/colorpicker.css" />
+               ';
+               cfct_admin_css();
+       }
+//     cfct_admin_js();
+}
+add_action('admin_head', 'cfct_admin_head');
+
+function cfct_admin_css() {
+?>
+<style type="text/css">
+div.cfct_header_image_carousel {
+       height: 170px;
+       overflow: auto;
+       width: 600px;
+}
+div.cfct_header_image_carousel ul {
+       height: 150px;
+}
+div.cfct_header_image_carousel li {
+       background: #fff url() center center no-repeat;
+       float: left;
+       height: 150px;
+       margin-right: 2px;
+       overflow: hidden;
+       position: relative;
+       width: 150px;
+}
+div.cfct_header_image_carousel li label {
+       background: #000;
+       color: #fff;
+       display: block;
+       height: 50px;
+       line-height: 25px;
+       overflow: hidden;
+       position: absolute;
+       top: 110px;
+       width: 150px;
+       filter:alpha(opacity=75);
+       -moz-opacity:.75;
+       opacity:.75;
+}
+div.cfct_header_image_carousel li label input {
+       margin: 0 5px;
+}
+</style>
+<?php
+}
+
+function cfct_admin_js() {
+?>
+<script type="text/javascript">
+jQuery(function() {
+       jQuery('select.home_column_select').each(function() {
+               cfct_home_columns(jQuery(this), false);
+       }).change(function() {
+               cfct_home_columns(jQuery(this), true);
+       });
+});
+
+function cfct_home_columns(elem, slide) {
+       var id = elem.attr('id').replace('cfct_home_column_', '').replace('_content', '');
+       var val = elem.val();
+       var option_show = '#cfct_latest_limit_' + id + '_option';
+       var option_hide = '#cfct_list_limit_' + id + '_option';
+       if (val == 'list') {
+               option_show = '#cfct_list_limit_' + id + '_option';
+               option_hide = '#cfct_latest_limit_' + id + '_option';
+       }
+       if (slide) {
+               jQuery(option_hide).slideUp(function() {
+                       jQuery(option_show).slideDown();
+               });
+       }
+       else {
+               jQuery(option_show).show();
+               jQuery(option_hide).hide();
+       }
+}
+</script>
+<?php
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/ajax-load.php b/theme-blog.xenproject.org/carrington-blog/ajax-load.php
new file mode 100644 (file)
index 0000000..74ab5ac
--- /dev/null
@@ -0,0 +1,115 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_ajax_post_content($post_id) {
+       global $post, $posts, $wp_query, $wp;
+       $posts = get_posts('include='.$post_id);
+       $post = $posts[0];
+       if (is_null($post)) {
+               $posts = get_pages('include='.$post_id);
+               $post = $posts[0];
+       }
+       if (is_null($post)) {
+               $posts = get_posts('post_status=private&include='.$post_id);
+               $post = $posts[0];
+               if ($post) {
+                       $user = wp_get_current_user();
+                       if (!$user->ID || $user->ID != $post->post_author) {
+                               $post = null;
+                       }
+               }
+       }
+       if (!$post) {
+               die('');
+       }
+       $wp_query->in_the_loop = true;
+       setup_postdata($post);
+       remove_filter('the_content', 'st_add_widget');
+       $wp->send_headers();
+       cfct_content();
+       echo '<div class="close" id="post_close_'.$post_id.'"><a href="#">'.__('Close', 'carrington').'</a></div>';
+}
+
+function cfct_ajax_post_comments($post_id) {
+       global $post, $posts, $wp_query, $wp;
+       $wp_query->is_single = true;
+       $posts = get_posts('include='.$post_id);
+       $post = $posts[0];
+       if (is_null($post)) {
+               $posts = get_pages('include='.$post_id);
+               $post = $posts[0];
+       }
+       setup_postdata($post);
+       $wp->send_headers();
+       comments_template();
+}
+
+function cfct_ajax_load() {
+       if (isset($_GET['cfct_action'])) {
+               switch ($_GET['cfct_action']) {
+                       case 'post_content':
+                       case 'post_comments':
+                               if (isset($_GET['id'])) {
+                                       $post_id = intval($_GET['id']);
+                               }
+                               else if (isset($_GET['url'])) {
+                                       $post_id = url_to_post_id($_GET['url']);
+                               }
+                               if ($post_id) {
+                                       call_user_func('cfct_ajax_'.$_GET['cfct_action'], $post_id);
+                                       die();
+                               }
+               }
+       }
+}
+
+function cfct_ajax_comment_link() {
+       global $post;
+       echo ' rev="post-'.$post->ID.'" ';
+}
+add_filter('comments_popup_link_attributes', 'cfct_ajax_comment_link');
+
+function cfct_posts_per_archive_page_setting() {
+       $count = get_option('cfct_posts_per_archive_page');
+       intval($count) > 0 ? $count = $count : $count = 25;
+       return $count;
+}
+
+// add a self-removing filter to handle category pages
+function cfct_add_posts_per_archive_page() {
+       add_filter('pre_get_posts', 'cfct_posts_per_archive_page');
+       add_filter('pre_get_posts', 'cfct_posts_per_category_page');
+}
+add_filter('parse_request', 'cfct_add_posts_per_archive_page');
+
+function cfct_posts_per_archive_page($query) {
+       remove_filter('pre_get_posts', 'cfct_posts_per_archive_page');
+       $query->set('posts_per_archive_page', cfct_posts_per_archive_page_setting());
+       return $query;
+}
+
+function cfct_posts_per_category_page($query) {
+       remove_filter('pre_get_posts', 'cfct_posts_per_category_page');
+       if (is_category()) {
+               $query->set('posts_per_page', cfct_posts_per_archive_page_setting());
+       }
+       return $query;
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/archive.php b/theme-blog.xenproject.org/carrington-blog/archive.php
new file mode 100644 (file)
index 0000000..9a96363
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// NOTE: this file is here for compatibility reasons - active templates are in the posts/ dir 
+
+cfct_posts();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/attachment.php b/theme-blog.xenproject.org/carrington-blog/attachment.php
new file mode 100644 (file)
index 0000000..d6aa244
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+// NOTE: this file is here for compatibility reasons - active templates are in the attachment/ dir 
+
+cfct_attachment();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/attachment/README.txt b/theme-blog.xenproject.org/carrington-blog/attachment/README.txt
new file mode 100644 (file)
index 0000000..588aeec
--- /dev/null
@@ -0,0 +1,42 @@
+## image/
+
+This directory holds templates for images/attachments.
+
+
+## General Context
+
+When choosing a template to use in the General Context, the Carrington engine looks at the type of request is being fulfilled. It will identify the request as the home page, a category archive, and individual post, etc.
+
+There is additional checking done for single post requests. All options in the Content Context are supported here with a 'single-' prefix added to the file. See specifics below.
+
+A "default" template is required, and will be used when there are no other templates that match a given comment. This could be because no other templates have been created, or because the comment in question doesn't match the templates that are available.
+
+By default, conditions are checked in this order:
+
+1. author
+2. role
+3. category
+4. tag
+5. single
+6. default (home, search, archive, 404, etc.)
+
+This can be altered using the `cfct_general_match_order` hook.
+
+
+### Supported Templates (General Context)
+
+- *{dirname}-default.php* (or default.php) - Used when there are no other templates that match for a given page/post.
+- *archive.php* - Used for date archives or if there are no specific category, author or tag templates.
+- *author.php* - Used for author archive lists.
+- *author-{username}.php* - Used when the post/page is authored by a specific user. For example, a template with a file name of _author-jsmith.php_ would be used for a post/page by user _jsmith_. Any WordPress username can take the place of {username} in the file name.
+- *role-{rolename}.php - Used when the post author has a particular role. This might be the role of _contributor_, _author_, _editor_, etc. and use a file of _role-contributor.php_, _role_author.php_, etc. where the role name takes the place of the {rolename} in the file name.
+- *category.php* - Used for category archive lists.
+- *cat-{slug}.php* - Used fr displaying a given category. The category is matched by the "slug" - for example a post in category "General" (with a category slug of "general") could use a template of _cat-general.php_.
+- *home.php* - Used when on the home page.
+- *page.php* - Used for pages that do not match any other contextual templates.
+- *search.php* - Used when displaying search results.
+- *single.php* - Used for single post pages.
+- *single-{content context filenames}.php* - Used for single post pages.
+- *tag.php* - Used for tag archive lists.
+- *tag-{slug}.php* - Used for displaying a given tag. The tag is matched by the "slug" - for example a post in tag "News" (with a tag slug of "news") could use a template of _tag-news.php_.
+
diff --git a/theme-blog.xenproject.org/carrington-blog/attachment/attachment-default.php b/theme-blog.xenproject.org/carrington-blog/attachment/attachment-default.php
new file mode 100644 (file)
index 0000000..1ec4efe
--- /dev/null
@@ -0,0 +1,94 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+$use_background_img = cfct_get_option('cfct_css_background_images');
+$use_background_img == 'no' ? $css_ext = '?type=attachment-noimg' : $css_ext = '?type=attachment';
+
+global $post;
+
+?>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
+<head profile="http://gmpg.org/xfn/11">
+       <title><?php wp_title( '-', true, 'right' ); echo wp_specialchars( get_bloginfo('name'), 1 ); ?></title>
+       <meta http-equiv="content-type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
+       
+       <link href="<?php bloginfo('url') ?>" rel="home" />
+       
+       <link rel="alternate" type="application/rss+xml" href="<?php bloginfo('rss2_url') ?>" title="<?php printf( __( '%s latest posts', 'carrington' ), wp_specialchars( get_bloginfo('name'), 1 ) ) ?>" />
+       <link rel="alternate" type="application/rss+xml" href="<?php bloginfo('comments_rss2_url') ?>" title="<?php printf( __( '%s latest comments', 'carrington' ), wp_specialchars( get_bloginfo('name'), 1 ) ) ?>" />
+       <link rel="pingback" href="<?php bloginfo('pingback_url') ?>" />
+       <?php wp_get_archives('type=monthly&format=link'); ?>
+
+       <link rel="stylesheet" type="text/css" media="screen" href="<?php bloginfo('template_url') ?>/css/css.php<?php echo $css_ext; ?>" />
+       
+       <?php if ($use_background_img == 'yes'): ?>
+       <!--[if lte IE 6]>
+               <script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/DD_belatedPNG.js"></script>
+               <script type="text/javascript">
+                       DD_belatedPNG.fix('img, #header, #header .wrapper, .figure-info, .previous-attachment, .next-attachment');
+               </script>
+       <![endif]-->
+       <?php endif; ?>
+
+       <?php wp_head(); ?>
+</head>
+
+<body id="attachment">
+
+<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
+
+<div id="header">
+       <a class="wrapper" href="<?php echo get_permalink($post->post_parent); ?>" rev="up post">&larr; <?php printf(__('back to &#8220;%s&#8221;', 'carrington-blog'), get_the_title($post->post_parent)); ?></a>
+</div>
+
+<div id="attachment-content" class="figure">
+       <div class="entry-attachment">
+               <a title="<?php _e('Link to original file','carrington-blog'); ?>" href="<?php echo wp_get_attachment_url($post->ID); ?>"><?php echo wp_get_attachment_image( $post->ID, 'large' ); ?></a>
+       </div>
+       <div class="figure-info">
+               <div class="caption">
+                       <h1 class="title"><?php the_title(); ?></h1>
+                       <?php if ( !empty($post->post_excerpt) ) the_excerpt(); // this is the "caption" ?>
+               </div>
+               <div class="description">
+                       <?php the_content() ?>
+               </div>
+       </div>
+
+<?php
+       if(cfct_get_adjacent_image_link(false) != '') {
+               echo '<div class="next-attachment"><span>',next_image_link(),'</span></div>';
+       }
+       if(cfct_get_adjacent_image_link(true) != '') {
+               echo '<div class="previous-attachment"><span>',previous_image_link(),'</span></div>';
+       }
+       
+?>
+</div>
+
+<?php endwhile; else:
+       cfct_template_file('misc','no-results.php');
+endif; ?>
+
+<?php wp_footer() ?>
+</body>
+</html>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/README.txt b/theme-blog.xenproject.org/carrington-blog/carrington-core/README.txt
new file mode 100644 (file)
index 0000000..7ada478
--- /dev/null
@@ -0,0 +1,15 @@
+## carrington-core/
+
+### Overview
+
+This directory contains Carrington's custom features and functionality.
+
+
+### Supported Override Filenames
+
+- (none)
+
+
+### File Descriptions
+
+You do not need to do anything with files in this folder; they should remain as-is.
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/admin.php b/theme-blog.xenproject.org/carrington-blog/carrington-core/admin.php
new file mode 100644 (file)
index 0000000..e3fbac8
--- /dev/null
@@ -0,0 +1,330 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// - add admin page for config settings
+
+function cfct_admin_menu() {
+       if (!current_user_can('manage_options')) {
+               return;
+       }
+       add_submenu_page(
+               'themes.php'
+               , __('Carrington Settings', 'carrington')
+               , __('Carrington', 'carrington')
+               , 0
+               , 'carrington-settings'
+               , 'cfct_settings_form'
+       );
+}
+add_action('admin_menu', 'cfct_admin_menu');
+
+function cfct_admin_request_handler() {
+       if (isset($_POST['cf_action'])) {
+               switch ($_POST['cf_action']) {
+                       case 'cfct_update_settings':
+                               call_user_func($_POST['cf_action']);
+                               wp_redirect(trailingslashit(get_bloginfo('wpurl')).'wp-admin/themes.php?page=carrington-settings&updated=true');
+               }
+       }
+}
+
+function cfct_update_settings() {
+       if (!current_user_can('manage_options')) {
+               return;
+       }
+       global $cfct_options;
+       foreach ($cfct_options as $option) {
+               if (isset($_POST[$option])) {
+                       update_option($option, stripslashes($_POST[$option]));
+               }
+       }
+       do_action('cfct_update_settings');
+}
+
+function cfct_settings_form() {
+       if (isset($_GET['updated'])) {
+               print('
+<div id="message" class="updated fade">
+       <p>'.__('Settings updated.', 'carrington').'</p>
+</div>
+               ');
+       }
+       print('
+<div class="wrap">
+       <h2>'.__('Carrington Settings', 'carrington').'</h2>
+       <form action="options.php" method="post">
+       ');
+       do_action('cfct_settings_form_top');
+       print('
+               <table class="form-table">
+                       <tbody>'
+//                     .cfct_options_home_column('1')
+//                     .cfct_options_home_column('2')
+//                     .cfct_options_home_column('3')
+                       .cfct_options_misc()
+                       .'</tbody>
+               </table>
+       ');
+       do_action('cfct_settings_form_bottom');
+       do_action('cfct_settings_form');
+       print('
+               <p class="submit" style="padding-left: 230px;">
+                       <input type="hidden" name="cf_action" value="cfct_update_settings" />
+                       <input type="submit" name="submit_button" class="button-primary" value="'.__('Save Changes', 'carrington').'" />
+               </p>
+       </form>
+</div>
+       ');
+       do_action('cfct_settings_form_after');
+}
+
+function cfct_options_home_column($key) {
+       $categories = get_categories('hide_empty=0');
+       $cat_options = '';
+       foreach ($categories as $category) {
+               if ($category->term_id == get_option('cfct_home_col_'.$key.'_cat')) {
+                       $selected = 'selected="selected"';
+               }
+               else {
+                       $selected = '';
+               }
+               $cat_options .= "\n\t<option value='$category->term_id' $selected>$category->name</option>";
+       }
+       $show_options = '';
+       $show_option = cfct_get_option('cfct_home_column_'.$key.'_content');
+       if ($show_option == 'latest') {
+               $latest_selected = 'selected="selected"';
+               $list_selected = '';
+       }
+       else {
+               $latest_selected = '';
+               $list_selected = 'selected="selected"';
+       }
+       $html = '
+                               <tr valign="top">
+                                       <th scope="row">'.sprintf(__('Home Column %s', 'carrington'), $key).'</td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_home_column_'.$key.'_cat">'.__('Category:', 'carrington').'</label>
+                                                               <select name="cfct_home_column_'.$key.'_cat" id="cfct_home_column_'.$key.'_cat">'.$cat_options.'</select>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_home_column_'.$key.'_content">'.__('Show:', 'carrington').'</label>
+                                                               <select name="cfct_home_column_'.$key.'_content" id="cfct_home_column_'.$key.'_content" class="home_column_select">
+                                                                       <option value="latest" '.$latest_selected.'>'.__('Latest Post Preview', 'carrington').'</option>
+                                                                       <option value="list" '.$list_selected.'>'.__('List of Recent Post Titles', 'carrington').'</option>
+                                                               </select>
+                                                       </p>
+                                                       <p id="cfct_latest_limit_'.$key.'_option" class="hidden">
+                                                               <label for="cfct_latest_limit_'.$key.'">'.__('Length of preview, in characters (250 recommended):', 'carrington').'</label>
+                                                               <input type="text" name="cfct_latest_limit_'.$key.'" id="cfct_latest_limit_'.$key.'" value="'.cfct_get_option('cfct_latest_limit_'.$key).'" />
+                                                       </p>
+                                                       <p id="cfct_list_limit_'.$key.'_option" class="hidden">
+                                                               <label for="cfct_list_limit_'.$key.'">'.__('Number of titles to show in list (5 recommended):', 'carrington').'</label>
+                                                               <input type="text" name="cfct_list_limit_'.$key.'" id="cfct_list_limit_'.$key.'" value="'.cfct_get_option('cfct_list_limit_'.$key).'" />
+                                                       </p>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+       ';
+       return $html;
+}
+
+function cfct_options_misc() {
+       $options = array(
+               'yes' => __('Yes', 'carrington'),
+               'no' => __('No', 'carrington')
+       );
+       $credit_options = '';
+       foreach ($options as $k => $v) {
+               if ($k == get_option('cfct_credit')) {
+                       $credit_selected = 'selected="selected"';
+               }
+               else {
+                       $credit_selected = '';
+               }
+               $credit_options .= "\n\t<option value='$k' $credit_selected>$v</option>";
+       }
+       $html = '
+                               <tr valign="top">
+                                       <th scope="row">'.sprintf(__('Misc.', 'carrington'), $key).'</td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_about_text">'.__('About text (shown in sidebar):', 'carrington').'</label>
+                                                               <br />
+                                                               <textarea name="cfct_about_text" id="cfct_about_text" cols="40" rows="8">'.htmlspecialchars(get_option('cfct_about_text')).'</textarea>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_wp_footer">'.__('Footer code (for analytics, etc.):', 'carrington').'</label>
+                                                               <br />
+                                                               <textarea name="cfct_wp_footer" id="cfct_wp_footer" cols="40" rows="5">'.htmlspecialchars(get_option('cfct_wp_footer')).'</textarea>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_credit">'.__('Give <a href="http://crowdfavorite.com">Crowd Favorite</a> credit in footer:', 'carrington').'</label>
+                                                               <select name="cfct_credit" id="cfct_credit">'.$credit_options.'</select>
+                                                       </p>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+       ';
+       return $html;
+}
+
+function cfct_header_image_form() {
+       global $wpdb;
+
+       $images = $wpdb->get_results("
+               SELECT * FROM $wpdb->posts 
+               WHERE post_type = 'attachment' 
+               AND post_mime_type LIKE 'image%' 
+               AND post_parent = 0
+               ORDER BY post_date_gmt DESC
+               LIMIT 50
+       ");
+       $upload_url = trailingslashit(get_bloginfo('wpurl')).'wp-admin/media-new.php';
+       $checked_attr = ' checked="checked"';
+       $output = '
+<ul style="width: '.((count($images) + 1) * 152).'px">
+       <li style="background: #666;">
+               <label for="cfct_header_image_0">
+                       <input type="radio" name="cfct_header_image" value="0" id="cfct_header_image_0" '.$default_checked.'/>'.__('No Image', 'carrington-core').'
+               </label>
+       </li>
+       ';
+       if (count($images)) {
+               $header_image = get_option('cfct_header_image');
+               if (empty($header_image)) {
+                       $header_image = 0;
+                       $default_checked = $checked_attr;
+               }
+               else {
+                       $default_checked = '';
+               }
+               foreach ($images as $image) {
+                       $id = 'cfct_header_image_'.$image->ID;
+                       $thumbnail = wp_get_attachment_image_src($image->ID);
+                       $header_image == $image->ID ? $checked = $checked_attr : $checked = '';
+                       $output .= '
+       <li style="background-image: url('.$thumbnail[0].')">
+               <label for="'.$id.'">
+                       <input type="radio" name="cfct_header_image" value="'.$image->ID.'" id="'.$id.'"'.$checked.' />'.wp_specialchars($image->post_title).'
+               </label>
+       </li>';
+               }
+       }
+       $output .= '</ul>';
+       return '<p>'.sprintf(__('Header Image &mdash; <a href="%s">Upload Images</a>', 'carrington-core'), $upload_url).'</p><div class="cfct_header_image_carousel">'.$output.'</div>';
+}
+
+if (is_admin()) {
+       wp_enqueue_script('jquery-colorpicker', get_bloginfo('template_directory').'/carrington-core/js/colorpicker.js', array('jquery'), '1.0');
+// removing until we drop 2.5 compatibility
+//     wp_enqueue_style('jquery-colorpicker', get_bloginfo('template_directory').'/carrington-core/css/colorpicker.css');
+}
+
+function cfct_admin_head() {
+// see enqueued style above, we'll activate that in the future
+       if ($_GET['page'] == 'carrington-settings') {
+               echo '
+<link rel="stylesheet" type="text/css" media="screen" href="'.get_bloginfo('template_directory').'/carrington-core/css/colorpicker.css" />
+               ';
+               cfct_admin_css();
+       }
+//     cfct_admin_js();
+}
+add_action('admin_head', 'cfct_admin_head');
+
+function cfct_admin_css() {
+?>
+<style type="text/css">
+div.cfct_header_image_carousel {
+       height: 170px;
+       overflow: auto;
+       width: 600px;
+}
+div.cfct_header_image_carousel ul {
+       height: 150px;
+}
+div.cfct_header_image_carousel li {
+       background: #fff url() center center no-repeat;
+       float: left;
+       height: 150px;
+       margin-right: 2px;
+       overflow: hidden;
+       position: relative;
+       width: 150px;
+}
+div.cfct_header_image_carousel li label {
+       background: #000;
+       color: #fff;
+       display: block;
+       height: 50px;
+       line-height: 25px;
+       overflow: hidden;
+       position: absolute;
+       top: 110px;
+       width: 150px;
+       filter:alpha(opacity=75);
+       -moz-opacity:.75;
+       opacity:.75;
+}
+div.cfct_header_image_carousel li label input {
+       margin: 0 5px;
+}
+</style>
+<?php
+}
+
+function cfct_admin_js() {
+?>
+<script type="text/javascript">
+jQuery(function() {
+       jQuery('select.home_column_select').each(function() {
+               cfct_home_columns(jQuery(this), false);
+       }).change(function() {
+               cfct_home_columns(jQuery(this), true);
+       });
+});
+
+function cfct_home_columns(elem, slide) {
+       var id = elem.attr('id').replace('cfct_home_column_', '').replace('_content', '');
+       var val = elem.val();
+       var option_show = '#cfct_latest_limit_' + id + '_option';
+       var option_hide = '#cfct_list_limit_' + id + '_option';
+       if (val == 'list') {
+               option_show = '#cfct_list_limit_' + id + '_option';
+               option_hide = '#cfct_latest_limit_' + id + '_option';
+       }
+       if (slide) {
+               jQuery(option_hide).slideUp(function() {
+                       jQuery(option_show).slideDown();
+               });
+       }
+       else {
+               jQuery(option_show).show();
+               jQuery(option_hide).hide();
+       }
+}
+</script>
+<?php
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/ajax-load.php b/theme-blog.xenproject.org/carrington-blog/carrington-core/ajax-load.php
new file mode 100644 (file)
index 0000000..31a7d5c
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_ajax_post_content($post_id) {
+       global $post, $posts, $wp_query, $wp;
+       $posts = get_posts('include='.$post_id);
+       $post = $posts[0];
+       if (is_null($post)) {
+               $posts = get_pages('include='.$post_id);
+               $post = $posts[0];
+       }
+       if (is_null($post)) {
+               $posts = get_posts('post_status=private&include='.$post_id);
+               $post = $posts[0];
+               if ($post) {
+                       $user = wp_get_current_user();
+                       if (!$user->ID || $user->ID != $post->post_author) {
+                               $post = null;
+                       }
+               }
+       }
+       if (!$post) {
+               die('');
+       }
+       $wp_query->in_the_loop = true;
+       setup_postdata($post);
+       remove_filter('the_content', 'st_add_widget');
+       $wp->send_headers();
+       cfct_content();
+       echo '<div class="close" id="post_close_'.$post_id.'"><a href="#">'.__('Close', 'carrington').'</a></div>';
+}
+
+function cfct_ajax_post_comments($post_id) {
+       global $post, $posts, $wp_query, $wp;
+       $wp_query->is_single = true;
+       $posts = get_posts('include='.$post_id);
+       $post = $posts[0];
+       if (is_null($post)) {
+               $posts = get_pages('include='.$post_id);
+               $post = $posts[0];
+       }
+       setup_postdata($post);
+       $wp->send_headers();
+       comments_template();
+}
+
+function cfct_ajax_load() {
+       if (isset($_GET['cfct_action'])) {
+               switch ($_GET['cfct_action']) {
+                       case 'post_content':
+                       case 'post_comments':
+                               if (isset($_GET['id'])) {
+                                       $post_id = intval($_GET['id']);
+                               }
+                               else if (isset($_GET['url'])) {
+                                       $post_id = url_to_post_id($_GET['url']);
+                               }
+                               if ($post_id) {
+                                       call_user_func('cfct_ajax_'.$_GET['cfct_action'], $post_id);
+                                       die();
+                               }
+               }
+       }
+}
+
+function cfct_ajax_comment_link() {
+       global $post;
+       echo ' rev="post-'.$post->ID.'" ';
+}
+add_filter('comments_popup_link_attributes', 'cfct_ajax_comment_link');
+
+function cfct_posts_per_archive_page($query) {
+       $count = get_option('cfct_posts_per_archive_page');
+       intval($count) > 0 ? $count = $count : $count = 25;
+       $query->set('posts_per_archive_page', $count);
+       if (is_category()) {
+               $query->set('posts_per_page', $count);
+       }
+       return $query;
+}
+add_filter('pre_get_posts', 'cfct_posts_per_archive_page');
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/attachment.php b/theme-blog.xenproject.org/carrington-blog/carrington-core/attachment.php
new file mode 100644 (file)
index 0000000..8095cc8
--- /dev/null
@@ -0,0 +1,126 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+function cfct_get_adjacent_image_link($prev = true) {
+       global $post;
+       $post = get_post($post);
+       $attachments = array_values(get_children( array('post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID') ));
+
+       foreach ( $attachments as $k => $attachment )
+               if ( $attachment->ID == $post->ID )
+                       break;
+
+       $k = $prev ? $k - 1 : $k + 1;
+
+       if ( isset($attachments[$k]) )
+               return wp_get_attachment_link($attachments[$k]->ID, 'thumbnail', true);
+}
+
+function cfct_post_gallery($unused, $attr) {
+       global $post;
+
+       // We're trusting author input, so let's at least make sure it looks like a valid orderby statement
+       if ( isset( $attr['orderby'] ) ) {
+               $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
+               if ( !$attr['orderby'] )
+                       unset( $attr['orderby'] );
+       }
+
+       extract(shortcode_atts(array(
+               'order'      => 'ASC',
+               'orderby'    => 'menu_order ID',
+               'id'         => $post->ID,
+               'itemtag'    => 'dl',
+               'icontag'    => 'dt',
+               'captiontag' => 'dd',
+               'columns'    => 3,
+               'size'       => 'thumbnail'
+       ), $attr));
+
+       $id = intval($id);
+       $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
+
+       if ( empty($attachments) )
+               return '';
+
+       if ( is_feed() ) {
+               $output = "\n";
+               foreach ( $attachments as $id => $attachment )
+                       $output .= wp_get_attachment_link($id, $size, true) . "\n";
+               return $output;
+       }
+
+       $itemtag = tag_escape($itemtag);
+       $captiontag = tag_escape($captiontag);
+       $columns = apply_filters('cfct_post_gallery_columns', intval($columns));
+       $itemwidth = $columns > 0 ? floor(100/$columns) : 100;
+
+       $output = apply_filters('gallery_style', "
+               <style type='text/css'>
+                       .gallery {
+                               margin: auto;
+                       }
+                       .gallery-item {
+                               float: left;
+                               margin-top: 10px;
+                               text-align: center;
+                               width: {$itemwidth}%;                   }
+                       .gallery img {
+                               border: 2px solid #cfcfcf;
+                       }
+                       .gallery-caption {
+                               margin-left: 0;
+                       }
+               </style>
+               <!-- see cfct_post_gallery() in carrington-core/attachment.php -->
+               <div class='gallery'>");
+
+       $i = 0;
+       foreach ( $attachments as $id => $attachment ) {
+// get full item src
+               $item_src = wp_get_attachment_image_src($id, 'full', false);
+
+               $link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id, $size, false, false) : wp_get_attachment_link($id, $size, true, false);
+               
+// add full item src as rel
+               $link = str_replace('><img', ' class="thickbox" rel="'.$item_src[0].'"><img', $link);
+
+               $output .= "<{$itemtag} class='gallery-item'>";
+               $output .= "
+                       <{$icontag} class='gallery-icon'>
+                               $link
+                       </{$icontag}>";
+               if ( $captiontag && trim($attachment->post_excerpt) ) {
+                       $output .= "
+                               <{$captiontag} class='gallery-caption'>
+                               {$attachment->post_excerpt}
+                               </{$captiontag}>";
+               }
+               $output .= "</{$itemtag}>";
+               if ( $columns > 0 && ++$i % $columns == 0 )
+                       $output .= '<br style="clear: both" />';
+       }
+
+       $output .= "
+                       <br style='clear: both;' />
+               </div>\n";
+
+       return $output;
+}
+add_filter('post_gallery', 'cfct_post_gallery', 10, 2);
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/carrington.php b/theme-blog.xenproject.org/carrington-blog/carrington-core/carrington.php
new file mode 100644 (file)
index 0000000..ea021ae
--- /dev/null
@@ -0,0 +1,98 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+//     ini_set('display_errors', '1');
+//     ini_set('error_reporting', E_ALL);
+
+define('CFCT_CORE_VERSION', '2.5');
+
+load_theme_textdomain('carrington');
+
+$cfct_options[] = 'cfct_about_text';
+$cfct_options[] = 'cfct_credit';
+$cfct_options[] = 'cfct_wp_footer';
+
+include_once(CFCT_PATH.'carrington-core/admin.php');
+include_once(CFCT_PATH.'carrington-core/templates.php');
+include_once(CFCT_PATH.'carrington-core/utility.php');
+include_once(CFCT_PATH.'carrington-core/ajax-load.php');
+include_once(CFCT_PATH.'carrington-core/attachment.php');
+include_once(CFCT_PATH.'carrington-core/compatibility.php');
+
+cfct_load_plugins();
+
+function cfct_init() {
+       cfct_admin_request_handler();
+       if (cfct_get_option('cfct_ajax_load') == 'yes') {
+               cfct_ajax_load();
+       }
+}
+add_action('init', 'cfct_init');
+
+function cfct_wp_footer() {
+       echo get_option('cfct_wp_footer');
+}
+add_action('wp_footer', 'cfct_wp_footer');
+
+function cfct_about_text() {
+       $about_text = get_option('cfct_about_text');
+       if (!empty($about_text)) {
+               $about_text = cfct_basic_content_formatting($about_text);
+       }
+       else {
+               global $post, $wp_query;
+               $page = $wp_query->query_vars['page'];
+// temporary - resetting below
+               $wp_query->query_vars['page'] = null;
+               remove_filter('the_excerpt', 'st_add_widget');
+               $about_query = new WP_Query('pagename=about');
+               while ($about_query->have_posts()) {
+                       $about_query->the_post();
+                       $about_text = get_the_excerpt().sprintf(__('<a class="more" href="%s">more &rarr;</a>', 'carrington'), get_permalink());
+               }
+               $wp_query->query_vars['page'] = $page;
+       }
+       if (function_exists('st_add_widget')) {
+               add_filter('the_excerpt', 'st_add_widget');
+       }
+       return $about_text;
+}
+
+function cfct_get_custom_colors($type = 'option') {
+       global $cfct_color_options;
+       $colors = array();
+       foreach ($cfct_color_options as $option => $value) {
+               switch ($type) {
+                       case 'preview':
+                               !empty($_GET[$option]) ? $colors[$option] = strip_tags(stripslashes($_GET[$option])) : $colors[$option] = '';
+                               break;
+                       case 'option':
+                       default:
+                               $colors[$option] = cfct_get_option($option);
+                               break;
+               }
+       }
+       return $colors;
+}
+
+if (!defined('CFCT_DEBUG')) {
+       define('CFCT_DEBUG', false);
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/compatibility.php b/theme-blog.xenproject.org/carrington-blog/carrington-core/compatibility.php
new file mode 100644 (file)
index 0000000..e69054f
--- /dev/null
@@ -0,0 +1,234 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+//
+// Functions here without the cfct_ prefix are taken from WordPress 2.7 under the GPL
+
+if (!function_exists('is_sticky')) {
+       function is_sticky() {
+               return false;
+       }
+}
+
+/**
+ * Displays classes for post div
+ *
+ * @param string|array $class One or more classes to add to the class list.
+ * @param int $post_id An optional post ID.
+ */
+
+if (!function_exists('post_class')) {
+       function post_class( $class = '', $post_id = null ) {
+               // Separates classes with a single space, collates classes for post DIV
+               echo 'class="' . join( ' ', get_post_class( $class, $post_id ) ) . '"';
+       }
+}
+
+/**
+ * Retrieve the classes for the post div as an array.
+ *
+ * The class names are add are many. If the post is a sticky, then the 'sticky'
+ * class name. The class 'hentry' is always added to each post. For each
+ * category, the class will be added with 'category-' with category slug is
+ * added. The tags are the same way as the categories with 'tag-' before the tag
+ * slug. All classes are passed through the filter, 'post_class' with the list
+ * of classes, followed by $class parameter value, with the post ID as the last
+ * parameter.
+ *
+ * @param string|array $class One or more classes to add to the class list.
+ * @param int $post_id An optional post ID.
+ * @return array Array of classes.
+ */
+if (!function_exists('get_post_class')) {
+       function get_post_class( $class = '', $post_id = null ) {
+               $post = get_post($post_id);
+
+               $classes = array();
+
+               $classes[] = $post->post_type;
+
+               // sticky for Sticky Posts
+               if ( is_sticky($post->ID) && is_home())
+                       $classes[] = 'sticky';
+
+               // hentry for hAtom compliace
+               $classes[] = 'hentry';
+
+               // Categories
+               foreach ( (array) get_the_category($post->ID) as $cat ) {
+                       if ( empty($cat->slug ) )
+                               continue;
+                       $classes[] = 'category-' . $cat->slug;
+               }
+
+               // Tags
+               foreach ( (array) get_the_tags($post->ID) as $tag ) {
+                       if ( empty($tag->slug ) )
+                               continue;
+                       $classes[] = 'tag-' . $tag->slug;
+               }
+
+               if ( !empty($class) ) {
+                       if ( !is_array( $class ) )
+                               $class = preg_split('#\s+#', $class);
+                       $classes = array_merge($classes, $class);
+               }
+
+               return apply_filters('post_class', $classes, $class, $post_id);
+       }
+}
+
+/**
+ * Display "sticky" CSS class, if a post is sticky.
+ *
+ * @param int $post_id An optional post ID.
+ */
+if (!function_exists('sticky_class')) {
+       function sticky_class( $post_id = null ) {
+               if ( !is_sticky($post_id) )
+                       return;
+
+               echo " sticky";
+       }
+}
+
+/**
+ * Generates semantic classes for each comment element
+ *
+ * @param string|array $class One or more classes to add to the class list
+ * @param int $comment_id An optional comment ID
+ * @param int $post_id An optional post ID
+ * @param bool $echo Whether comment_class should echo or return
+ */
+if (!function_exists('comment_class')) {
+       function comment_class( $class = '', $comment_id = null, $post_id = null, $echo = true ) {
+               // Separates classes with a single space, collates classes for comment DIV
+               $class = 'class="' . join( ' ', get_comment_class( $class, $comment_id, $post_id ) ) . '"';
+               if ( $echo)
+                       echo $class;
+               else
+                       return $class;
+       }
+}
+
+/**
+ * Returns the classes for the comment div as an array
+ *
+ * @param string|array $class One or more classes to add to the class list
+ * @param int $comment_id An optional comment ID
+ * @param int $post_id An optional post ID
+ * @return array Array of classes
+ */
+if (!function_exists('get_comment_class')) {
+       function get_comment_class( $class = '', $comment_id = null, $post_id = null ) {
+               global $comment_alt, $comment_depth, $comment_thread_alt;
+
+               $comment = get_comment($comment_id);
+
+               $classes = array();
+
+               // Get the comment type (comment, trackback),
+               $classes[] = ( empty( $comment->comment_type ) ) ? 'comment' : $comment->comment_type;
+
+               // If the comment author has an id (registered), then print the log in name
+               if ( $comment->user_id > 0 && $user = get_userdata($comment->user_id) ) {
+                       // For all registered users, 'byuser'
+                       $classes[] = 'byuser comment-author-' . $user->user_nicename;
+                       // For comment authors who are the author of the post
+                       if ( $post = get_post($post_id) ) {
+                               if ( $comment->user_id === $post->post_author )
+                                       $classes[] = 'bypostauthor';
+                       }
+               }
+
+               if ( empty($comment_alt) )
+                       $comment_alt = 0;
+               if ( empty($comment_depth) )
+                       $comment_depth = 1;
+               if ( empty($comment_thread_alt) )
+                       $comment_thread_alt = 0;
+
+               if ( $comment_alt % 2 ) {
+                       $classes[] = 'odd';
+                       $classes[] = 'alt';
+               } else {
+                       $classes[] = 'even';
+               }
+
+               $comment_alt++;
+
+               // Alt for top-level comments
+               if ( 1 == $comment_depth ) {
+                       if ( $comment_thread_alt % 2 ) {
+                               $classes[] = 'thread-odd';
+                               $classes[] = 'thread-alt';
+                       } else {
+                               $classes[] = 'thread-even';
+                       }
+                       $comment_thread_alt++;
+               }
+
+               $classes[] = "depth-$comment_depth";
+
+               if ( !empty($class) ) {
+                       if ( !is_array( $class ) )
+                               $class = preg_split('#\s+#', $class);
+                       $classes = array_merge($classes, $class);
+               }
+
+               return apply_filters('comment_class', $classes, $class, $comment_id, $post_id);
+       }
+}
+
+/**
+ * Outputs hidden fields for comment form with unique IDs, based on post ID, making it safe for AJAX pull.
+ */
+function cfct_comment_id_fields() {
+       global $id;
+
+       $replytoid = isset($_GET['replytocom']) ? (int) $_GET['replytocom'] : 0;
+       echo "<input type='hidden' name='comment_post_ID' value='$id' id='comment_post_ID_p$id' />\n";
+       echo "<input type='hidden' name='comment_parent' id='comment_parent_p$id' value='$replytoid' />\n";
+}
+
+/**
+ * Filter the comment reply link to add a unique unique ID, based on post ID, making it safe for AJAX pull.
+ */
+function cfct_get_cancel_comment_reply_link($reply_link, $link, $text) {
+       global $post;
+       
+       if ( !empty($text) ) { $text = __('Cancel', 'carrington'); }
+       
+       $style = '';
+       if (!isset($_GET['replytocom'])) {
+               $style = ' style="display:none;"';
+       }
+       
+       $reply_link = '<a rel="nofollow" id="cancel-comment-reply-link-p' . $post->ID . '" href="' . $link . '-p' . $post->ID . '"' . $style . '>' . $text . '</a>';
+       return $reply_link;
+}
+
+// For meeting wordpress.org requirements
+/*
+get_avatar();
+the_tags();
+register_sidebar('none');
+bloginfo('description');
+wp_head();
+wp_footer();
+*/
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/css/colorpicker.css b/theme-blog.xenproject.org/carrington-blog/carrington-core/css/colorpicker.css
new file mode 100644 (file)
index 0000000..2116e27
--- /dev/null
@@ -0,0 +1,161 @@
+.colorpicker {
+       width: 356px;
+       height: 176px;
+       overflow: hidden;
+       position: absolute;
+       background: url(../images/colorpicker/colorpicker_background.png);
+       font-family: Arial, Helvetica, sans-serif;
+       display: none;
+}
+.colorpicker_color {
+       width: 150px;
+       height: 150px;
+       left: 14px;
+       top: 13px;
+       position: absolute;
+       background: #f00;
+       overflow: hidden;
+       cursor: crosshair;
+}
+.colorpicker_color div {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 150px;
+       height: 150px;
+       background: url(../images/colorpicker/colorpicker_overlay.png);
+}
+.colorpicker_color div div {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 11px;
+       height: 11px;
+       overflow: hidden;
+       background: url(../images/colorpicker/colorpicker_select.gif);
+       margin: -5px 0 0 -5px;
+}
+.colorpicker_hue {
+       position: absolute;
+       top: 13px;
+       left: 171px;
+       width: 35px;
+       height: 150px;
+       cursor: n-resize;
+}
+.colorpicker_hue div {
+       position: absolute;
+       width: 35px;
+       height: 9px;
+       overflow: hidden;
+       background: url(../images/colorpicker/colorpicker_indic.gif) left top;
+       margin: -4px 0 0 0;
+       left: 0px;
+}
+.colorpicker_new_color {
+       position: absolute;
+       width: 60px;
+       height: 30px;
+       left: 213px;
+       top: 13px;
+       background: #f00;
+}
+.colorpicker_current_color {
+       position: absolute;
+       width: 60px;
+       height: 30px;
+       left: 283px;
+       top: 13px;
+       background: #f00;
+}
+.colorpicker input {
+       background-color: transparent;
+       border: 1px solid transparent;
+       position: absolute;
+       font-size: 10px;
+       font-family: Arial, Helvetica, sans-serif;
+       color: #898989;
+       top: 4px;
+       right: 11px;
+       text-align: right;
+       margin: 0;
+       padding: 0;
+       height: 11px;
+}
+.colorpicker_hex {
+       position: absolute;
+       width: 72px;
+       height: 22px;
+       background: url(../images/colorpicker/colorpicker_hex.png) top;
+       left: 212px;
+       top: 142px;
+}
+.colorpicker_hex input {
+       right: 6px;
+}
+.colorpicker_field {
+       height: 22px;
+       width: 62px;
+       background-position: top;
+       position: absolute;
+}
+.colorpicker_field span {
+       position: absolute;
+       width: 12px;
+       height: 22px;
+       overflow: hidden;
+       top: 0;
+       right: 0;
+       cursor: n-resize;
+}
+.colorpicker_rgb_r {
+       background-image: url(../images/colorpicker/colorpicker_rgb_r.png);
+       top: 52px;
+       left: 212px;
+}
+.colorpicker_rgb_g {
+       background-image: url(../images/colorpicker/colorpicker_rgb_g.png);
+       top: 82px;
+       left: 212px;
+}
+.colorpicker_rgb_b {
+       background-image: url(../images/colorpicker/colorpicker_rgb_b.png);
+       top: 112px;
+       left: 212px;
+}
+.colorpicker_hsb_h {
+       background-image: url(../images/colorpicker/colorpicker_hsb_h.png);
+       top: 52px;
+       left: 282px;
+}
+.colorpicker_hsb_s {
+       background-image: url(../images/colorpicker/colorpicker_hsb_s.png);
+       top: 82px;
+       left: 282px;
+}
+.colorpicker_hsb_b {
+       background-image: url(../images/colorpicker/colorpicker_hsb_b.png);
+       top: 112px;
+       left: 282px;
+}
+.colorpicker_submit {
+       position: absolute;
+       width: 22px;
+       height: 22px;
+       background: url(../images/colorpicker/colorpicker_submit.png) top;
+       left: 322px;
+       top: 142px;
+       overflow: hidden;
+}
+.colorpicker_focus {
+       background-position: center;
+}
+.colorpicker_hex.colorpicker_focus {
+       background-position: bottom;
+}
+.colorpicker_submit.colorpicker_focus {
+       background-position: bottom;
+}
+.colorpicker_slider {
+       background-position: bottom;
+}
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/blank.gif b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/blank.gif
new file mode 100644 (file)
index 0000000..75b945d
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/blank.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_background.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_background.png
new file mode 100644 (file)
index 0000000..8401572
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_background.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hex.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hex.png
new file mode 100644 (file)
index 0000000..4e532d7
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hex.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_b.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_b.png
new file mode 100644 (file)
index 0000000..dfac595
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_h.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_h.png
new file mode 100644 (file)
index 0000000..3977ed9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_h.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_s.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_s.png
new file mode 100644 (file)
index 0000000..a2a6997
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_hsb_s.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_indic.gif b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_indic.gif
new file mode 100644 (file)
index 0000000..f9fa95e
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_indic.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_overlay.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_overlay.png
new file mode 100644 (file)
index 0000000..561cdd9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_overlay.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_b.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_b.png
new file mode 100644 (file)
index 0000000..dfac595
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_g.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_g.png
new file mode 100644 (file)
index 0000000..72b3276
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_g.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_r.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_r.png
new file mode 100644 (file)
index 0000000..4855fe0
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_rgb_r.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_select.gif b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_select.gif
new file mode 100644 (file)
index 0000000..599f7f1
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_select.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_submit.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_submit.png
new file mode 100644 (file)
index 0000000..7f4c082
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/colorpicker_submit.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_background.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_background.png
new file mode 100644 (file)
index 0000000..cf55ffd
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_background.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hex.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hex.png
new file mode 100644 (file)
index 0000000..888f444
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hex.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_b.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_b.png
new file mode 100644 (file)
index 0000000..2f99dae
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_h.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_h.png
new file mode 100644 (file)
index 0000000..a217e92
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_h.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_s.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_s.png
new file mode 100644 (file)
index 0000000..7826b41
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_hsb_s.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_indic.gif b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_indic.gif
new file mode 100644 (file)
index 0000000..222fb94
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_indic.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_b.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_b.png
new file mode 100644 (file)
index 0000000..80764e5
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_g.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_g.png
new file mode 100644 (file)
index 0000000..fc9778b
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_g.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_r.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_r.png
new file mode 100644 (file)
index 0000000..91b0cd4
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_rgb_r.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_submit.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_submit.png
new file mode 100644 (file)
index 0000000..cd202cd
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/custom_submit.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/select.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/select.png
new file mode 100644 (file)
index 0000000..21213bf
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/select.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/select2.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/select2.png
new file mode 100644 (file)
index 0000000..2cd2cab
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/select2.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/slider.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/slider.png
new file mode 100644 (file)
index 0000000..8b03da9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/images/colorpicker/slider.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/js/colorpicker.js b/theme-blog.xenproject.org/carrington-blog/carrington-core/js/colorpicker.js
new file mode 100644 (file)
index 0000000..e9dbd2e
--- /dev/null
@@ -0,0 +1,490 @@
+/**
+ *
+ * Color picker
+ * Author: Stefan Petre www.eyecon.ro
+ * 
+ */
+(function ($) {
+       var ColorPicker = function () {
+               var
+                       ids = {},
+                       inAction,
+                       charMin = 65,
+                       visible,
+                       tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
+                       defaults = {
+                               eventName: 'click',
+                               onShow: function () {},
+                               onBeforeShow: function(){},
+                               onHide: function () {},
+                               onChange: function () {},
+                               onSubmit: function () {},
+                               color: 'ff0000',
+                               livePreview: true,
+                               flat: false
+                       },
+                       fillRGBFields = function  (hsb, cal) {
+                               var rgb = HSBToRGB(hsb);
+                               $(cal).data('colorpicker').fields
+                                       .eq(1).val(rgb.r).end()
+                                       .eq(2).val(rgb.g).end()
+                                       .eq(3).val(rgb.b).end();
+                       },
+                       fillHSBFields = function  (hsb, cal) {
+                               $(cal).data('colorpicker').fields
+                                       .eq(4).val(hsb.h).end()
+                                       .eq(5).val(hsb.s).end()
+                                       .eq(6).val(hsb.b).end();
+                       },
+                       fillHexFields = function (hsb, cal) {
+                               $(cal).data('colorpicker').fields
+                                       .eq(0).val(HSBToHex(hsb)).end();
+                       },
+                       setSelector = function (hsb, cal) {
+                               $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
+                               $(cal).data('colorpicker').selectorIndic.css({
+                                       left: parseInt(150 * hsb.s/100, 10),
+                                       top: parseInt(150 * (100-hsb.b)/100, 10)
+                               });
+                       },
+                       setHue = function (hsb, cal) {
+                               $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
+                       },
+                       setCurrentColor = function (hsb, cal) {
+                               $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
+                       },
+                       setNewColor = function (hsb, cal) {
+                               $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
+                       },
+                       keyDown = function (ev) {
+                               var pressedKey = ev.charCode || ev.keyCode || -1;
+                               if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
+                                       return false;
+                               }
+                               var cal = $(this).parent().parent();
+                               if (cal.data('colorpicker').livePreview === true) {
+                                       change.apply(this);
+                               }
+                       },
+                       change = function (ev) {
+                               var cal = $(this).parent().parent(), col;
+                               if (this.parentNode.className.indexOf('_hex') > 0) {
+                                       cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
+                               } else if (this.parentNode.className.indexOf('_hsb') > 0) {
+                                       cal.data('colorpicker').color = col = fixHSB({
+                                               h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
+                                               s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
+                                               b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
+                                       });
+                               } else {
+                                       cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
+                                               r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
+                                               g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
+                                               b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
+                                       }));
+                               }
+                               if (ev) {
+                                       fillRGBFields(col, cal.get(0));
+                                       fillHexFields(col, cal.get(0));
+                                       fillHSBFields(col, cal.get(0));
+                               }
+                               setSelector(col, cal.get(0));
+                               setHue(col, cal.get(0));
+                               setNewColor(col, cal.get(0));
+                               cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
+                       },
+                       blur = function (ev) {
+                               var cal = $(this).parent().parent();
+                               cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus')
+                       },
+                       focus = function () {
+                               charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
+                               $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
+                               $(this).parent().addClass('colorpicker_focus');
+                       },
+                       downIncrement = function (ev) {
+                               var field = $(this).parent().find('input').focus();
+                               var current = {
+                                       el: $(this).parent().addClass('colorpicker_slider'),
+                                       max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
+                                       y: ev.pageY,
+                                       field: field,
+                                       val: parseInt(field.val(), 10),
+                                       preview: $(this).parent().parent().data('colorpicker').livePreview                                      
+                               };
+                               $(document).bind('mouseup', current, upIncrement);
+                               $(document).bind('mousemove', current, moveIncrement);
+                       },
+                       moveIncrement = function (ev) {
+                               ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
+                               if (ev.data.preview) {
+                                       change.apply(ev.data.field.get(0), [true]);
+                               }
+                               return false;
+                       },
+                       upIncrement = function (ev) {
+                               change.apply(ev.data.field.get(0), [true]);
+                               ev.data.el.removeClass('colorpicker_slider').find('input').focus();
+                               $(document).unbind('mouseup', upIncrement);
+                               $(document).unbind('mousemove', moveIncrement);
+                               return false;
+                       },
+                       downHue = function (ev) {
+                               var current = {
+                                       cal: $(this).parent(),
+                                       y: $(this).offset().top
+                               };
+                               current.preview = current.cal.data('colorpicker').livePreview;
+                               $(document).bind('mouseup', current, upHue);
+                               $(document).bind('mousemove', current, moveHue);
+                       },
+                       moveHue = function (ev) {
+                               change.apply(
+                                       ev.data.cal.data('colorpicker')
+                                               .fields
+                                               .eq(4)
+                                               .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
+                                               .get(0),
+                                       [ev.data.preview]
+                               );
+                               return false;
+                       },
+                       upHue = function (ev) {
+                               fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               $(document).unbind('mouseup', upHue);
+                               $(document).unbind('mousemove', moveHue);
+                               return false;
+                       },
+                       downSelector = function (ev) {
+                               var current = {
+                                       cal: $(this).parent(),
+                                       pos: $(this).offset()
+                               };
+                               current.preview = current.cal.data('colorpicker').livePreview;
+                               $(document).bind('mouseup', current, upSelector);
+                               $(document).bind('mousemove', current, moveSelector);
+                       },
+                       moveSelector = function (ev) {
+                               change.apply(
+                                       ev.data.cal.data('colorpicker')
+                                               .fields
+                                               .eq(6)
+                                               .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
+                                               .end()
+                                               .eq(5)
+                                               .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
+                                               .get(0),
+                                       [ev.data.preview]
+                               );
+                               return false;
+                       },
+                       upSelector = function (ev) {
+                               fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               $(document).unbind('mouseup', upSelector);
+                               $(document).unbind('mousemove', moveSelector);
+                               return false;
+                       },
+                       enterSubmit = function (ev) {
+                               $(this).addClass('colorpicker_focus');
+                       },
+                       leaveSubmit = function (ev) {
+                               $(this).removeClass('colorpicker_focus');
+                       },
+                       clickSubmit = function (ev) {
+                               var cal = $(this).parent();
+                               var col = cal.data('colorpicker').color;
+                               cal.data('colorpicker').origColor = col;
+                               setCurrentColor(col, cal.get(0));
+                               cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col));
+                       },
+                       show = function (ev) {
+                               var cal = $('#' + $(this).data('colorpickerId'));
+                               cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
+                               var pos = $(this).offset();
+                               var viewPort = getViewport();
+                               var top = pos.top + this.offsetHeight;
+                               var left = pos.left;
+                               if (top + 176 > viewPort.t + viewPort.h) {
+                                       top -= this.offsetHeight + 176;
+                               }
+                               if (left + 356 > viewPort.l + viewPort.w) {
+                                       left -= 356;
+                               }
+                               cal.css({left: left + 'px', top: top + 'px'});
+                               if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
+                                       cal.show();
+                               }
+                               $(document).bind('mousedown', {cal: cal}, hide);
+                               return false;
+                       },
+                       hide = function (ev) {
+                               if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
+                                       if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
+                                               ev.data.cal.hide();
+                                       }
+                                       $(document).unbind('mousedown', hide);
+                               }
+                       },
+                       isChildOf = function(parentEl, el, container) {
+                               if (parentEl == el) {
+                                       return true;
+                               }
+                               if (parentEl.contains) {
+                                       return parentEl.contains(el);
+                               }
+                               if ( parentEl.compareDocumentPosition ) {
+                                       return !!(parentEl.compareDocumentPosition(el) & 16);
+                               }
+                               var prEl = el.parentNode;
+                               while(prEl && prEl != container) {
+                                       if (prEl == parentEl)
+                                               return true;
+                                       prEl = prEl.parentNode;
+                               }
+                               return false;
+                       },
+                       getViewport = function () {
+                               var m = document.compatMode == 'CSS1Compat';
+                               return {
+                                       l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
+                                       t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
+                                       w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
+                                       h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
+                               };
+                       },
+                       fixHSB = function (hsb) {
+                               return {
+                                       h: Math.min(360, Math.max(0, hsb.h)),
+                                       s: Math.min(100, Math.max(0, hsb.s)),
+                                       b: Math.min(100, Math.max(0, hsb.b))
+                               };
+                       }, 
+                       fixRGB = function (rgb) {
+                               return {
+                                       r: Math.min(255, Math.max(0, rgb.r)),
+                                       g: Math.min(255, Math.max(0, rgb.g)),
+                                       b: Math.min(255, Math.max(0, rgb.b))
+                               };
+                       },
+                       fixHex = function (hex) {
+                               var len = 6 - hex.length;
+                               if (len > 0) {
+                                       var o = [];
+                                       for (var i=0; i<len; i++) {
+                                               o.push('0');
+                                       }
+                                       o.push(hex);
+                                       hex = o.join('');
+                               }
+                               return hex;
+                       }, 
+                       HexToRGB = function (hex) {
+                               var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
+                               return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
+                       },
+                       HexToHSB = function (hex) {
+                               return RGBToHSB(HexToRGB(hex));
+                       },
+                       RGBToHSB = function (rgb) {
+                               var hsb = {};
+                               hsb.b = Math.max(Math.max(rgb.r,rgb.g),rgb.b);
+                               hsb.s = (hsb.b <= 0) ? 0 : Math.round(100*(hsb.b - Math.min(Math.min(rgb.r,rgb.g),rgb.b))/hsb.b);
+                               hsb.b = Math.round((hsb.b /255)*100);
+                               if((rgb.r==rgb.g) && (rgb.g==rgb.b)) hsb.h = 0;
+                               else if(rgb.r>=rgb.g && rgb.g>=rgb.b) hsb.h = 60*(rgb.g-rgb.b)/(rgb.r-rgb.b);
+                               else if(rgb.g>=rgb.r && rgb.r>=rgb.b) hsb.h = 60  + 60*(rgb.g-rgb.r)/(rgb.g-rgb.b);
+                               else if(rgb.g>=rgb.b && rgb.b>=rgb.r) hsb.h = 120 + 60*(rgb.b-rgb.r)/(rgb.g-rgb.r);
+                               else if(rgb.b>=rgb.g && rgb.g>=rgb.r) hsb.h = 180 + 60*(rgb.b-rgb.g)/(rgb.b-rgb.r);
+                               else if(rgb.b>=rgb.r && rgb.r>=rgb.g) hsb.h = 240 + 60*(rgb.r-rgb.g)/(rgb.b-rgb.g);
+                               else if(rgb.r>=rgb.b && rgb.b>=rgb.g) hsb.h = 300 + 60*(rgb.r-rgb.b)/(rgb.r-rgb.g);
+                               else hsb.h = 0;
+                               hsb.h = Math.round(hsb.h);
+                               return hsb;
+                       },
+                       HSBToRGB = function (hsb) {
+                               var rgb = {};
+                               var h = Math.round(hsb.h);
+                               var s = Math.round(hsb.s*255/100);
+                               var v = Math.round(hsb.b*255/100);
+                               if(s == 0) {
+                                       rgb.r = rgb.g = rgb.b = v;
+                               } else {
+                                       var t1 = v;
+                                       var t2 = (255-s)*v/255;
+                                       var t3 = (t1-t2)*(h%60)/60;
+                                       if(h==360) h = 0;
+                                       if(h<60) {rgb.r=t1;     rgb.b=t2; rgb.g=t2+t3}
+                                       else if(h<120) {rgb.g=t1; rgb.b=t2;     rgb.r=t1-t3}
+                                       else if(h<180) {rgb.g=t1; rgb.r=t2;     rgb.b=t2+t3}
+                                       else if(h<240) {rgb.b=t1; rgb.r=t2;     rgb.g=t1-t3}
+                                       else if(h<300) {rgb.b=t1; rgb.g=t2;     rgb.r=t2+t3}
+                                       else if(h<360) {rgb.r=t1; rgb.g=t2;     rgb.b=t1-t3}
+                                       else {rgb.r=0; rgb.g=0; rgb.b=0}
+                               }
+                               return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
+                       },
+                       RGBToHex = function (rgb) {
+                               var hex = [
+                                       rgb.r.toString(16),
+                                       rgb.g.toString(16),
+                                       rgb.b.toString(16)
+                               ];
+                               $.each(hex, function (nr, val) {
+                                       if (val.length == 1) {
+                                               hex[nr] = '0' + val;
+                                       }
+                               });
+                               return hex.join('');
+                       },
+                       HSBToHex = function (hsb) {
+                               return RGBToHex(HSBToRGB(hsb));
+                       };
+               return {
+                       init: function (options) {
+                               options = $.extend({}, defaults, options||{});
+                               if (typeof options.color == 'string') {
+                                       options.color = HexToHSB(options.color);
+                               } else if (options.color.r != undefined && options.color.g != undefined && options.color.b != undefined) {
+                                       options.color = RGBToHSB(options.color);
+                               } else if (options.color.h != undefined && options.color.s != undefined && options.color.b != undefined) {
+                                       options.color = fixHSB(options.color);
+                               } else {
+                                       return this;
+                               }
+                               options.origColor = options.color;
+                               return this.each(function () {
+                                       if (!$(this).data('colorpickerId')) {
+                                               var id = 'collorpicker_' + parseInt(Math.random() * 1000);
+                                               $(this).data('colorpickerId', id);
+                                               var cal = $(tpl).attr('id', id);
+                                               if (options.flat) {
+                                                       cal.appendTo(this).show();
+                                               } else {
+                                                       cal.appendTo(document.body);
+                                               }
+                                               options.fields = cal
+                                                                                       .find('input')
+                                                                                               .bind('keydown', keyDown)
+                                                                                               .bind('change', change)
+                                                                                               .bind('blur', blur)
+                                                                                               .bind('focus', focus);
+                                               cal.find('span').bind('mousedown', downIncrement);
+                                               options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
+                                               options.selectorIndic = options.selector.find('div div');
+                                               options.hue = cal.find('div.colorpicker_hue div');
+                                               cal.find('div.colorpicker_hue').bind('mousedown', downHue);
+                                               options.newColor = cal.find('div.colorpicker_new_color');
+                                               options.currentColor = cal.find('div.colorpicker_current_color');
+                                               cal.data('colorpicker', options);
+                                               cal.find('div.colorpicker_submit')
+                                                       .bind('mouseenter', enterSubmit)
+                                                       .bind('mouseleave', leaveSubmit)
+                                                       .bind('click', clickSubmit);
+                                               fillRGBFields(options.color, cal.get(0));
+                                               fillHSBFields(options.color, cal.get(0));
+                                               fillHexFields(options.color, cal.get(0));
+                                               setHue(options.color, cal.get(0));
+                                               setSelector(options.color, cal.get(0));
+                                               setCurrentColor(options.color, cal.get(0));
+                                               setNewColor(options.color, cal.get(0));
+                                               if (options.flat) {
+                                                       cal.css({
+                                                               position: 'relative',
+                                                               display: 'block'
+                                                       });
+                                               } else {
+                                                       $(this).bind(options.eventName, show);
+                                               }
+                                       }
+                               });
+                       },
+                       showPicker: function() {
+                               return this.each( function () {
+                                       if ($(this).data('colorpickerId')) {
+                                               show.apply(this);
+                                       }
+                               });
+                       },
+                       hidePicker: function() {
+                               return this.each( function () {
+                                       if ($(this).data('colorpickerId')) {
+                                               $('#' + $(this).data('colorpickerId')).hide();
+                                       }
+                               });
+                       },
+                       setColor: function(col) {
+                               if (typeof col == 'string') {
+                                       col = HexToHSB(col);
+                               } else if (col.r != undefined && col.g != undefined && col.b != undefined) {
+                                       col = RGBToHSB(col);
+                               } else if (col.h != undefined && col.s != undefined && col.b != undefined) {
+                                       col = fixHSB(col);
+                               } else {
+                                       return this;
+                               }
+                               return this.each(function(){
+                                       if ($(this).data('colorpickerId')) {
+                                               var cal = $('#' + $(this).data('colorpickerId'));
+                                               cal.data('colorpicker').color = col;
+                                               cal.data('colorpicker').origColor = col;
+                                               fillRGBFields(col, cal.get(0));
+                                               fillHSBFields(col, cal.get(0));
+                                               fillHexFields(col, cal.get(0));
+                                               setHue(col, cal.get(0));
+                                               setSelector(col, cal.get(0));
+                                               setCurrentColor(col, cal.get(0));
+                                               setNewColor(col, cal.get(0));
+                                       }
+                               });
+                       }
+               };
+       }();
+       $.fn.extend({
+               ColorPicker: ColorPicker.init,
+               ColorPickerHide: ColorPicker.hide,
+               ColorPickerShow: ColorPicker.show,
+               ColorPickerSetColor: ColorPicker.setColor
+       });
+})(jQuery)
+
+// hex to decimal code found here and used with minor modification: http://www.telerik.com/community/forums/aspnet-ajax/colorpicker/calculate-color-contrast-in-javascript.aspx
+function getDec(hexChar) {
+       if (typeof hexChar == 'undefined') {
+               return 0;
+       }
+       switch(hexChar.toUpperCase()) {
+               case '0': return 0;
+               case '1': return 1;
+               case '2': return 2;
+               case '3': return 3;
+               case '4': return 4;
+               case '5': return 5;
+               case '6': return 6;
+               case '7': return 7;
+               case '8': return 8;
+               case '9': return 9;
+               case 'A': return 10;
+               case 'B': return 11;
+               case 'C': return 12;
+               case 'D': return 13;
+               case 'E': return 14;
+               case 'F': return 15;
+       };
+}
+function hexToDec(hex) {
+       var colorChars = hex.split('');
+       var dec = (getDec(colorChars[0]) * 16) + getDec(colorChars[1]);
+       return dec;
+}
+function getRGB(color) {
+       // remove the '#'
+       if (color.indexOf('#') != -1) {
+               color = color.substring(color.indexOf('#') + 1);
+       }
+       var r = hexToDec(color.substr(0, 2));
+       var g = hexToDec(color.substr(2, 2));
+       var b = hexToDec(color.substr(4, 2));
+       return { r: r, g: g, b: b};
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/LICENSE.txt b/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/LICENSE.txt
new file mode 100644 (file)
index 0000000..55a9d86
--- /dev/null
@@ -0,0 +1,30 @@
+Software License Agreement (BSD License)
+
+Copyright (c) 2008 Warren Krewenki
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, with or without modification, are
+permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of jQuery Lightbox nor the names of its
+  contributors may be used to endorse or promote products
+  derived from this software without specific prior
+  written permission of jQuery Lightbox.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/css/thickbox.css b/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/css/thickbox.css
new file mode 100644 (file)
index 0000000..2586a5c
--- /dev/null
@@ -0,0 +1,157 @@
+/* ----------------------------------------------------------------------------------------------------------------*/
+/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
+/* ----------------------------------------------------------------------------------------------------------------*/
+#TB_overlay {
+       position: fixed;
+       z-index:100;
+       top: 0px;
+       left: 0px;
+       height:100%;
+       width:100%;
+}
+
+.TB_overlayMacFFBGHack {background: url(../img/macFFBgHack.png) repeat;}
+.TB_overlayBG {
+       background-color:#000;
+       filter:alpha(opacity=75);
+       -moz-opacity: 0.75;
+       opacity: 0.75;
+}
+
+* html #TB_overlay { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_window {
+       position: fixed;
+       background: #ffffff;
+       z-index: 102;
+       display:none;
+       border: 2px solid #ccc;
+       text-align:left;
+       top:50%;
+       left:50%;
+}
+
+* html #TB_window { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_window img#TB_Image {
+       display:block;
+}
+
+#TB_caption{
+       padding:7px 30px 10px 25px;
+       float:left;
+       overflow:hidden;
+       word-wrap: break-word;
+}
+
+#TB_closeWindow{
+       height:25px;
+       padding:11px 25px 10px 0;
+       float:right;
+}
+
+#TB_closeAjaxWindow{
+       float:right;
+       padding:5px 15px 5px 0;
+       margin-bottom:1px;
+       text-align:right;
+}
+
+#TB_ajaxWindowTitle{
+       float:left;
+       padding:5px 0 5px 15px;
+}
+
+#TB_title{
+       height:27px;
+}
+
+#TB_ImageWrapper {
+       margin:15px 15px 0;
+       position:relative;
+}
+#TB_ImageHoverNav {
+       height:100%;
+       top:0;
+       width: 100%;
+       position:absolute;
+       zoom:1;
+}
+a#TB_prev,
+a#TB_next {
+       background:transparent url(../img/blank.gif); /* IE6 hover area hack */
+       height:100%;
+       width: 49%;
+       text-indent:-32000px;
+}
+a#TB_prev {
+       float:left;
+}
+a#TB_next {
+       float:right;
+}
+
+#TB_ajaxContent{
+       clear:both;
+       padding:2px 15px 15px 15px;
+       overflow:auto;
+       text-align:left;
+       line-height:1.4em;
+}
+
+#TB_ajaxContent.TB_modal{
+       padding:15px;
+}
+
+#TB_ajaxContent p{
+       padding:5px 0px 5px 0px;
+}
+
+#TB_load{
+       position: fixed;
+       display:none;
+       height:13px;
+       width:208px;
+       z-index:103;
+       top: 50%;
+       left: 50%;
+       margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
+}
+
+* html #TB_load { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_HideSelect{
+       z-index:99;
+       position:fixed;
+       top: 0;
+       left: 0;
+       background-color:#fff;
+       border:none;
+       filter:alpha(opacity=0);
+       -moz-opacity: 0;
+       opacity: 0;
+       height:100%;
+       width:100%;
+}
+
+* html #TB_HideSelect { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_iframeContent{
+       clear:both;
+       border:none;
+       margin-bottom:-1px;
+       margin-top:1px;
+       _margin-bottom:1px;
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/blank.gif b/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/blank.gif
new file mode 100644 (file)
index 0000000..1d11fa9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/blank.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/loadingAnimation.gif b/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/loadingAnimation.gif
new file mode 100644 (file)
index 0000000..82290f4
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/loadingAnimation.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/macFFBgHack.png b/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/macFFBgHack.png
new file mode 100644 (file)
index 0000000..c6473b3
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/img/macFFBgHack.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/thickbox.js b/theme-blog.xenproject.org/carrington-blog/carrington-core/lightbox/thickbox.js
new file mode 100644 (file)
index 0000000..cfd23b4
--- /dev/null
@@ -0,0 +1,332 @@
+/*
+ * Thickbox 3.1 - One Box To Rule Them All.
+ * By Cody Lindley (http://www.codylindley.com)
+ * Copyright (c) 2007 cody lindley
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
+*/
+                 
+var tb_pathToImage = "images/loadingAnimation.gif";
+
+/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
+
+//on page load call tb_init
+jQuery(document).ready(function(){   
+       tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
+       imgLoader = new Image();// preload image
+       imgLoader.src = tb_pathToImage;
+});
+
+//add thickbox to href & area elements that have a class of .thickbox
+function tb_init(domChunk){
+       jQuery(domChunk).click(function(){
+       var t = this.title || this.name || null;
+       var a = this.href || this.alt;
+       var g = this.rel || false;
+       tb_show(t,a,g);
+       this.blur();
+       return false;
+       });
+}
+
+function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link
+
+       try {
+               if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
+                       jQuery("body","html").css({height: "100%", width: "100%"});
+                       jQuery("html").css("overflow","hidden");
+                       if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
+                               jQuery("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
+                               jQuery("#TB_overlay").click(tb_remove);
+                       }
+               }else{//all others
+                       if(document.getElementById("TB_overlay") === null){
+                               jQuery("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
+                               jQuery("#TB_overlay").click(tb_remove);
+                       }
+               }
+               
+               if(tb_detectMacXFF()){
+                       jQuery("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
+               }else{
+                       jQuery("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
+               }
+               
+               if(caption===null){caption="";}
+               jQuery("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
+               jQuery('#TB_load').show();//show loader
+               
+               var baseURL;
+          if(url.indexOf("?")!==-1){ //ff there is a query string involved
+                       baseURL = url.substr(0, url.indexOf("?"));
+          }else{ 
+                       baseURL = url;
+          }
+          
+          var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
+          var urlType = baseURL.toLowerCase().match(urlString);
+
+               if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
+                               
+                       TB_PrevCaption = "";
+                       TB_PrevURL = "";
+                       TB_PrevHTML = "";
+                       TB_NextCaption = "";
+                       TB_NextURL = "";
+                       TB_NextHTML = "";
+                       TB_imageCount = "";
+                       TB_FoundURL = false;
+                       if(imageGroup){
+                               TB_TempArray = jQuery("a[rel="+imageGroup+"]").get();
+                               for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
+                                       var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
+                                               if (!(TB_TempArray[TB_Counter].href == url)) {                                          
+                                                       if (TB_FoundURL) {
+                                                               TB_NextCaption = TB_TempArray[TB_Counter].title;
+                                                               TB_NextURL = TB_TempArray[TB_Counter].href;
+                                                               TB_NextHTML = "<a id='TB_next' href='#'>Next &gt;</a>";
+                                                       } else {
+                                                               TB_PrevCaption = TB_TempArray[TB_Counter].title;
+                                                               TB_PrevURL = TB_TempArray[TB_Counter].href;
+                                                               TB_PrevHTML = "<a id='TB_prev' href='#'>&lt; Prev</a>";
+                                                       }
+                                               } else {
+                                                       TB_FoundURL = true;
+                                                       TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);                                                                                     
+                                               }
+                               }
+                       }
+
+                       imgPreloader = new Image();
+                       imgPreloader.onload = function(){               
+                       imgPreloader.onload = null;
+
+// preload patch from: http://drupal.org/files/issues/thickbox_preloadimage.patch
+prevImg = new Image();
+nextImg = new Image();
+var tb_links = jQuery('a[class="thickbox"]');
+var i = -1;
+tb_links.each(function(n) { if (this.href == imgPreloader.src) { i = n; } });
+if (i != -1) {
+       if (i > 0) { prevImg.src = tb_links[i-1].href; }
+       if (i+1 < tb_links.length) { nextImg.src = tb_links[i+1].href; }
+}
+
+
+                       // Resizing large images - orginal by Christian Montoya edited by me.
+                       var pagesize = tb_getPageSize();
+                       var x = pagesize[0] - 150;
+                       var y = pagesize[1] - 170;
+                       var imageWidth = imgPreloader.width;
+                       var imageHeight = imgPreloader.height;
+                       if (imageWidth > x) {
+                               imageHeight = imageHeight * (x / imageWidth); 
+                               imageWidth = x; 
+                               if (imageHeight > y) { 
+                                       imageWidth = imageWidth * (y / imageHeight); 
+                                       imageHeight = y; 
+                               }
+                       } else if (imageHeight > y) { 
+                               imageWidth = imageWidth * (y / imageHeight); 
+                               imageHeight = y; 
+                               if (imageWidth > x) { 
+                                       imageHeight = imageHeight * (x / imageWidth); 
+                                       imageWidth = x;
+                               }
+                       }
+                       // End Resizing
+                       
+                       
+                       /* TODO: auto-calculate heights based on jQuery.height() of elements */
+                       TB_WIDTH = imageWidth + 30;
+                       TB_HEIGHT = imageHeight + 130;
+                       jQuery("#TB_window").append("<div id='TB_title'><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><div id='TB_ImageWrapper' style='height:"+imageHeight+"px;width:"+imageWidth+"px;'><div id='TB_ImageHoverNav'>"+TB_PrevHTML+TB_NextHTML+"</div><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></div><div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + "</div></div>");
+                       jQuery("#TB_closeWindowButton").click(tb_remove);
+                       
+                       if (!(TB_PrevHTML === "")) {
+                               function goPrev(){
+                                       if(jQuery(document).unbind("click",goPrev)){jQuery(document).unbind("click",goPrev);}
+                                       jQuery("#TB_window").remove();
+                                       jQuery("body").append("<div id='TB_window'></div>");
+                                       tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
+                                       return false;   
+                               }
+                               jQuery("#TB_prev").click(goPrev);
+                       }
+                       
+                       if (!(TB_NextHTML === "")) {            
+                               function goNext(){
+                                       jQuery("#TB_window").remove();
+                                       jQuery("body").append("<div id='TB_window'></div>");
+                                       tb_show(TB_NextCaption, TB_NextURL, imageGroup);
+                                       return false;
+                               }
+                               jQuery("#TB_next").click(goNext);
+                               
+                       }
+
+                       document.onkeydown = function(e){       
+                               if (e == null) { // ie
+                                       keycode = event.keyCode;
+                               } else { // mozilla
+                                       keycode = e.which;
+                               }
+                               if(keycode == 27){ // close
+                                       tb_remove();
+                               } else if(keycode == 190 || keycode == 39){ // display next image
+                                       if(!(TB_NextHTML == "")){
+                                               document.onkeydown = "";
+                                               goNext();
+                                       }
+                               } else if(keycode == 188 || keycode == 37){ // display previous image
+                                       if(!(TB_PrevHTML == "")){
+                                               document.onkeydown = "";
+                                               goPrev();
+                                       }
+                               }       
+                       };
+                       
+                       tb_position();
+                       jQuery("#TB_load").remove();
+                       jQuery("#TB_ImageOff").click(tb_remove);
+                       jQuery("#TB_window").css({display:"block"}); //for safari using css instead of show
+                       };
+                       
+                       imgPreloader.src = url;
+               }else{//code to show html
+                       
+                       var queryString = url.replace(/^[^\?]+\??/,'');
+                       var params = tb_parseQuery( queryString );
+
+                       TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
+                       TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
+                       ajaxContentW = TB_WIDTH - 30;
+                       ajaxContentH = TB_HEIGHT - 45;
+                       
+                       if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window              
+                                       urlNoQuery = url.split('TB_');
+                                       jQuery("#TB_iframeContent").remove();
+                                       if(params['modal'] != "true"){//iframe no modal
+                                               jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
+                                       }else{//iframe modal
+                                       jQuery("#TB_overlay").unbind();
+                                               jQuery("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
+                                       }
+                       }else{// not an iframe, ajax
+                                       if(jQuery("#TB_window").css("display") != "block"){
+                                               if(params['modal'] != "true"){//ajax no modal
+                                               jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
+                                               }else{//ajax modal
+                                               jQuery("#TB_overlay").unbind();
+                                               jQuery("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");    
+                                               }
+                                       }else{//this means the window is already up, we are just loading new content via ajax
+                                               jQuery("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
+                                               jQuery("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
+                                               jQuery("#TB_ajaxContent")[0].scrollTop = 0;
+                                               jQuery("#TB_ajaxWindowTitle").html(caption);
+                                       }
+                       }
+                                       
+                       jQuery("#TB_closeWindowButton").click(tb_remove);
+                       
+                               if(url.indexOf('TB_inline') != -1){     
+                                       jQuery("#TB_ajaxContent").append(jQuery('#' + params['inlineId']).children());
+                                       jQuery("#TB_window").unload(function () {
+                                               jQuery('#' + params['inlineId']).append( jQuery("#TB_ajaxContent").children() ); // move elements back when you're finished
+                                       });
+                                       tb_position();
+                                       jQuery("#TB_load").remove();
+                                       jQuery("#TB_window").css({display:"block"}); 
+                               }else if(url.indexOf('TB_iframe') != -1){
+                                       tb_position();
+                                       if($.browser.safari){//safari needs help because it will not fire iframe onload
+                                               jQuery("#TB_load").remove();
+                                               jQuery("#TB_window").css({display:"block"});
+                                       }
+                               }else{
+                                       jQuery("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
+                                               tb_position();
+                                               jQuery("#TB_load").remove();
+                                               tb_init("#TB_ajaxContent a.thickbox");
+                                               jQuery("#TB_window").css({display:"block"});
+                                       });
+                               }
+                       
+               }
+
+               if(!params['modal']){
+                       document.onkeyup = function(e){         
+                               if (e == null) { // ie
+                                       keycode = event.keyCode;
+                               } else { // mozilla
+                                       keycode = e.which;
+                               }
+                               if(keycode == 27){ // close
+                                       tb_remove();
+                               }       
+                       };
+               }
+               
+       } catch(e) {
+               //nothing here
+       }
+}
+
+//helper functions below
+function tb_showIframe(){
+       jQuery("#TB_load").remove();
+       jQuery("#TB_window").css({display:"block"});
+}
+
+function tb_remove() {
+       jQuery("#TB_imageOff").unbind("click");
+       jQuery("#TB_closeWindowButton").unbind("click");
+       jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
+       jQuery("#TB_load").remove();
+       if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
+               jQuery("body","html").css({height: "auto", width: "auto"});
+               jQuery("html").css("overflow","");
+       }
+       document.onkeydown = "";
+       document.onkeyup = "";
+       return false;
+}
+
+function tb_position() {
+jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
+       if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
+               jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
+       }
+}
+
+function tb_parseQuery ( query ) {
+   var Params = {};
+   if ( ! query ) {return Params;}// return empty object
+   var Pairs = query.split(/[;&]/);
+   for ( var i = 0; i < Pairs.length; i++ ) {
+      var KeyVal = Pairs[i].split('=');
+      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
+      var key = unescape( KeyVal[0] );
+      var val = unescape( KeyVal[1] );
+      val = val.replace(/\+/g, ' ');
+      Params[key] = val;
+   }
+   return Params;
+}
+
+function tb_getPageSize(){
+       var de = document.documentElement;
+       var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
+       var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
+       arrayPageSize = [w,h];
+       return arrayPageSize;
+}
+
+function tb_detectMacXFF() {
+  var userAgent = navigator.userAgent.toLowerCase();
+  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
+    return true;
+  }
+}
+
+
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/templates.php b/theme-blog.xenproject.org/carrington-blog/carrington-core/templates.php
new file mode 100644 (file)
index 0000000..cecf779
--- /dev/null
@@ -0,0 +1,104 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_page($file = '') {
+       if (empty($file)) {
+               $file = cfct_default_file('pages');
+       }
+       cfct_template_file('pages', $file);
+}
+
+function cfct_header() {
+       $file = cfct_choose_general_template('header');
+       cfct_template_file('header', $file);
+}
+
+function cfct_footer() {
+       $file = cfct_choose_general_template('footer');
+       cfct_template_file('footer', $file);
+}
+
+function cfct_sidebar() {
+       $file = cfct_choose_general_template('sidebar');
+       cfct_template_file('sidebar', $file);
+}
+
+function cfct_posts() {
+       $file = cfct_choose_general_template('posts');
+       cfct_template_file('posts', $file);
+}
+
+function cfct_single() {
+       $file = cfct_choose_general_template('single');
+       cfct_template_file('single', $file);
+}
+
+function cfct_attachment() {
+       $file = cfct_choose_general_template('attachment');
+       cfct_template_file('attachment', $file);
+}
+
+function cfct_loop() {
+       $file = cfct_choose_general_template('loop');
+       cfct_template_file('loop', $file);
+}
+
+function cfct_content() {
+       $file = cfct_choose_content_template();
+       cfct_template_file('content', $file);
+}
+
+function cfct_excerpt() {
+       $file = cfct_choose_content_template('excerpt');
+       cfct_template_file('excerpt', $file);
+}
+
+function cfct_comments() {
+       $file = cfct_choose_general_template('comments');
+       cfct_template_file('comments', $file);
+}
+
+function cfct_comment($data = null) {
+       $file = cfct_choose_comment_template();
+       cfct_template_file('comment', $file, $data);
+}
+
+function cfct_threaded_comment($comment, $args = array(), $depth) {
+       $GLOBALS['comment'] = $comment;
+       $data = array(
+               'args' => $args,
+               'depth' => $depth,
+       );
+       cfct_template_file('comments', 'threaded', $data);
+}
+
+function cfct_form($name = '') {
+       cfct_template_file('forms', $name);
+}
+
+function cfct_misc($name = '') {
+       cfct_template_file('misc', $name);
+}
+
+function cfct_error($name = '') {
+       cfct_template_file('error', $name);
+}
+
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington-core/utility.php b/theme-blog.xenproject.org/carrington-blog/carrington-core/utility.php
new file mode 100644 (file)
index 0000000..6ba59a0
--- /dev/null
@@ -0,0 +1,697 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_die($str = '') {
+       if (!empty($str)) {
+               include(CFCT_PATH.'error/exit.php');
+               die();
+       }
+}
+
+function cfct_banner($str = '') {
+       if (!empty($str)) {
+               include(CFCT_PATH.'misc/banner.php');
+       }
+}
+
+function cfct_get_option($name) {
+       $defaults = array(
+               'cfct_credit' => 'yes',
+               'cfct_lightbox' => 'yes',
+               'cfct_header_image' => 0,
+       );
+       $defaults = apply_filters('cfct_option_defaults', $defaults);
+       $value = get_option($name);
+       if ($value == '' && isset($defaults[$name])) {
+               $value = $defaults[$name];
+       }
+       return $value;
+}
+
+function cfct_load_plugins() {
+       $files = cfct_files(CFCT_PATH.'plugins');
+       foreach ($files as $file) {
+               include(CFCT_PATH.'plugins/'.$file);
+       }
+}
+
+function cfct_default_file($dir) {
+       $fancy = $dir.'-default.php';
+       file_exists(CFCT_PATH.$dir.'/'.$fancy) ? $default = $fancy : $default = 'default.php';
+       return $default;
+}
+
+function cfct_context() {
+       $context = 'home';
+       if (is_home() || is_front_page()) {
+               $context = 'home';
+       }
+       else if (is_page()) {
+               $context = 'page';
+       }
+       else if (is_single()) {
+               $context = 'single';
+       }
+       else if (is_category()) {
+               $context = 'category';
+       }
+       else if (is_tag()) {
+               $context = 'tag';
+       }
+       else if (is_author()) {
+               $context = 'author';
+       }
+       else if (is_archive()) {
+// possible future abstraction for:
+//     is_month()
+//     is_year()
+//     is_day()
+               $context = 'archive';
+       }
+       else if (is_search()) {
+               $context = 'search';
+       }
+       else if (is_404()) {
+               $context = '404';
+       }
+       return apply_filters('cfct_context', $context);
+}
+
+/**
+ * @param $template = folder name of file
+ * @param $type = file name of file
+ * @param $keys = keys that could be used for additional filename params
+ * returns false if file does not exist
+ *
+ */
+function cfct_filename($dir, $type = 'default', $keys = array()) {
+       switch ($type) {
+               case 'author':
+                       if (count($keys)) {
+                               $file = 'author-'.$keys[0];
+                       }
+                       else {
+                               $file = 'author';
+                       }
+                       break;
+               case 'category':
+                       if (count($keys)) {
+                               $file = 'cat-'.$keys[0];
+                       }
+                       else {
+                               $file = 'category';
+                       }
+                       break;
+               case 'tag':
+                       if (count($keys)) {
+                               $file = 'tag-'.$keys[0];
+                       }
+                       else {
+                               $file = 'tag';
+                       }
+                       break;
+               case 'meta':
+                       if (count($keys)) {
+                               foreach ($keys as $k => $v) {
+                                       if (!empty($v)) {
+                                               $file = 'meta-'.$k.'-'.$v;
+                                       }
+                                       else {
+                                               $file = 'meta-'.$k;
+                                       }
+                                       break;
+                               }
+                       }
+                       break;
+               case 'user':
+                       if (count($keys)) {
+                               $file = 'user-'.$keys[0];
+                       }
+                       break;
+               case 'role':
+                       if (count($keys)) {
+                               $file = 'role-'.$keys[0];
+                       }
+                       break;
+               case 'parent':
+                       if (count($keys)) {
+                               $file = 'parent-'.$keys[0];
+                       }
+                       break;
+               default:
+               // handles page, etc.
+                       $file = $type;
+       }
+       // fallback for category, author, tag, etc.
+       $path = CFCT_PATH.$dir.'/'.$file.'.php';
+       if (!file_exists($path)) {
+               switch ($type) {
+                       case 'author':
+                       case 'category':
+                       case 'tag':
+                               $archive_file = CFCT_PATH.$dir.'/archive.php';
+                               if (file_exists($archive_file)) {
+                                       $path = $archive_file;
+                               }
+               }
+       }
+       $default = CFCT_PATH.$dir.'/'.cfct_default_file($dir);
+       if (file_exists($path)) {
+               $path = $path;
+       }
+       else if (file_exists($default)) {
+               $path = $default;
+       }
+       else {
+               $path = false;
+       }
+       return apply_filters('cfct_filename', $path);
+}
+
+function cfct_template($dir, $keys = array()) {
+       $context = cfct_context();
+       $file = cfct_filename($dir, $context, $keys);
+       if ($file) {
+               include($file);
+       }
+       else {
+               cfct_die('Error loading '.$dir.' '.__LINE__);
+       }
+}
+
+function cfct_template_file($dir, $file, $data = null) {
+       $path = '';
+       if (!empty($file)) {
+               $file = basename($file, '.php');
+               $path = CFCT_PATH.$dir.'/'.$file.'.php';
+       }
+       if (file_exists($path)) {
+               include($path);
+       }
+       else {
+               cfct_die('Error loading '.$file.' '.__LINE__);
+       }
+}
+
+function cfct_choose_general_template($dir) {
+       $exec_order = array(
+               'author'
+               , 'role'
+               , 'category'
+               , 'tag'
+               , 'single'
+               , 'default'
+       );
+       $new_exec_order = apply_filters('cfct_general_match_order', $exec_order);
+       $files = cfct_files(CFCT_PATH.$dir);
+       foreach ($new_exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_general_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($dir, $files);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_general_template', $filename, $dir);
+}
+
+function cfct_choose_general_template_author($dir, $files) {
+       $files = cfct_author_templates($dir, $files);
+       if (count($files)) {
+               $username = get_query_var('author_name');
+               if (empty($username)) {
+                       $user = new WP_User(get_query_var('author'));
+                       $username = $user->user_login;
+               }
+               $filename = 'author-'.$username.'.php';
+               if (in_array($filename, $files)) {
+                       $keys = array($username);
+                       return cfct_filename($dir, 'author', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_category($dir, $files) {
+       $files = cfct_cat_templates($dir, $files);
+       if (count($files)) {
+               global $cat;
+               $slug = cfct_cat_id_to_slug($cat);
+               if (in_array('cat-'.$slug.'.php', $files)) {
+                       $keys = array($slug);
+                       return cfct_filename($dir, 'category', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_tag($dir, $files) {
+       $files = cfct_tag_templates($dir, $files);
+       if (count($files)) {
+               $tag = get_query_var('tag');
+               if (in_array('tag-'.$tag.'.php', $files)) {
+                       $keys = array($tag);
+                       return cfct_filename($dir, 'tag', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_role($dir, $files) {
+       $files = cfct_role_templates($dir, $files);
+       if (count($files)) {
+               $username = get_query_var('author_name');
+               $user = new WP_User(cfct_username_to_id($username));
+               if (!empty($user->user_login)) {
+                       if (count($user->roles)) {
+                               foreach ($user->roles as $role) {
+                                       $role_file = 'role-'.$role.'.php';
+                                       if (in_array($role_file, $files)) {
+                                               return $role_file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_single($dir, $files) {
+       if (cfct_context() == 'single') {
+               $files = cfct_single_templates($dir, $files);
+               if (count($files)) {
+// check to see if we're in the loop.
+                       global $post;
+                       $orig_post = $post;
+                       while (have_posts()) {
+                               the_post();
+                               $filename = cfct_choose_single_template($files, 'single-*');
+                               if (!$filename) {
+                                       if (file_exists(CFCT_PATH.$dir.'/single.php')) {
+                                               $filename = 'single.php';
+                                       }
+                               }
+                       }
+                       rewind_posts();
+                       $post = $orig_post;
+                       return $filename;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_default($dir, $files) {
+       $context = cfct_context();
+       return cfct_filename($dir, $context);
+}
+
+function cfct_choose_single_template($files = array(), $filter = '*') {
+// must be called within the_loop - cfct_choose_general_template_single() approximates a loop for this reason.
+       $exec_order = array(
+               'author'
+               , 'meta'
+               , 'category'
+               , 'role'
+               , 'tag'
+               , 'parent' // for pages
+               , 'default'
+       );
+       $exec_order = apply_filters('cfct_single_match_order', $exec_order);
+       $filename = false;
+       global $post;
+       foreach ($exec_order as $type) {
+               switch ($type) {
+                       case 'author':
+                               $author_files = cfct_author_templates('', $files);
+                               if (count($author_files)) {
+                                       $author = get_the_author_login();
+                                       $file = cfct_filename_filter('author-'.$author.'.php', $filter);
+                                       if (in_array($file, $author_files)) {
+                                               $filename = $file;
+                                       }
+                               }
+                               break;
+                       case 'meta':
+                               $meta_files = cfct_meta_templates('', $files);
+                               if (count($meta_files)) {
+                                       $meta = get_post_custom($post->ID);
+                                       if (count($meta)) {
+// check key, value matches first
+                                               foreach ($meta as $k => $v) {
+                                                       $val = $v[0];
+                                                       $file = cfct_filename_filter('meta-'.$k.'-'.$val.'.php', $filter);
+                                                       if (in_array($file, $meta_files)) {
+                                                               $filename = $file;
+                                                               break;
+                                                       }
+                                               }
+// check key matches only
+                                               if (!$filename) {
+                                                       foreach ($meta as $k => $v) {
+                                                               $file = cfct_filename_filter('meta-'.$k.'.php', $filter);
+                                                               if (in_array($file, $meta_files)) {
+                                                                       $filename = $file;
+                                                                       break;
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                               break;
+                       case 'category':
+                               $cat_files = cfct_cat_templates($type, $files);
+                               if (count($cat_files)) {
+                                       foreach ($cat_files as $file) {
+                                               $cat_id = cfct_cat_filename_to_id($file);
+                                               if (in_category($cat_id)) {
+                                                       $filename = $file;
+                                                       break;
+                                               }
+                                       }
+                               }
+                               break;
+                       case 'role':
+                               $role_files = cfct_role_templates($type, $files);
+                               if (count($role_files)) {
+                                       $user = new WP_User(get_the_author_ID());
+                                       if (count($user->roles)) {
+                                               foreach ($role_files as $file) {
+                                                       foreach ($user->roles as $role) {
+                                                               if (cfct_role_filename_to_name($file) == $role) {
+                                                                       $filename = $file;
+                                                                       break;
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                               break;
+                       case 'tag':
+                               $tag_files = cfct_tag_templates($type, $files);
+                               if (count($tag_files)) {
+                                       $tags = get_the_tags($post->ID);
+                                       if (is_array($tags) && count($tags)) {
+                                               foreach ($tag_files as $file) {
+                                                       foreach ($tags as $tag) {
+                                                               if ($tag->slug == cfct_tag_filename_to_name($file)) {
+                                                                       $filename = $file;
+                                                                       break;
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                               break;
+                       case 'parent':
+                               $parent_files = cfct_parent_templates($type, $files);
+                               if (count($parent_files) && $post->post_parent > 0) {
+                                       $parent = cfct_post_id_to_slug($post->post_parent);
+                                       $file = cfct_filename_filter('parent-'.$parent.'.php', $filter);
+                                       if (in_array($file, $parent_files)) {
+                                               $filename = $file;
+                                       }
+                               }
+                               break;
+                       case 'default':
+                               break;
+               }
+               if ($filename) {
+                       break;
+               }
+       }
+       return apply_filters('cfct_choose_single_template', $filename);
+}
+
+function cfct_choose_content_template($type = 'content') {
+       $files = cfct_files(CFCT_PATH.$type);
+       $filename = cfct_choose_single_template($files);
+       if (!$filename && cfct_context() == 'page' && file_exists(CFCT_PATH.$type.'/page.php')) {
+               $filename = 'page.php';
+       }
+       if (!$filename) {
+               $filename = cfct_default_file($type);
+       }
+       return apply_filters('cfct_choose_content_template', $filename, $type);
+}
+
+function cfct_choose_comment_template() {
+       $exec_order = array(
+               'ping'
+               , 'author'
+               , 'user'
+               , 'role'
+               , 'default'
+       );
+       $new_exec_order = apply_filters('cfct_comment_match_order', $exec_order);
+       $files = cfct_files(CFCT_PATH.'comment');
+       foreach ($new_exec_order as $func) {
+               $func_name = 'cfct_choose_comment_template_'.$func;
+               if (function_exists($func_name)) {
+                       $filename = $func_name($files);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_comment_template', $filename);
+}
+
+function cfct_choose_comment_template_ping($files) {
+       global $comment;
+       if (in_array('ping.php', $files)) {
+               switch ($comment->comment_type) {
+                       case 'pingback':
+                       case 'trackback':
+                               return 'ping';
+                               break;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_author($files) {
+       global $post, $comment;
+       if (!empty($comment->user_id) && $comment->user_id == $post->post_author && in_array('author.php', $files)) {
+               return 'author';
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_user($files) {
+       global $comment;
+       $files = cfct_comment_templates('user', $files);
+       if (count($files) && !empty($comment->user_id)) {
+               $user = new WP_User($comment->user_id);
+               if (!empty($user->user_login)) {
+                       $user_file = 'user-'.$user->user_login.'.php';
+                       if (in_array($user_file, $files)) {
+                               return $user_file;
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_role($files) {
+       global $comment;
+       $files = cfct_comment_templates('role', $files);
+       if (count($files) && !empty($comment->user_id)) {
+               $user = new WP_User($comment->user_id);
+               if (!empty($user->user_login)) {
+                       if (count($user->roles)) {
+                               foreach ($user->roles as $role) {
+                                       $role_file = 'role-'.$role.'.php';
+                                       if (in_array($role_file, $files)) {
+                                               return $role_file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_default($files) {
+       return cfct_default_file('comment');
+}
+
+function cfct_files($path) {
+       $files = apply_filters('cfct_files_'.$path, false);
+       if ($files) {
+               return $files;
+       }
+       $files = wp_cache_get('cfct_files_'.$path, 'cfct');
+       if ($files) {
+               return $files;
+       }
+       $files = array();
+       if ($handle = opendir($path)) {
+               while (false !== ($file = readdir($handle))) {
+                       $path = trailingslashit($path);
+                       if (is_file($path.$file) && strtolower(substr($file, -4, 4)) == ".php") {
+                               $files[] = $file;
+                       }
+               }
+       }
+       wp_cache_set('cfct_files_'.$path, $files, 'cfct', 3600);
+       return $files;
+}
+
+function cfct_filename_filter($filename, $filter) {
+       return str_replace('*', $filename, $filter);
+}
+
+function cfct_filter_files($files = array(), $prefix = '') {
+       $matches = array();
+       if (count($files)) {
+               foreach ($files as $file) {
+                       if (strpos($file, $prefix) !== false) {
+                               $matches[] = $file;
+                       }
+               }
+       }
+       return $matches;
+}
+
+function cfct_meta_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'meta-');
+       return apply_filters('cfct_meta_templates', $matches);
+}
+
+function cfct_cat_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'cat-');
+       return apply_filters('cfct_cat_templates', $matches);
+}
+
+function cfct_tag_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'tag-');
+       return apply_filters('cfct_tag_templates', $matches);
+}
+
+function cfct_author_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'author-');
+       return apply_filters('cfct_author_templates', $matches);
+}
+
+function cfct_role_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'role-');
+       return apply_filters('cfct_role_templates', $matches);
+}
+
+function cfct_parent_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'parent-');
+       return apply_filters('cfct_parent_templates', $matches);
+}
+
+function cfct_single_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'single');
+       return apply_filters('cfct_single_templates', $matches);
+}
+
+function cfct_comment_templates($type, $files = false) {
+       if (!$files) {
+               $files = cfct_files(CFCT_PATH.'comment');
+       }
+       $matches = array();
+       switch ($type) {
+               case 'user':
+                       $matches = cfct_filter_files($files, 'user-');
+                       break;
+               case 'role':
+                       $matches = cfct_filter_files($files, 'role-');
+                       break;
+       }
+       return apply_filters('cfct_comment_templates', $matches);
+}
+
+function cfct_cat_filename_to_id($file) {
+       $cat = str_replace(array('single-cat-', 'cat-', '.php'), '', $file);
+       $cat = get_category_by_slug($cat);
+       return $cat->cat_ID;
+}
+
+function cfct_cat_filename_to_name($file) {
+       $cat = str_replace(array('single-cat-', 'cat-', '.php'), '', $file);
+       $cat = get_category_by_slug($cat);
+       return $cat->name;
+}
+
+function cfct_cat_filename_to_slug($file) {
+       return str_replace(array('single-cat-', 'cat-', '.php'), '', $file);
+}
+
+function cfct_cat_id_to_slug($id) {
+       $cat = &get_category($id);
+       return $cat->slug;
+}
+
+function cfct_username_to_id($username) {
+       return get_profile('ID', $username);
+}
+
+function cfct_tag_filename_to_name($file) {
+       return str_replace(array('single-tag-', 'tag-', '.php'), '', $file);
+}
+
+function cfct_author_filename_to_name($file) {
+       return str_replace(array('single-author-', 'author-', '.php'), '', $file);
+}
+
+function cfct_role_filename_to_name($file) {
+       return str_replace(array('single-role-', 'role-', '.php'), '', $file);
+}
+
+function cfct_post_id_to_slug($id) {
+       $post = get_post($id);
+       return $post->post_name;
+}
+
+function cfct_basic_content_formatting($str) {
+       $str = wptexturize($str);
+       $str = convert_smilies($str);
+       $str = convert_chars($str);
+       $str = wpautop($str);
+       return $str;
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/carrington.php b/theme-blog.xenproject.org/carrington-blog/carrington.php
new file mode 100644 (file)
index 0000000..2479915
--- /dev/null
@@ -0,0 +1,106 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+//     ini_set('display_errors', '1');
+//     ini_set('error_reporting', E_ALL);
+
+define('CFCT_CORE_VERSION', '3.0');
+
+// Path to Carrington Core parent directory (usually the theme).
+if (!defined('CFCT_PATH')) {
+       define('CFCT_PATH', trailingslashit(TEMPLATEPATH));
+}
+
+load_theme_textdomain('carrington');
+
+$cfct_options[] = 'cfct_about_text';
+$cfct_options[] = 'cfct_credit';
+$cfct_options[] = 'cfct_wp_footer';
+
+include_once(CFCT_PATH.'carrington-core/admin.php');
+include_once(CFCT_PATH.'carrington-core/templates.php');
+include_once(CFCT_PATH.'carrington-core/utility.php');
+include_once(CFCT_PATH.'carrington-core/ajax-load.php');
+include_once(CFCT_PATH.'carrington-core/attachment.php');
+include_once(CFCT_PATH.'carrington-core/compatibility.php');
+
+cfct_load_plugins();
+
+function cfct_init() {
+       cfct_admin_request_handler();
+       if (cfct_get_option('cfct_ajax_load') == 'yes') {
+               cfct_ajax_load();
+       }
+}
+add_action('init', 'cfct_init');
+
+function cfct_wp_footer() {
+       echo get_option('cfct_wp_footer');
+}
+add_action('wp_footer', 'cfct_wp_footer');
+
+function cfct_about_text() {
+       $about_text = get_option('cfct_about_text');
+       if (!empty($about_text)) {
+               $about_text = cfct_basic_content_formatting($about_text);
+       }
+       else {
+               global $post, $wp_query;
+               $orig_post = $post;
+               isset($wp_query->query_vars['page']) ? $page = $wp_query->query_vars['page'] : $page = null;
+// temporary - resetting below
+               $wp_query->query_vars['page'] = null;
+               remove_filter('the_excerpt', 'st_add_widget');
+               $about_query = new WP_Query('pagename=about');
+               while ($about_query->have_posts()) {
+                       $about_query->the_post();
+                       $about_text = get_the_excerpt().sprintf(__('<a class="more" href="%s">more &rarr;</a>', 'carrington'), get_permalink());
+               }
+               $wp_query->query_vars['page'] = $page;
+               $post = $orig_post;
+               setup_postdata($post);
+       }
+       if (function_exists('st_add_widget')) {
+               add_filter('the_excerpt', 'st_add_widget');
+       }
+       return $about_text;
+}
+
+function cfct_get_custom_colors($type = 'option') {
+       global $cfct_color_options;
+       $colors = array();
+       foreach ($cfct_color_options as $option => $value) {
+               switch ($type) {
+                       case 'preview':
+                               !empty($_GET[$option]) ? $colors[$option] = strip_tags(stripslashes($_GET[$option])) : $colors[$option] = '';
+                               break;
+                       case 'option':
+                       default:
+                               $colors[$option] = cfct_get_option($option);
+                               break;
+               }
+       }
+       return $colors;
+}
+
+if (!defined('CFCT_DEBUG')) {
+       define('CFCT_DEBUG', false);
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/comment/README.txt b/theme-blog.xenproject.org/carrington-blog/comment/README.txt
new file mode 100644 (file)
index 0000000..9d8feb7
--- /dev/null
@@ -0,0 +1,35 @@
+## comment/
+
+### Overview
+
+This directory holds templates for displaying a comment in it's entirety. These templates do not hold the comment loop, or the "Comments" title or the form to allow commenting; they just show a single comment.
+
+Typically these templates will be brought in to a template in _comments/_, but can also be used to display single comments as needed.
+
+
+## Comment Context
+
+When choosing a template to use in the Comment Context, the Carrington engine looks at the type of comment and the author of the comment to choose which template to use.
+
+A "default" template is required, and will be used when there are no other templates that match a given comment. This could be because no other templates have been created, or because the comment in question doesn't match the templates that are available.
+
+The order in which these conditions are checked defaults to the following:
+
+1. ping
+2. author
+3. user
+4. role
+5. default
+
+however this order can be overridden with a plugin using the `cfct_comment_match_order` hook.
+
+Once a template match has been found, no other processing is done.
+
+
+### Supported Templates (Comment Context)
+
+- *comment-default.php* - Used when there are no other templates that match for a given comment.
+- *ping.php* - Used if the comment is a pingback or a trackback.
+- *author.php* - Used when the author of the post leaves a comment.
+- *user-{username}.php* - Used when a user with that username leaves a comment. For example, a template with a file name of _user-jsmith.php_ would be used for a comment by user _jsmith_. Any WordPres username can take the place of {username} in the file name.
+- *role-{role}.php* - Used when a comment is made by a user with a certain role. For example, a template with a file name of _role-subscriber.php_ would be used for a user with a role of "subscriber" (typical for a registered commentor who is not an author or an admin). Any WordPress role can take the place of {role} in the file name.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/comment/comment-default.php b/theme-blog.xenproject.org/carrington-blog/comment/comment-default.php
new file mode 100644 (file)
index 0000000..f6e4e19
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+global $post, $comment;
+
+extract($data); // for comment reply link
+?>
+
+<div id="comment-<?php comment_ID(); ?>" <?php comment_class('hentry'); ?>>
+       <address class="vcard author entry-title comment-author">
+<?php 
+if (function_exists('get_avatar')) { 
+?>
+               <span class="photo avatar"><?php echo get_avatar($comment, 48) ?></span>
+<?php
+}
+
+printf(__('%s <span class="says">says</span>', 'carrington-blog'), '<cite class="fn">'.get_comment_author_link().'</cite>');
+?>
+       </address><!--.vcard-->
+
+       <div class="entry-content comment-content">
+<?php
+if ($comment->comment_approved == '0') {
+?>
+                       <p class="notification"><strong><?php _e('(Your comment is awaiting moderation)', 'carrington-blog'); ?></strong></p>
+<?php 
+}
+comment_text();
+?>
+       </div><!--.entry-content-->
+       <div class="clear"></div>
+       <div class="comment-meta commentmetadata small">
+               <span class="date comment-date">
+                       <abbr class="published" title="<?php comment_time('Y-m-d\TH:i') ?>"><?php comment_date(); ?>, <a title="<?php _e('Permanent link to this comment','carrington-blog'); ?>" rel="bookmark" href="<?php the_permalink(); ?>#comment-<?php comment_ID(); ?>"><?php comment_time(); ?></a></abbr>
+               </span><!--.date-->
+<?php
+if (function_exists('comment_reply_link')) {
+       comment_reply_link(array_merge( $args, array('respond_id' => 'respond-p' . $post->ID, 'depth' => $depth, 'max_depth' => $args['max_depth'])), $comment, $post);
+}
+edit_comment_link(__('Edit', 'carrington-blog'), '<div class="edit-comment edit">', '</div>');
+?>
+       </div>
+</div><!--.comment-->
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/comment/ping.php b/theme-blog.xenproject.org/carrington-blog/comment/ping.php
new file mode 100644 (file)
index 0000000..a0dea64
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+?>
+<div id="div-ping-<?php comment_ID(); ?>" <?php comment_class('ping hentry'); ?>>
+<?php
+
+printf(__('<cite class="vcard author fn entry-title">%s</cite> <span class="linked-to-this-post alt-font">linked to this post</span>', 'carrington-blog'), get_comment_author_link());
+
+?> 
+       <span class="date alt-font">
+               <span class="on"><?php _e('on'); ?></span> <abbr class="published" title="<?php comment_date('Y-m-d\TH:i:sO'); ?>"><?php comment_date(); ?></abbr>
+       </span>
+       <blockquote class="entry-summary" cite="<?php comment_author_url(); ?>"><?php comment_text() ?></blockquote> 
+       <?php edit_comment_link(__('Edit', 'carrington-blog'), '<div class="edit edit-comment">', '</div>'); ?>
+</div><!--.ping-->
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/comments.php b/theme-blog.xenproject.org/carrington-blog/comments.php
new file mode 100644 (file)
index 0000000..7d0b8ff
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// NOTE: this file is here for compatibility reasons - active templates are in the comments/ dir 
+
+cfct_comments();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/comments/README.txt b/theme-blog.xenproject.org/carrington-blog/comments/README.txt
new file mode 100644 (file)
index 0000000..7593621
--- /dev/null
@@ -0,0 +1,44 @@
+## comments/
+
+This directory holds templates for displaying the comment loop and the comment form - what is typically called in by WordPress's `comment_template()` function.
+
+This level of abstraction us useful to be able to load in the comments and new comment form for a post/page via AJAX if desired.
+
+
+## General Context
+
+When choosing a template to use in the General Context, the Carrington engine looks at the type of request is being fulfilled. It will identify the request as the home page, a category archive, and individual post, etc.
+
+There is additional checking done for single post requests. All options in the Content Context are supported here with a 'single-' prefix added to the file. See specifics below.
+
+A "default" template is required, and will be used when there are no other templates that match a given comment. This could be because no other templates have been created, or because the comment in question doesn't match the templates that are available.
+
+By default, conditions are checked in this order:
+
+1. author
+2. role
+3. category
+4. tag
+5. single
+6. default (home, search, archive, 404, etc.)
+
+This can be altered using the `cfct_general_match_order` hook.
+
+
+### Supported Templates (General Context)
+
+- *{dirname}-default.php* (or default.php) - Used when there are no other templates that match for a given page/post.
+- *archive.php* - Used for date archives or if there are no specific category, author or tag templates.
+- *author.php* - Used for author archive lists.
+- *author-{username}.php* - Used when the post/page is authored by a specific user. For example, a template with a file name of _author-jsmith.php_ would be used for a post/page by user _jsmith_. Any WordPress username can take the place of {username} in the file name.
+- *role-{rolename}.php - Used when the post author has a particular role. This might be the role of _contributor_, _author_, _editor_, etc. and use a file of _role-contributor.php_, _role_author.php_, etc. where the role name takes the place of the {rolename} in the file name.
+- *category.php* - Used for category archive lists.
+- *cat-{slug}.php* - Used fr displaying a given category. The category is matched by the "slug" - for example a post in category "General" (with a category slug of "general") could use a template of _cat-general.php_.
+- *home.php* - Used when on the home page.
+- *page.php* - Used for pages that do not match any other contextual templates.
+- *search.php* - Used when displaying search results.
+- *single.php* - Used for single post pages.
+- *single-{content context filenames}.php* - Used for single post pages.
+- *tag.php* - Used for tag archive lists.
+- *tag-{slug}.php* - Used for displaying a given tag. The tag is matched by the "slug" - for example a post in tag "News" (with a tag slug of "news") could use a template of _tag-news.php_.
+
diff --git a/theme-blog.xenproject.org/carrington-blog/comments/comments-default.php b/theme-blog.xenproject.org/carrington-blog/comments/comments-default.php
new file mode 100644 (file)
index 0000000..65366e5
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+global $post, $wp_query, $comments, $comment;
+
+if (have_comments() || 'open' == $post->comment_status) {
+       if (empty($post->post_password) || $_COOKIE['wp-postpass_' . COOKIEHASH] == $post->post_password) {
+               $comments = $wp_query->comments;
+               $comment_count = count($comments);
+               $comment_count == 1 ? $comment_title = __('One Response', 'carrington-blog') : $comment_title = sprintf(__('%d Responses', 'carrington-blog'), $comment_count);
+       }
+
+?>
+
+<div class="rule-major"><hr /></div>
+
+<h2 class="h1 comments-title"><?php echo $comment_title; ?></h2>
+
+<p><?php printf(__('Stay in touch with the conversation, subscribe to the <a class="feed" rel="alternate" href="%s"><acronym title="Really Simple Syndication">RSS</acronym> feed for comments on this post</a>.', 'carrington-blog'), get_post_comments_feed_link($post->ID, '')); ?></p>
+
+<?php 
+
+       if ($comments) {
+               $comment_count = 0;
+               $ping_count = 0;
+               foreach ($comments as $comment) {
+                       if (get_comment_type() == 'comment') {
+                               $comment_count++;
+                       }
+                       else {
+                               $ping_count++;
+                       }
+               }
+               if ($comment_count) {
+                       cfct_template_file('comments', 'comments-loop');
+               }
+               if ($ping_count) {
+
+?>
+<h3 class="pings"><?php _e('Continuing the Discussion', 'carrington-blog'); ?></h3>
+<?php
+
+                       cfct_template_file('comments', 'pings-loop');
+               }
+       }
+       cfct_form('comment');
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/comments/comments-loop.php b/theme-blog.xenproject.org/carrington-blog/comments/comments-loop.php
new file mode 100644 (file)
index 0000000..bcd92cd
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+
+// This file is part of the Carrington JAM Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+global $comments, $comment;
+
+?>
+       <ol class="commentlist hfeed">
+<?php
+if (function_exists('wp_list_comments')) {
+       wp_list_comments('type=comment&callback=cfct_threaded_comment');
+} else {
+       foreach ($comments as $comment) {
+               if (get_comment_type() == 'comment') {
+?>
+               <li id="li-comment-<?php comment_ID(); ?>" class="li-comment">
+<?php
+               cfct_comment();
+?>
+               </li><!--.hentry-->
+<?php
+               }
+       }
+}
+?>
+       </ol>
+       
+<?php
+if(function_exists('paginate_comments_links')){
+       echo '<p class="comment-pagination">', paginate_comments_links(), '</p>';
+}
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/comments/pings-loop.php b/theme-blog.xenproject.org/carrington-blog/comments/pings-loop.php
new file mode 100644 (file)
index 0000000..78938d6
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+global $comments, $comment;
+
+?>
+       <ol class="pinglist commentlist hfeed">
+<?php
+foreach ($comments as $comment) {
+       if (get_comment_type() != 'comment') {
+?>
+               <li class="li-comment">
+<?php
+               cfct_comment();
+?>
+               </li><!--.hentry-->
+<?php
+       }
+}
+?>
+       </ol><!--/#pings-list-->
diff --git a/theme-blog.xenproject.org/carrington-blog/comments/threaded.php b/theme-blog.xenproject.org/carrington-blog/comments/threaded.php
new file mode 100644 (file)
index 0000000..f65e0c3
--- /dev/null
@@ -0,0 +1,31 @@
+<?php
+
+// This file is part of the Carrington JAM Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+?>
+
+<li class="li-comment" id="li-comment-<?php comment_ID() ?>">
+       <div class="div-comment" id="div-comment-<?php comment_ID(); ?>">
+<?php
+cfct_comment($data);
+?>
+       </div>
+<?php
+// Dropped </li> is intentional: WordPress figures out where to place the </li> so it can nest comment lists.
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/compatibility.php b/theme-blog.xenproject.org/carrington-blog/compatibility.php
new file mode 100644 (file)
index 0000000..1d86f3c
--- /dev/null
@@ -0,0 +1,242 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+/**
+ * Outputs hidden fields for comment form with unique IDs, based on post ID, making it safe for AJAX pull.
+ */
+function cfct_comment_id_fields() {
+       global $id;
+
+       $replytoid = isset($_GET['replytocom']) ? (int) $_GET['replytocom'] : 0;
+       echo "<input type='hidden' name='comment_post_ID' value='$id' id='comment_post_ID_p$id' />\n";
+       echo "<input type='hidden' name='comment_parent' id='comment_parent_p$id' value='$replytoid' />\n";
+}
+
+/**
+ * Filter the comment reply link to add a unique unique ID, based on post ID, making it safe for AJAX pull.
+ */
+function cfct_get_cancel_comment_reply_link($reply_link, $link, $text) {
+       global $post;
+       
+       if ( !empty($text) ) { $text = __('Cancel', 'carrington'); }
+       
+       $style = '';
+       if (!isset($_GET['replytocom'])) {
+               $style = ' style="display:none;"';
+       }
+       
+       $reply_link = '<a rel="nofollow" id="cancel-comment-reply-link-p' . $post->ID . '" href="' . $link . '-p' . $post->ID . '"' . $style . '>' . $text . '</a>';
+       return $reply_link;
+}
+
+
+
+
+// ITEMS BELOW THIS LINE ARE DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE
+
+
+// Functions here without the cfct_ prefix are taken from WordPress 2.7 (GPL)
+
+if (!function_exists('is_sticky')) {
+       function is_sticky() {
+               return false;
+       }
+}
+
+/**
+ * Displays classes for post div
+ *
+ * @param string|array $class One or more classes to add to the class list.
+ * @param int $post_id An optional post ID.
+ */
+
+if (!function_exists('post_class')) {
+       function post_class( $class = '', $post_id = null ) {
+               // Separates classes with a single space, collates classes for post DIV
+               echo 'class="' . join( ' ', get_post_class( $class, $post_id ) ) . '"';
+       }
+}
+
+/**
+ * Retrieve the classes for the post div as an array.
+ *
+ * The class names are add are many. If the post is a sticky, then the 'sticky'
+ * class name. The class 'hentry' is always added to each post. For each
+ * category, the class will be added with 'category-' with category slug is
+ * added. The tags are the same way as the categories with 'tag-' before the tag
+ * slug. All classes are passed through the filter, 'post_class' with the list
+ * of classes, followed by $class parameter value, with the post ID as the last
+ * parameter.
+ *
+ * @param string|array $class One or more classes to add to the class list.
+ * @param int $post_id An optional post ID.
+ * @return array Array of classes.
+ */
+if (!function_exists('get_post_class')) {
+       function get_post_class( $class = '', $post_id = null ) {
+               $post = get_post($post_id);
+
+               $classes = array();
+
+               $classes[] = $post->post_type;
+
+               // sticky for Sticky Posts
+               if ( is_sticky($post->ID) && is_home())
+                       $classes[] = 'sticky';
+
+               // hentry for hAtom compliace
+               $classes[] = 'hentry';
+
+               // Categories
+               foreach ( (array) get_the_category($post->ID) as $cat ) {
+                       if ( empty($cat->slug ) )
+                               continue;
+                       $classes[] = 'category-' . $cat->slug;
+               }
+
+               // Tags
+               foreach ( (array) get_the_tags($post->ID) as $tag ) {
+                       if ( empty($tag->slug ) )
+                               continue;
+                       $classes[] = 'tag-' . $tag->slug;
+               }
+
+               if ( !empty($class) ) {
+                       if ( !is_array( $class ) )
+                               $class = preg_split('#\s+#', $class);
+                       $classes = array_merge($classes, $class);
+               }
+
+               return apply_filters('post_class', $classes, $class, $post_id);
+       }
+}
+
+/**
+ * Display "sticky" CSS class, if a post is sticky.
+ *
+ * @param int $post_id An optional post ID.
+ */
+if (!function_exists('sticky_class')) {
+       function sticky_class( $post_id = null ) {
+               if ( !is_sticky($post_id) )
+                       return;
+
+               echo " sticky";
+       }
+}
+
+/**
+ * Generates semantic classes for each comment element
+ *
+ * @param string|array $class One or more classes to add to the class list
+ * @param int $comment_id An optional comment ID
+ * @param int $post_id An optional post ID
+ * @param bool $echo Whether comment_class should echo or return
+ */
+if (!function_exists('comment_class')) {
+       function comment_class( $class = '', $comment_id = null, $post_id = null, $echo = true ) {
+               // Separates classes with a single space, collates classes for comment DIV
+               $class = 'class="' . join( ' ', get_comment_class( $class, $comment_id, $post_id ) ) . '"';
+               if ( $echo)
+                       echo $class;
+               else
+                       return $class;
+       }
+}
+
+/**
+ * Returns the classes for the comment div as an array
+ *
+ * @param string|array $class One or more classes to add to the class list
+ * @param int $comment_id An optional comment ID
+ * @param int $post_id An optional post ID
+ * @return array Array of classes
+ */
+if (!function_exists('get_comment_class')) {
+       function get_comment_class( $class = '', $comment_id = null, $post_id = null ) {
+               global $comment_alt, $comment_depth, $comment_thread_alt;
+
+               $comment = get_comment($comment_id);
+
+               $classes = array();
+
+               // Get the comment type (comment, trackback),
+               $classes[] = ( empty( $comment->comment_type ) ) ? 'comment' : $comment->comment_type;
+
+               // If the comment author has an id (registered), then print the log in name
+               if ( $comment->user_id > 0 && $user = get_userdata($comment->user_id) ) {
+                       // For all registered users, 'byuser'
+                       $classes[] = 'byuser comment-author-' . $user->user_nicename;
+                       // For comment authors who are the author of the post
+                       if ( $post = get_post($post_id) ) {
+                               if ( $comment->user_id === $post->post_author )
+                                       $classes[] = 'bypostauthor';
+                       }
+               }
+
+               if ( empty($comment_alt) )
+                       $comment_alt = 0;
+               if ( empty($comment_depth) )
+                       $comment_depth = 1;
+               if ( empty($comment_thread_alt) )
+                       $comment_thread_alt = 0;
+
+               if ( $comment_alt % 2 ) {
+                       $classes[] = 'odd';
+                       $classes[] = 'alt';
+               } else {
+                       $classes[] = 'even';
+               }
+
+               $comment_alt++;
+
+               // Alt for top-level comments
+               if ( 1 == $comment_depth ) {
+                       if ( $comment_thread_alt % 2 ) {
+                               $classes[] = 'thread-odd';
+                               $classes[] = 'thread-alt';
+                       } else {
+                               $classes[] = 'thread-even';
+                       }
+                       $comment_thread_alt++;
+               }
+
+               $classes[] = "depth-$comment_depth";
+
+               if ( !empty($class) ) {
+                       if ( !is_array( $class ) )
+                               $class = preg_split('#\s+#', $class);
+                       $classes = array_merge($classes, $class);
+               }
+
+               return apply_filters('comment_class', $classes, $class, $comment_id, $post_id);
+       }
+}
+
+
+// For meeting wordpress.org requirements
+
+/*
+get_avatar();
+the_tags();
+register_sidebar('none');
+bloginfo('description');
+wp_head();
+wp_footer();
+*/
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/content/README.txt b/theme-blog.xenproject.org/carrington-blog/content/README.txt
new file mode 100644 (file)
index 0000000..8f044b0
--- /dev/null
@@ -0,0 +1,41 @@
+## content/
+
+This directory holds the templates for displaying a post. Typically this will be the full post with title, meta information (date, categories, tags, author, etc.) and the full output of `the_content()`.
+
+
+## Post Context
+
+When choosing a template to use in the Post Context, the Carrington engine looks information (author, category, tags, custom fields, etc.) related to the post/page being shown.
+
+Commonly these templates are included by templates in the _loop/_; but are also useful for bringing in an atomic post representation via AJAX or placing one within another template.
+
+A "default" template is required, and will be used when there are no other templates that match a given post. This could be because no other templates have been created, or because the post in question doesn't match the templates that are available.
+
+You can create templates to be used with posts/pages given various conditions. For example, you might want to give all posts in a certain category some specific styling rules. Or perhaps posts with a certain custom field or by a specific author. This is accomplished by creating templates with file names that match these conditions, then placing them in the _content/_ directory. All templates other than _{dirname}-default.php_ are optional.
+
+The order in which these conditions are checked defaults to the following:
+
+1. author
+2. meta
+3. category
+4. role
+5. tag
+6. parent
+7. default
+
+however this order can be overridden with a plugin using the `cfct_single_match_order` hook.
+
+Once a template match has been found, no other processing is done.
+
+
+### Supported Templates (Post Context)
+
+- *{dirname}-default.php* - Used when there are no other templates that match for a given post/page.
+- *author-{username}.php* - Used when a user with that username authors a post/page. For example, a template with a file name of <code>author-jsmith.php</code> would be used for a poat/page by user <code>jsmith</code>. Any WordPres username can take the place of {username} in the file name.
+- *cat-{slug}.php* - Used when a post is in a given category. The category is matched by the "slug" - for example a post in category "General" (with a category slug of "general") could use a template of <code>cat-general.php</code>.
+- *meta-{key}.php* - Used when there is a custom field for the post/page matching the key listed in the file name. This is useful if you want to be able to flag posts as "photo" or similar, and give those posts some custom treatment. In this example, you could add a custom field of "photo" with a value of the URL of the image to a post/page and it would use a template of <code>meta-photo.php</code> if that template exists. The value does not matter in this match.
+- *meta-{key}-{value}.php* - Used when there is a custom field for the post/page matching the key and value listed in the file name. This is useful if you want to be able to flag posts as "featured" or similar, and give those posts some custom treatment. In this example, you could add a custom field of "featured" with a value of "yes" to a post/page and it would use a template of <code>meta-featured-yes.php</code> if that template exists.
+- *page.php* - Used when the content is being displayed is a page (not a post).
+- *parent-{slug}.php* - Used when a page is a child page of a specific parent page. The page is matched by the "slug" - for example a page under a parent page with slug of "example" could use a template of <code>parent-example.php</code>.
+- *role-{role}.php* - Used when a post/page is authored by a user with a particular role. The {role} is an all lowercase representation of the role string - for example, an author with an "Administrator" role might use a template of <code>role-administrator.php</code>. This is primarily useful if you have a set of authors that are given a Contributor role; or a Guest Columnist role or similar. Any WordPress role can take the place of {role} in the file name.
+- *tag-{slug}.php* - Used when a post has a certain tag applied to it. The tag is matched by the "slug" - for example a post with tag "Reference" (with a tag slug of "reference") could use a template of <code>tag-reference.php</code>.
diff --git a/theme-blog.xenproject.org/carrington-blog/content/content-default.php b/theme-blog.xenproject.org/carrington-blog/content/content-default.php
new file mode 100644 (file)
index 0000000..29362ef
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+global $previousday, $authordata;
+$previousday = -1;
+
+?>
+<div id="post-content-<?php the_ID() ?>" <?php post_class('full'); ?>>
+       
+       <h1 class="entry-title full-title"><a href="<?php the_permalink() ?>" title="Permanent link to <?php the_title_attribute() ?>" rel="bookmark" rev="post-<?php the_ID(); ?>"><?php the_title() ?></a></h1>
+
+       <p class="by-line">
+               <span class="author vcard full-author">
+                       <?php printf(__('<span class="by alt-font">By</span> %s', 'carrington-blog'), '<a class="url fn" href="'.get_author_link(false, get_the_author_ID(), $authordata->user_nicename).'" title="View all posts by ' . attribute_escape($authordata->display_name) . '">'.get_the_author().'</a>') ?>
+               </span>
+               <span class="date full-date"><span class="ndash alt-font">&ndash;</span> <abbr class="published" title="<?php the_time('Y-m-d\TH:i'); ?>"><?php the_date(); ?></abbr></span>
+       </p><!--/by-line-->
+       
+       <div class="entry-content full-content">
+<?php 
+               the_content('<span class="more-link">'.__('Continued...', 'carrington-blog').'</span>'); 
+               $args = array(
+                       'before' => '<p class="pages-link">'. __('Pages: ', 'carrington-blog'),
+                       'after' => "</p>\n",
+                       'next_or_number' => 'number'
+               );
+               wp_link_pages($args);
+?>
+               <div class="clear"></div>
+       </div><!-- .entry-content-->
+       
+       <p class="filed categories alt-font tight"><?php printf(__('Posted in %s.', 'carrington-blog'), get_the_category_list(', ')); ?></p>
+       <?php the_tags(__('<p class="filed tags alt-font tight">Tagged with ', 'carrington-blog'), ', ', '.</p>'); ?>
+
+       <p class="comments-link"><?php comments_popup_link(__('No comments', 'carrington-blog'), __('1 comment', 'carrington-blog'), __('% comments', 'carrington-blog')); ?></p>
+
+       <div id="post-comments-<?php the_ID(); ?>-target"></div>
+       <div class="clear"></div>
+       
+       <?php edit_post_link(__('Edit', 'carrington-blog'), '<div class="edit-post edit">', '</div>'); ?>
+</div><!-- .post -->
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/content/page.php b/theme-blog.xenproject.org/carrington-blog/content/page.php
new file mode 100644 (file)
index 0000000..13df91f
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+global $previousday, $authordata;
+$previousday = -1;
+
+?>
+<div id="post-content-<?php the_ID() ?>" <?php post_class('full'); ?>>
+       <h1 class="entry-title full-title"><?php the_title() ?></h1>
+       
+       <div class="entry-content full-content">
+<?php 
+               the_content('<span class="more-link">'.__('Continued...', 'carrington-blog').'</span>'); 
+               $args = array(
+                       'before' => '<p class="pages-link">'. __('Pages: ', 'carrington-blog'),
+                       'after' => "</p>\n",
+                       'next_or_number' => 'number'
+               );
+               wp_link_pages($args);
+?>
+               <div class="clear"></div>
+       </div><!--/entry-content-->
+       
+       <p class="by-line">
+               <span class="author vcard full-author">
+                       <?php printf(__('<span class="by">By</span> %s', 'carrington-blog'), '<a class="url fn" href="'.get_author_link(false, get_the_author_ID(), $authordata->user_nicename).'" title="View all posts by ' . attribute_escape($authordata->display_name) . '">'.get_the_author().'</a>') ?>
+               </span>
+               <span class="date full-date"><abbr class="published" title="<?php the_time('Y-m-d\TH:i:sO'); ?>"><?php the_time(); ?></abbr></span>
+       </p><!--/by-line-->
+       <div class="clear"></div>
+       <?php edit_post_link(__('Edit', 'carrington-blog'), '<div class="edit">', '</div>'); ?>
+</div><!-- .post -->
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/css/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/css/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..2b3dbee
--- /dev/null
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 40
+/svn/!svn/ver/502/framework/tags/3.0/css
+END
+colorpicker.css
+K 25
+svn:wc:ra_dav:version-url
+V 56
+/svn/!svn/ver/502/framework/tags/3.0/css/colorpicker.css
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/css/.svn/entries b/theme-blog.xenproject.org/carrington-blog/css/.svn/entries
new file mode 100644 (file)
index 0000000..6332fbf
--- /dev/null
@@ -0,0 +1,62 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/css
+http://carrington.googlecode.com/svn
+
+
+
+2009-02-16T06:47:28.823363Z
+144
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+colorpicker.css
+file
+
+
+
+
+2010-08-02T15:33:18.451218Z
+4e5585c378bc646f057e8a31c4c3eab9
+2009-02-16T06:47:28.823363Z
+144
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3164
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/css/.svn/prop-base/colorpicker.css.svn-base b/theme-blog.xenproject.org/carrington-blog/css/.svn/prop-base/colorpicker.css.svn-base
new file mode 100644 (file)
index 0000000..869ac71
--- /dev/null
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/css/.svn/text-base/colorpicker.css.svn-base b/theme-blog.xenproject.org/carrington-blog/css/.svn/text-base/colorpicker.css.svn-base
new file mode 100644 (file)
index 0000000..2116e27
--- /dev/null
@@ -0,0 +1,161 @@
+.colorpicker {
+       width: 356px;
+       height: 176px;
+       overflow: hidden;
+       position: absolute;
+       background: url(../images/colorpicker/colorpicker_background.png);
+       font-family: Arial, Helvetica, sans-serif;
+       display: none;
+}
+.colorpicker_color {
+       width: 150px;
+       height: 150px;
+       left: 14px;
+       top: 13px;
+       position: absolute;
+       background: #f00;
+       overflow: hidden;
+       cursor: crosshair;
+}
+.colorpicker_color div {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 150px;
+       height: 150px;
+       background: url(../images/colorpicker/colorpicker_overlay.png);
+}
+.colorpicker_color div div {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 11px;
+       height: 11px;
+       overflow: hidden;
+       background: url(../images/colorpicker/colorpicker_select.gif);
+       margin: -5px 0 0 -5px;
+}
+.colorpicker_hue {
+       position: absolute;
+       top: 13px;
+       left: 171px;
+       width: 35px;
+       height: 150px;
+       cursor: n-resize;
+}
+.colorpicker_hue div {
+       position: absolute;
+       width: 35px;
+       height: 9px;
+       overflow: hidden;
+       background: url(../images/colorpicker/colorpicker_indic.gif) left top;
+       margin: -4px 0 0 0;
+       left: 0px;
+}
+.colorpicker_new_color {
+       position: absolute;
+       width: 60px;
+       height: 30px;
+       left: 213px;
+       top: 13px;
+       background: #f00;
+}
+.colorpicker_current_color {
+       position: absolute;
+       width: 60px;
+       height: 30px;
+       left: 283px;
+       top: 13px;
+       background: #f00;
+}
+.colorpicker input {
+       background-color: transparent;
+       border: 1px solid transparent;
+       position: absolute;
+       font-size: 10px;
+       font-family: Arial, Helvetica, sans-serif;
+       color: #898989;
+       top: 4px;
+       right: 11px;
+       text-align: right;
+       margin: 0;
+       padding: 0;
+       height: 11px;
+}
+.colorpicker_hex {
+       position: absolute;
+       width: 72px;
+       height: 22px;
+       background: url(../images/colorpicker/colorpicker_hex.png) top;
+       left: 212px;
+       top: 142px;
+}
+.colorpicker_hex input {
+       right: 6px;
+}
+.colorpicker_field {
+       height: 22px;
+       width: 62px;
+       background-position: top;
+       position: absolute;
+}
+.colorpicker_field span {
+       position: absolute;
+       width: 12px;
+       height: 22px;
+       overflow: hidden;
+       top: 0;
+       right: 0;
+       cursor: n-resize;
+}
+.colorpicker_rgb_r {
+       background-image: url(../images/colorpicker/colorpicker_rgb_r.png);
+       top: 52px;
+       left: 212px;
+}
+.colorpicker_rgb_g {
+       background-image: url(../images/colorpicker/colorpicker_rgb_g.png);
+       top: 82px;
+       left: 212px;
+}
+.colorpicker_rgb_b {
+       background-image: url(../images/colorpicker/colorpicker_rgb_b.png);
+       top: 112px;
+       left: 212px;
+}
+.colorpicker_hsb_h {
+       background-image: url(../images/colorpicker/colorpicker_hsb_h.png);
+       top: 52px;
+       left: 282px;
+}
+.colorpicker_hsb_s {
+       background-image: url(../images/colorpicker/colorpicker_hsb_s.png);
+       top: 82px;
+       left: 282px;
+}
+.colorpicker_hsb_b {
+       background-image: url(../images/colorpicker/colorpicker_hsb_b.png);
+       top: 112px;
+       left: 282px;
+}
+.colorpicker_submit {
+       position: absolute;
+       width: 22px;
+       height: 22px;
+       background: url(../images/colorpicker/colorpicker_submit.png) top;
+       left: 322px;
+       top: 142px;
+       overflow: hidden;
+}
+.colorpicker_focus {
+       background-position: center;
+}
+.colorpicker_hex.colorpicker_focus {
+       background-position: bottom;
+}
+.colorpicker_submit.colorpicker_focus {
+       background-position: bottom;
+}
+.colorpicker_slider {
+       background-position: bottom;
+}
diff --git a/theme-blog.xenproject.org/carrington-blog/css/README.txt b/theme-blog.xenproject.org/carrington-blog/css/README.txt
new file mode 100644 (file)
index 0000000..1fb41ad
--- /dev/null
@@ -0,0 +1,8 @@
+## css/
+
+Organizational folder for holding theme image files. You can reference these files using the built-in WordPress `bloginfo()` function like so:
+
+       <link rel="stylesheet" type="text/css" 
+               href="<?php bloginfo('template_directory'); ?>/css/base.css" />
+
+This directory is not used by the Carrington engine (template naming conventions are not supported), it is provided solely for convenience and for better organization of these files.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/css/attachment-light.css b/theme-blog.xenproject.org/carrington-blog/css/attachment-light.css
new file mode 100644 (file)
index 0000000..5e94d30
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+*/
+
+@import url(typography.css);
+
+#gallery-header{
+       background:#e9eaea;
+}
+
+#gallery-header a{
+       border-bottom:1px solid #cecfd1;
+       display:block;
+       font-size:11.5px;
+       font-weight: normal;
+       padding:10px;
+       text-transform:uppercase;
+}
+
+#gallery-content {
+       margin:40px auto;
+       position:relative;
+       width:90%;
+}
+
+.entry-attachment img {
+       border:1px solid #cecfd1;
+}
+.figure-info {
+       margin:20px auto 0;
+       padding:25px 40px;
+       width:33em;
+}
+.figure-info .title {
+       margin:0;
+       word-wrap: break-word; /* works in IE, Safari and FF 3 */
+}
+.figure-info .caption {
+       color:#777;
+}
+.figure-info .caption p {
+       font:italic 1.16666667em/1.28571429 georgia, serif;
+       margin-bottom:1.28571429em;
+       margin-top:.25em;
+}
+
+.entry-attachment {
+       text-align:center;
+}
+
+.previous-attachment,
+.next-attachment {
+       position:absolute;
+       top:0px;
+}
+.next-attachment{
+       right:0;
+}
+
+.previous-attachment a,
+.next-attachment a{
+       border:1px solid #cecfd1;
+       display:block;
+       width:50px;
+       height:50px;
+       overflow:hidden;
+}
+.previous-attachment a:hover,
+.next-attachment a:hover {
+       width:auto;
+       height:auto;
+}
+.next-attachment a:hover img {
+       float:none;
+}
+.next-attachment img {
+       float:right; /* incremental gain in FF: image is right aligned against top-right corner. Less of a visual jump */
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/css/attachment.css b/theme-blog.xenproject.org/carrington-blog/css/attachment.css
new file mode 100644 (file)
index 0000000..f32ce33
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+*/
+
+body {
+       background:#000;
+       color:#ccc;
+}
+a,
+a:visited {
+       color:#fff;
+       font-weight:bold;
+}
+
+#header{
+       background:#51555c;
+}
+
+#header a{
+       border-bottom:1px solid #333;
+       display:block;
+       font-size:11.5px;
+       font-weight: normal;
+       padding:10px;
+       text-transform:uppercase;
+}
+
+#attachment-content {
+       margin:40px auto;
+       position:relative;
+       width:90%;
+}
+
+.entry-attachment img {
+       border:1px solid #0c0c0c;
+}
+.figure-info {
+       margin:20px auto 0;
+       padding:25px 40px;
+       width:33em;
+}
+.figure-info .title {
+       margin:0;
+       word-wrap: break-word; /* works in IE, Safari and FF 3.1 beta */
+}
+.figure-info .caption {
+       color:#777;
+}
+.figure-info .caption p {
+       font:italic 1.16666667em/1.28571429 georgia, serif;
+       margin-bottom:1.28571429em;
+       margin-top:.25em;
+}
+
+.entry-attachment {
+       text-align:center;
+}
+
+.previous-attachment,
+.next-attachment {
+       position:absolute;
+       top:0px;
+}
+.next-attachment{
+       right:0;
+}
+
+.previous-attachment a,
+.next-attachment a{
+       border:1px solid #0c0c0c;
+       display:block;
+       width:50px;
+       height:50px;
+       overflow:hidden;
+}
+.previous-attachment a:hover,
+.next-attachment a:hover {
+       width:auto;
+       height:auto;
+}
+.next-attachment a:hover img {
+       float:none;
+}
+.next-attachment img {
+       float:right; /* incremental gain in FF: image is right aligned against top-right corner. Less of a visual jump */
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/css/carrington-blog.css b/theme-blog.xenproject.org/carrington-blog/css/carrington-blog.css
new file mode 100644 (file)
index 0000000..5828483
--- /dev/null
@@ -0,0 +1,641 @@
+/*
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+*/
+
+/* UI: Shared classnames
+================================================================= */
+.accessibility {
+       left:-32000px;
+       position:absolute;
+}
+.lofi {
+       display:none;
+}
+/* http://sonspring.com/journal/clearing-floats */
+html body div.clear,
+html body span.clear {
+       background: none;
+       border: 0;
+       clear: both;
+       display: block;
+       float: none;
+       font-size: 0;
+       margin: 0;
+       padding: 0;
+       overflow: hidden;
+       visibility: hidden;
+       width: 0;
+       height: 0;
+}
+/* http://www.positioniseverything.net/easyclearing.html */
+.clearfix:after {
+       clear: both;
+       content: '.';
+       display: block;
+       visibility: hidden;
+       height: 0;
+}
+.clearfix {
+       display: inline-block;
+}
+* html .clearfix {
+       height: 1%;
+}
+.clearfix {
+       display: block;
+}
+
+h1.page-title {
+       color: #999;
+       font: italic 14px Georgia, serif;
+}
+
+/* General horizontal navigation lists with dropdown magic */
+.nav,
+.nav ul,
+.nav li {
+       background:transparent;
+       list-style:none;
+       margin:0;
+       padding:0;
+}
+.nav ul {
+       background: #e9eaea;
+       border: 1px solid #cecfd1;
+       border-color: #cecfd1 #aaa #aaa #cecfd1;
+       z-index: 9999;
+}
+.nav li {
+       float:left;
+       margin-right:12px;
+}
+.nav li a {
+       display:block;
+}
+.nav li li a {
+       color: #a00004 !important; /* These need to retain a contrasting color with dropdown background */
+       padding:6px 9px;
+}
+.nav li ul,
+.nav li li {
+       margin-right:0;
+       width: 200px;
+}
+.nav li li ul {
+       margin:-31px 0 0 200px;
+}
+.nav li.secondary {
+       float:right;
+       margin-left:12px;
+       margin-right:0;
+}
+/* dropdown action */
+.nav li ul,
+.nav li:hover li ul,
+.nav li li:hover li ul,
+.nav li.hover li ul,
+.nav li li.hover li ul {
+       left: -32697px;
+       position: absolute;
+}
+.nav li:hover ul,
+.nav li li:hover ul,
+.nav li li li:hover ul,
+.nav li.hover ul,
+.nav li li.hover ul,
+.nav li li li.hover ul {
+       left: auto;
+}
+
+.pagination,
+.pagination-single {
+       background-color:#e9eaea;
+       margin-top: 20px;
+       overflow:hidden;
+}
+.pagination .previous a,
+.pagination-single .previous {
+       float:left;
+       padding:18px;
+}
+.pagination .next a,
+.pagination-single .next {
+       float:right;
+       padding:18px;
+}
+.loading {
+       background: url(../img/spinner.gif) 10px 17px no-repeat;
+       clear: both;
+       color: #ccc;
+       height: 50px;
+}
+.loading span {
+       display: block;
+       padding: 17px 32px 0;
+}
+.close {
+       background-color:#e9eaea;
+       border-bottom: 1px solid #ddd;
+       padding: 8px 0 6px;
+       text-align: center;
+}
+/* including for compatibility */
+.alignleft {
+       float:left;
+       margin-right:1em;
+       margin-bottom:1em;
+}
+.alignright {
+       float:right;
+       margin-left:1em;
+       margin-bottom:1em;
+}
+.aligncenter {
+       display: block;
+       margin-left: auto;
+       margin-right: auto;
+}
+.wp-caption {
+       border: 1px solid #ddd;
+       text-align: center;
+       background-color: #f3f3f3;
+       padding-top: 4px;
+       margin: 10px;
+       /* optional rounded corners for browsers that support it */
+       -moz-border-radius: 3px;
+       -khtml-border-radius: 3px;
+       -webkit-border-radius: 3px;
+       border-radius: 3px;
+}
+.wp-caption img {
+       margin: 0;
+       padding: 0;
+       border: 0 none;
+}
+.wp-caption p.wp-caption-text {
+       font-size: 11px;
+       line-height: 17px;
+       padding: 0 4px 5px;
+       margin: 0;
+}
+
+/* Structure
+================================================
+       Total width: 960
+       Columns: 12
+       Column width: 58px
+       Gutter width: 24px
+       Unit (column + gutter): 82px
+       Interior padding: 6px = colum width 50px
+       #content = 7 units
+       #sidebar = 5 units
+*/
+.section { /* Full-width areas */
+       min-width: 980px; /* cut-off background fix */
+}
+.wrapper {
+       clear: both;
+       margin: 0 auto;
+       width: 960px;
+}
+#header {
+       background-color: #51555c;
+       background-repeat:repeat-x;
+       background-position:left bottom;
+       color: #cecfd1;
+}
+#header .wrapper {
+       background-repeat:repeat-x;
+       background-position:center bottom;
+       padding: 13px 10px 10px;
+}
+#header a,
+#header a:visited {
+       color: #fff;
+}
+#header #blog-title {
+       font-family: "Avenir Light", "Futura Light", helvetica, arial, sans-serif;
+       font-size: 36px;
+       font-weight:normal;
+       line-height: 1;
+       margin-bottom: 9px;
+}
+#header #blog-title a:hover {
+       text-decoration: none;
+}
+
+#navigation a,
+#navigation a:visited {
+       font-weight: bold;
+       text-transform: uppercase;
+}
+#navigation .secondary a,
+#navigation .secondary a:visited,
+#navigation li li a,
+#navigation li li a:visited {
+       font-weight:normal;
+       text-transform:none;
+}
+
+#sub-header {
+       background-color: #e9eaea;
+       padding: 9px 0;
+}
+#sub-header form#cfct-search {
+       float:right;
+}
+#all-categories {
+       padding:2px 0 0;
+       width:760px;
+}
+#all-categories-title {
+       float: left;
+       font-weight:normal;
+       margin-right:12px;
+}
+
+#main {
+       margin:24px 0;
+}
+#content {
+       float: left;
+       padding-bottom: 24px;
+       width: 550px;
+}
+#sidebar {
+       background-color:#e9eaea;
+       float:left;
+       margin-left:24px;
+       padding:14px;
+       width: 358px;
+}
+#sidebar #primary-sidebar,
+#sidebar #secondary-sidebar {
+       float:left;
+       width:173px;
+}
+#sidebar #primary-sidebar {
+       margin-right:12px;
+}
+#footer {
+       background-color: #51555c;
+       background-repeat:repeat-x;
+       background-position:left top;
+       clear: both;
+       color: #999;
+       padding: 32px 0 64px;
+}
+#footer a,
+#footer a:visited {
+       color: #CECFD1;
+}
+#footer .wrapper {
+       overflow:hidden;
+       padding-bottom:28px;
+}
+#footer p#generator-link {
+       float:left;
+       padding-top: 12px;
+}
+#footer p#developer-link {
+       display:block;
+       text-indent:-32697px;
+}
+
+/* Posts
+ =============================== */
+.entry-content,
+.entry-summary {
+       overflow:auto;
+}
+.hentry {
+       position:relative;
+}
+.hentry .edit {
+       background-color:#900;
+       border-radius:4px;
+       -webkit-border-radius:4px;
+       -khtml-border-radius:4px;
+       -moz-border-radius:4px;
+       font-size: 11.5px;
+       opacity:.60;
+       padding:3px 5px 1px;
+       left:-32697px;
+       position:absolute;
+       top:0;
+}
+.hentry:hover .edit,
+.post:hover .edit-post,
+.comment.hentry:hover .edit-comment {
+       left: auto;
+       right:0;
+}
+.hentry:hover .edit-comment {
+       left:-32697px;
+       right: auto;
+}
+.comment.hentry.bypostauthor:hover .edit-comment {
+       top: 2px;
+       right: 2px;
+}
+.edit a,
+.edit a:visited,
+.edit a:hover{
+       color:#fff;
+}
+.full .full-content {
+       clear:both;
+       padding-top: 9px;
+       width: 510px;
+}
+.full .pages-link,
+.page-numbers {
+       font-weight:bold;
+}
+.full .pages-link a,
+a.page-numbers {
+       border:1px solid #cecfd1;
+       font-weight:normal;
+}
+.full .pages-link a,
+.page-numbers{
+       padding:2px 6px;
+}
+.full .pages-link a:hover {
+       border-color:#999;
+       text-decoration:none;
+}
+.full p.comments-link {
+       float:right;
+}
+
+.hentry ul {
+       margin-left: 20px;
+}
+.hentry ol {
+       margin-left: 32px;
+}
+
+.archive {
+       border-top: 1px dotted #cecfd1;
+       list-style: none;
+       margin: 1.5em 0 0;
+}
+.archive li {
+       margin-bottom:0;
+}
+.archive .full {
+       margin-top:18px;
+}
+.excerpt {
+       background: url(../img/arrow-bullet.gif) no-repeat 0 12px;
+       border-bottom: 1px dotted #cecfd1;
+       color: #999;
+       padding: 12px 146px 12px 20px;
+       position:relative;
+}
+.excerpt strong.entry-title {
+       font-size: 14px;
+}
+.excerpt strong.entry-title a,
+.excerpt strong.entry-title a:visited {
+       color: #51555c;
+}
+.excerpt strong.entry-title a:hover {
+       color: #a00004;
+       text-decoration: none;
+}
+.excerpt .date {
+       margin-top:1.5em;
+}
+.excerpt p {
+       margin:0;
+}
+.excerpt .date,
+.excerpt .comments-link a,
+.excerpt .comments-link a:visited,
+.excerpt .comments-link span {
+       display: block;
+       width: 140px;
+}
+.excerpt .date,
+.excerpt .comments-link {
+       position:absolute;
+       right:0;
+       top:14px;
+}
+.search {
+       border-top: 1px dotted #cecfd1;
+       padding-top:18px;
+}
+
+/* Comments and comment form
+=================================== */
+.commentlist{
+       clear:both;
+       list-style:none;
+       margin:0 0 18px;
+}
+li.li-comment{
+       background:transparent;
+       margin:0;
+       padding:0;
+       position:relative;
+}
+li.li-comment li.li-comment {
+       background:url(../img/comment-thread.gif) no-repeat 0 3px;
+       padding-left:24px;
+}
+.commentlist .comment {
+       margin-bottom:8px;
+       overflow:hidden;
+       padding:0 0 0 60px;
+}
+.commentlist .comment .photo img{
+       margin-left:-60px;
+       position:absolute;
+}
+.comment cite.fn {
+       font-size:14px;
+       font-weight:bold;
+}
+.comment .comment-content {
+       overflow:hidden;
+       margin-bottom:4px;
+}
+.comment .comment-content p:last-child,
+.comment .comment-content p.last-child {
+       margin-bottom:0;
+}
+.comment-meta {
+       color:#999;
+       font-size: 10.5px;
+}
+.comment-meta .date {
+       float:right;
+}
+.comment-reply-link,
+.comment-reply-link:visited,
+.comment-reply-link:hover {
+       background:#900;
+       border-radius:4px;
+       -webkit-border-radius:4px;
+       -khtml-border-radius:4px;
+       -moz-border-radius:4px;
+       color:#fff;
+       font-size:9.5px;
+       opacity:.7;
+       padding:3px 5px 2px;
+}
+/* author comments */
+.commentlist .bypostauthor {
+       background-color:#efeff1;
+       padding:8px 12px 6px 72px;
+}
+
+/* trackbacks and pingbacks */
+.ping {
+       border-top:1px dotted #cecfd1;
+       padding:9px;
+}
+.ping .entry-summary,
+.ping .entry-summary p {
+       border:0;
+       margin:0;
+       padding:0;
+}
+form.comment-form {
+       background-color:#efeff1;
+       border:1px solid #e9eaea;
+       margin-bottom:8px;
+       padding:9px 9px 0;
+}
+.comment-form label {
+       color:#51555c;
+       font-weight:bold;
+}
+.comment-form-user-info input {
+       margin-right:9px;
+       width:200px;
+}
+.comment-form em {
+       color:#999;
+       font-weight:normal;
+       font-style:normal;
+       font-size:12px;
+}
+.comment-form textarea {
+       height:9em;
+       width:95%;
+}
+
+/* Sidebar and Widgets
+============================== */
+.widget {
+       margin-bottom:18px;
+       overflow:hidden;
+       width:100%;
+}
+h2.widget-title,
+.widget_search label {
+       font-size: 1.16666667em; /* 14 */
+       line-height: 1.28571429;
+       margin: 0 0 .58333334em 0;
+}
+.widget li {
+       margin:0;
+}
+.widget_search label {
+       display:block;
+       font-weight:bold;
+}
+.widget_search input {
+       margin-bottom:6px;
+}
+#carrington-subscribe h2.widget-title {
+       color:#999;
+       float:left;
+       font:normal 1.16666667em/1.28571429 helvetica, arial, sans-serif; /* 14 */
+       margin:7px 0 0;
+       text-transform:uppercase;
+}
+#carrington-about {
+       padding-bottom:24px;
+}
+#carrington-about .about{
+       background-color:#fff;
+       overflow:hidden;
+       padding:12px;
+}
+#carrington-about p {
+       margin:0;
+}
+#carrington-about a.more,
+#carrington-about a.more:visited {
+       float:right;
+}
+#carrington-archives ul {
+       border-top: 1px dotted #cecfd1;
+}
+#carrington-archives li {
+       background-position:left 6px;
+       border-bottom: 1px dotted #cecfd1;
+}
+#carrington-archives li a {
+       display:block;
+       padding:6px 0;
+}
+#sidebar ol {
+       margin-left: 26px;
+}
+
+/* Misc
+=================================== */
+
+#footer p#developer-link a,
+#footer p#developer-link a:visited {
+       background:url(../img/footer/by-crowd-favorite-light.png) no-repeat left top;
+       float:right;
+       height:30px;
+       text-indent:-32697px;
+       width:270px;
+}
+
+#TB_secondLine {
+       color:#999;
+       font-family: Georgia, Palatino, "Palatino Linotype", Baskerville, serif;
+       font-style:italic;
+}
+#TB_title{
+       background-color: #51555c;
+       color:#fff;
+       font-size:11.5px;
+       line-height:18px;
+}
+#TB_title a,
+#TB_title a:visited {
+       color:#fff;
+}
+a#TB_prev:hover,
+a#TB_next:hover {
+       height:100%;
+}
+a#TB_prev:hover {
+       background:url(../img/lightbox/prevlabel.gif) no-repeat left center;
+}
+a#TB_next:hover {
+       background:url(../img/lightbox/nextlabel.gif) no-repeat right center;
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/css/colorpicker.css b/theme-blog.xenproject.org/carrington-blog/css/colorpicker.css
new file mode 100644 (file)
index 0000000..2116e27
--- /dev/null
@@ -0,0 +1,161 @@
+.colorpicker {
+       width: 356px;
+       height: 176px;
+       overflow: hidden;
+       position: absolute;
+       background: url(../images/colorpicker/colorpicker_background.png);
+       font-family: Arial, Helvetica, sans-serif;
+       display: none;
+}
+.colorpicker_color {
+       width: 150px;
+       height: 150px;
+       left: 14px;
+       top: 13px;
+       position: absolute;
+       background: #f00;
+       overflow: hidden;
+       cursor: crosshair;
+}
+.colorpicker_color div {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 150px;
+       height: 150px;
+       background: url(../images/colorpicker/colorpicker_overlay.png);
+}
+.colorpicker_color div div {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 11px;
+       height: 11px;
+       overflow: hidden;
+       background: url(../images/colorpicker/colorpicker_select.gif);
+       margin: -5px 0 0 -5px;
+}
+.colorpicker_hue {
+       position: absolute;
+       top: 13px;
+       left: 171px;
+       width: 35px;
+       height: 150px;
+       cursor: n-resize;
+}
+.colorpicker_hue div {
+       position: absolute;
+       width: 35px;
+       height: 9px;
+       overflow: hidden;
+       background: url(../images/colorpicker/colorpicker_indic.gif) left top;
+       margin: -4px 0 0 0;
+       left: 0px;
+}
+.colorpicker_new_color {
+       position: absolute;
+       width: 60px;
+       height: 30px;
+       left: 213px;
+       top: 13px;
+       background: #f00;
+}
+.colorpicker_current_color {
+       position: absolute;
+       width: 60px;
+       height: 30px;
+       left: 283px;
+       top: 13px;
+       background: #f00;
+}
+.colorpicker input {
+       background-color: transparent;
+       border: 1px solid transparent;
+       position: absolute;
+       font-size: 10px;
+       font-family: Arial, Helvetica, sans-serif;
+       color: #898989;
+       top: 4px;
+       right: 11px;
+       text-align: right;
+       margin: 0;
+       padding: 0;
+       height: 11px;
+}
+.colorpicker_hex {
+       position: absolute;
+       width: 72px;
+       height: 22px;
+       background: url(../images/colorpicker/colorpicker_hex.png) top;
+       left: 212px;
+       top: 142px;
+}
+.colorpicker_hex input {
+       right: 6px;
+}
+.colorpicker_field {
+       height: 22px;
+       width: 62px;
+       background-position: top;
+       position: absolute;
+}
+.colorpicker_field span {
+       position: absolute;
+       width: 12px;
+       height: 22px;
+       overflow: hidden;
+       top: 0;
+       right: 0;
+       cursor: n-resize;
+}
+.colorpicker_rgb_r {
+       background-image: url(../images/colorpicker/colorpicker_rgb_r.png);
+       top: 52px;
+       left: 212px;
+}
+.colorpicker_rgb_g {
+       background-image: url(../images/colorpicker/colorpicker_rgb_g.png);
+       top: 82px;
+       left: 212px;
+}
+.colorpicker_rgb_b {
+       background-image: url(../images/colorpicker/colorpicker_rgb_b.png);
+       top: 112px;
+       left: 212px;
+}
+.colorpicker_hsb_h {
+       background-image: url(../images/colorpicker/colorpicker_hsb_h.png);
+       top: 52px;
+       left: 282px;
+}
+.colorpicker_hsb_s {
+       background-image: url(../images/colorpicker/colorpicker_hsb_s.png);
+       top: 82px;
+       left: 282px;
+}
+.colorpicker_hsb_b {
+       background-image: url(../images/colorpicker/colorpicker_hsb_b.png);
+       top: 112px;
+       left: 282px;
+}
+.colorpicker_submit {
+       position: absolute;
+       width: 22px;
+       height: 22px;
+       background: url(../images/colorpicker/colorpicker_submit.png) top;
+       left: 322px;
+       top: 142px;
+       overflow: hidden;
+}
+.colorpicker_focus {
+       background-position: center;
+}
+.colorpicker_hex.colorpicker_focus {
+       background-position: bottom;
+}
+.colorpicker_submit.colorpicker_focus {
+       background-position: bottom;
+}
+.colorpicker_slider {
+       background-position: bottom;
+}
diff --git a/theme-blog.xenproject.org/carrington-blog/css/css.php b/theme-blog.xenproject.org/carrington-blog/css/css.php
new file mode 100644 (file)
index 0000000..c5043a4
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+define('ABSPATH', dirname(__FILE__) . '/');
+
+$css_files = array(
+       'attachment' => 'attachment.css',
+       'carrington-blog' => 'carrington-blog.css',
+       'img' => 'img.css',
+       'typography' => 'typography.css',
+);
+
+// set default
+$load = array('typography', 'carrington-blog', 'img');
+
+if (!isset($_GET['type'])) {
+       $_GET['type'] = 'main';
+}
+
+switch ($_GET['type']) {
+       case 'attachment':
+               $load = array('typography', 'attachment', 'img');
+               break;
+       case 'attachment-noimg':
+               $load = array('typography', 'attachment');
+               break;
+       case 'noimg':
+               $load = array('typography', 'carrington-blog');
+               break;
+       case 'main':
+       default:
+               // use default
+               break;
+}
+
+ob_start("ob_gzhandler");
+
+header('Content-type: text/css');
+header("Cache-Control: public");
+// cache for 1 day
+header('Expires: '.gmdate('D, d M Y H:i:s', time() + 86400) . 'GMT'); 
+
+foreach ($load as $file) {
+       include(ABSPATH.$css_files[$file]);
+       echo "\n\n";
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/css/ie.css b/theme-blog.xenproject.org/carrington-blog/css/ie.css
new file mode 100644 (file)
index 0000000..01387cd
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+*/
+
+/* hasLayout fixes */
+ul li,
+.nav ul,
+.full,
+.entry-content,
+.entry-summary,
+.commentlist .hentry,
+.widget,
+.comment-form,
+#content,
+#sidebar,
+#carrington-about .about {zoom:1;}
+
+.entry-content {
+       width:100%;
+}
+
+/* Suckerfish dropdowns stick in IE7 without this bit */
+*:first-child+html .nav {height: 1%;} 
+*:first-child+html .nav li {height: 1%;}
+
+/* Margin float fix */
+.full p.comments-link{
+       margin:0;
+}
+.comment-reply-link {
+       filter:alpha(opacity=70);
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/css/ie6.css b/theme-blog.xenproject.org/carrington-blog/css/ie6.css
new file mode 100644 (file)
index 0000000..b0ae1f3
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+*/
+
+/* hasLayout fixes */
+.pagination,
+.pagination-single { zoom:1; }
+
+/* Harden text widgets against italics problem */
+.textwidget {
+       overflow:visible;
+}
+
+/* Border dotted looks like junk in IE. */
+.archive,
+.excerpt,
+.search,
+ol.commentlist li.li-comment,
+.ping,
+#carrington-archives ul,
+#carrington-archives li {
+       border-style:solid;
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/css/iepngfix.htc b/theme-blog.xenproject.org/carrington-blog/css/iepngfix.htc
new file mode 100644 (file)
index 0000000..a90fed0
--- /dev/null
@@ -0,0 +1,187 @@
+<public:component>
+<script type="text/javascript">
+
+// IE5.5+ PNG Alpha Fix v2.0 Alpha
+// (c) 2004-2008 Angus Turnbull http://www.twinhelix.com
+
+// This is licensed under the GNU LGPL, version 2.1 or later.
+// For details, see: http://creativecommons.org/licenses/LGPL/2.1/
+
+var IEPNGFix = window.IEPNGFix || {};
+IEPNGFix.data = IEPNGFix.data || {};
+
+
+// This must be a path to a blank image, relative to the HTML document(s).
+// In production use I suggest '/images/blank.gif' or similar. That's all!
+IEPNGFix.blankImg = CFCT_BLANKIMG;
+
+
+IEPNGFix.fix = function(elm, src, t) {
+       // Applies an image 'src' to an element 'elm' using the DirectX filter.
+       // If 'src' is null, filter is disabled.
+       // Disables the 'hook' to prevent infinite recursion on setting BG/src.
+       // 't' = type, where background tile = 0, background = 1, IMG SRC = 2.
+
+       var h = this.hook.enabled;
+       this.hook.enabled = 0;
+
+       var f = 'DXImageTransform.Microsoft.AlphaImageLoader';
+               src = (src || '').replace(/\(/g, '%28').replace(/\)/g, '%29');
+
+       if (
+               src && !(/IMG|INPUT/.test(elm.nodeName) && (t != 2)) &&
+               elm.currentStyle.width == 'auto' && elm.currentStyle.height == 'auto'
+       ) {
+               elm.style.width = elm.offsetWidth + 'px';
+               elm.style.height = elm.clientHeight + 'px';
+               if (elm.currentStyle.display == 'inline') {
+                       elm.style.display = 'inline-block';
+               }
+       }
+
+       if (t == 1) {
+               elm.style.backgroundImage = 'url("' + this.blankImg + '")';
+       }
+       if (t == 2) {
+               elm.src = this.blankImg;
+       }
+
+       if (elm.filters[f]) {
+               elm.filters[f].enabled = src ? true : false;
+               if (src) {
+                       elm.filters[f].src = src;
+               }
+       } else if (src) {
+               elm.style.filter = 'progid:' + f + '(src="' + src +
+                       '",sizingMethod="' + (t == 2 ? 'scale' : 'crop') + '")';
+       }
+
+       this.hook.enabled = h;
+};
+
+
+IEPNGFix.process = function(elm, init) {
+       // Checks the onpropertychange event (on first 'init' run, a fake event)
+       // and calls the filter-applying-functions.
+
+       if (
+               !/MSIE (5\.5|6)/.test(navigator.userAgent) ||
+               typeof elm.filters == 'unknown'
+       ) {
+               return;
+       }
+       if (!this.data[elm.uniqueID]) {
+               this.data[elm.uniqueID] = {
+                       className: ''
+               };
+       }
+       var data = this.data[elm.uniqueID],
+               evt = init ? { propertyName: 'src,backgroundImage' } : event,
+               isSrc = /src/.test(evt.propertyName),
+               isBg = /backgroundImage/.test(evt.propertyName),
+               isPos = /width|height|background(Pos|Rep)/.test(evt.propertyName),
+               isClass = !init && ((elm.className != data.className) &&
+                       (elm.className || data.className));
+       if (!(isSrc || isBg || isPos || isClass)) {
+               return;
+       }
+       data.className = elm.className;
+       var blank = this.blankImg.match(/([^\/]+)$/)[1],
+               eS = elm.style,
+               eCS = elm.currentStyle;
+
+       // Required for Whatever:hover - erase set BG if className changes.
+       if (
+               isClass && (eS.backgroundImage.indexOf('url(') == -1 ||
+               eS.backgroundImage.indexOf(blank) > -1)
+       ) {
+               return setTimeout(function() {
+                       eS.backgroundImage = '';
+               }, 0);
+       }
+
+       // Foregrounds.
+       if (isSrc && elm.src &&  { IMG: 1, INPUT: 1 }[elm.nodeName]) {
+               if ((/\.png/i).test(elm.src)) {
+                       this.fix(elm, elm.src, 2);
+               } else if (elm.src.indexOf(blank) == -1) {
+                       this.fix(elm, '');
+               }
+       }
+
+       // Backgrounds.
+       var bgSrc = eCS.backgroundImage || eS.backgroundImage;
+       if ((bgSrc + elm.src).indexOf(blank) == -1) {
+               var bgPNG = bgSrc.match(/url[("']+(.*\.png[^\)"']*)[\)"']/i);
+               if (bgPNG) {
+                       if (this.tileBG && !{ IMG: 1, INPUT: 1 }[elm.nodeName]) {
+                               this.tileBG(elm, bgPNG[1]);
+                               this.fix(elm, '', 1);
+                       } else {
+                               if (data.tiles && data.tiles.src) {
+                                       this.tileBG(elm, '');
+                               }
+                               this.fix(elm, bgPNG[1], 1);
+                               this.childFix(elm);
+                       }
+               } else {
+                       if (data.tiles && data.tiles.src) {
+                               this.tileBG(elm, '');
+                       }
+                       this.fix(elm, '');
+               }
+       } else if ((isPos || isClass) && data.tiles && data.tiles.src) {
+               this.tileBG(elm, data.tiles.src);
+       }
+
+       if (init) {
+               this.hook.enabled = 1;
+               elm.attachEvent('onpropertychange', this.hook);
+       }
+};
+
+
+IEPNGFix.childFix = function(elm) {
+       // "hasLayout" fix for unclickable children inside PNG backgrounds.
+       var tags = [
+                       'a',
+                       'input',
+                       'select',
+                       'textarea',
+                       'button',
+                       'iframe',
+                       'object'
+               ],
+               t = tags.length,
+               tFix = [];
+       while (t--) {
+               var pFix = elm.all.tags(tags[t]),
+                       e = pFix.length;
+               while (e--) {
+                       tFix.push(pFix[e]);
+               }
+       }
+       t = tFix.length;
+       if (t && (/relative|absolute/i).test(elm.currentStyle.position)) {
+               alert('IEPNGFix: Unclickable children of element:' +
+                       '\n\n<' + elm.nodeName + (elm.id && ' id=' + elm.id) + '>');
+       }
+       while (t--) {
+               if (!(/relative|absolute/i).test(tFix[t].currentStyle.position)) {
+                       tFix[t].style.position = 'relative';
+               }
+       }
+};
+
+
+IEPNGFix.hook = function() {
+       if (IEPNGFix.hook.enabled) {
+               IEPNGFix.process(element, 0);
+       }
+};
+
+
+IEPNGFix.process(element, 1);
+
+</script>
+</public:component>
diff --git a/theme-blog.xenproject.org/carrington-blog/css/img.css b/theme-blog.xenproject.org/carrington-blog/css/img.css
new file mode 100644 (file)
index 0000000..b908c44
--- /dev/null
@@ -0,0 +1,147 @@
+/*
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+*/
+
+.rule,
+.rule-major,
+.rule-minor {
+       background-color:#fff;
+       background-repeat:no-repeat;
+       background-position:center;
+       border:0;
+}
+.rule {
+       background-image:url(../img/divider-ornament.gif);
+
+}
+.rule-major {
+       background-image:url(../img/comments-divider.gif);
+}
+.rule-minor {
+       background-image:url(../img/divider-ornament.gif);
+}
+.nav li li {
+       background:url(../img/dropdown-divider.gif) no-repeat center top;
+}
+.nav li li:first-child,
+.nav li li.first-child {
+       background:transparent;
+}
+.pagination,
+.pagination-single {
+       background-image:url(../img/grey-to-white-gradient.png);
+       background-repeat:repeat-x;
+       background-position:left top;
+}
+.close {
+       background-image: url(../img/header/texture-light.png) top center;
+}
+
+.full .comments-link a,
+.full .comments-link a:visited,
+.full .comments-link span,
+.excerpt .comments-link a,
+.excerpt .comments-link a:visited,
+.excerpt .comments-link span{
+       background: url(../img/comment.gif) no-repeat left center;
+       padding: 1px 0 0 20px;
+}
+.excerpt .comments-link a,
+.excerpt .comments-link a:visited,
+.excerpt .comments-link span{
+       width:120px;
+}
+.commentlist .bypostauthor {
+       background-image: url(../img/watermark-light.gif);
+       background-repeat:no-repeat;
+       background-position:left top;
+}
+
+form.comment-form {
+       background-image: url(../img/watermark-light.gif);
+       background-repeat:repeat-x;
+       background-position:left top;
+}
+
+#header {
+       background-image:url(../img/header/gradient-dark.png);
+}
+#header .wrapper {
+       background-image:url(../img/header/texture-dark.png);
+}
+#sub-header {
+       background-image: url(../img/sub-header-border-bottom.gif);
+       background-repeat:repeat-x;
+       background-position:left bottom;
+}
+#sidebar {
+       background:url(../img/sidebar-background.gif) no-repeat left top;
+       background-color: #fff !important;
+}
+#footer {
+       background-image: url(../img/footer/gradient-dark.png);
+}
+#footer .wrapper {
+       background: url(../img/footer/divider-ornament-wide-light.png) no-repeat center bottom;
+}
+#carrington-subscribe {
+       background: url(../img/divider-ornament.gif) no-repeat center bottom;
+}
+
+#carrington-subscribe a{
+       background:url(../img/rss-button.gif) no-repeat left top;
+}
+
+#carrington-about {
+       background: url(../img/divider-ornament.gif) no-repeat center bottom;
+}
+#carrington-about .about{
+       background:url(../img/watermark-light.gif) repeat-x left top;
+}
+
+/* Gallery
+=================================== */
+
+body#attachment #header {
+       background-image:url(../img/header/gradient-dark.png);
+       background-repeat:repeat-x;
+       background-position:center bottom;
+}
+body#attachment #header .wrapper {
+       background-position:center bottom;
+}
+.figure-info {
+       background:transparent url(../img/divider-ornament-wide-dark.png) no-repeat scroll center top;
+}
+.previous-attachment,
+.next-attachment {
+       padding-bottom:13px;
+}
+.previous-attachment {
+       background:url(../img/attachment/150px-flourish-left-dark.png) no-repeat right bottom;
+}
+.next-attachment{
+       background:url(../img/attachment/150px-flourish-right-dark.png) no-repeat left bottom;
+}
+
+/* Misc
+=================================== */
+
+#TB_title{
+       background-image: url(../img/header/texture-dark.png);
+       background-repeat:no-repeat;
+       background-position:center bottom;
+}
diff --git a/theme-blog.xenproject.org/carrington-blog/css/typography.css b/theme-blog.xenproject.org/carrington-blog/css/typography.css
new file mode 100644 (file)
index 0000000..de500f6
--- /dev/null
@@ -0,0 +1,251 @@
+/*
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+*/
+
+/* Reset: based on http://meyerweb.com/eric/tools/css/reset v1.0 | 20080212, sans table styles
+============================================================================================== */
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+hr{
+       margin: 0;
+       padding: 0;
+       border: 0;
+       outline: 0;
+       font-size: 100%;
+       vertical-align: baseline;
+       background: transparent;
+}
+blockquote, q {
+       quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+       content: '';
+       content: none;
+}
+:focus {
+       outline: 0;
+}
+cite,
+address {
+       display:inline;
+       font-style:normal;
+}
+
+/* Typography
+======================================================*/
+body {
+       background: #fff;
+       color: #51555c;
+       font: 12px/18px helvetica, arial, sans-serif;
+}
+code {
+       font-family: "Lucida Console", Monaco, monospace;
+}
+*[lang] {
+       font-style: italic;
+}
+del {
+       text-decoration: line-through;
+}
+acronym,
+.caps {
+       text-transform: uppercase;
+}
+.small-caps {
+       font-variant: small-caps;
+}
+acronym,
+.num,
+.caps,
+.small-caps {
+       letter-spacing: 0.1em;
+}
+pre {
+       overflow: auto;
+}
+textarea {
+       font: 12px/18px helvetica, arial, sans-serif;
+       padding: 3px;
+}
+/* Links */
+a,
+a:visited {
+       color: #a00004;
+       text-decoration: none;
+}
+/* specify all three for accessibility */
+a:focus,
+a:hover,
+a:active {
+       text-decoration: underline;
+}
+h1 a,
+h2 a,
+h3 a,
+h4 a,
+h5 a,
+h6 a,
+h1 a:visited,
+h2 a:visited,
+h3 a:visited,
+h4 a:visited,
+h5 a:visited,
+h6 a:visited {
+       color: #51555c;
+}
+h1 a:hover,
+h2 a:hover,
+h3 a:hover,
+h4 a:hover,
+h5 a:hover,
+h6 a:hover {
+       color: #a00004;
+       text-decoration: none;
+}
+/* elements with title attribute */
+abbr[title],
+acronym[title],
+dfn[title],
+span[title],
+del[title] {
+       cursor: help;
+}
+/* typogrify: inset initial double quotes. */
+.dquo {
+       margin-left: -.45em;
+}
+ /* fancy ampersands */
+.amp {
+       font-family: Baskerville, "Goudy Old Style", "Palatino", "Book Antiqua", serif;
+       font-size: 13px;
+       font-style: italic;
+}
+/* Font sizes and vertical measure */
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3 {
+       display:block;
+       margin-bottom:9px;
+}
+h1,
+.h1 {
+       font-size: 24px;
+       line-height:1;
+}
+h2,
+.h2 {
+       font-size: 18px;
+}
+h3,
+.h3 {
+       font-size: 14px;
+}
+p,
+pre,
+dl,
+ul,
+ol {
+       margin-bottom:18px;
+}
+blockquote {
+       border-left:2px solid #e9eaea;
+       margin:0 9px 9px;
+       padding-left:10px;
+}
+ol {
+       margin-left:36px;
+}
+dd {
+       margin-left:18px;
+}
+li ul,
+li ol {
+       margin-bottom: 0;
+}
+li,
+dd,
+.tight {
+       margin-bottom:9px;
+}
+ul li {
+       background: url(../img/arrow-bullet.gif) no-repeat left top;
+       list-style:none;
+       padding-left:12px;
+}
+acronym,
+.caps,
+.small {
+       font-size: 11.5px;
+}
+hr {
+       background:#ccc;
+       color:#ccc;
+       height:1px;
+       margin:0 30px 18px 30px;
+}
+.rule-major{
+       background-color:#e9eaea;
+}
+.rule,
+.rule-minor {
+       border-top:1px solid #cecfd1;
+       height:9px;
+       margin:0 0 18px;
+}
+.rule-major {
+       border-top:1px solid #cecfd1;
+       height:35px;
+       margin:0 0 18px;
+}
+.rule hr,
+.rule-minor hr,
+.rule-major hr {
+       display:none;
+}
+
+/* No formatting class */
+.plain,
+.plain li {
+       background:transparent;
+       border:0;
+       font-style:normal;
+       list-style:none;
+       margin:0;
+       padding:0;
+}
+.alt-font {
+       color: #999;
+       font-family: Georgia, Palatino, "Palatino Linotype", Baskerville, serif;
+       font-style:italic;
+}
+.alt-font a {
+       font-family:helvetica, arial, sans-serif;
+       font-style:normal;
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/error/404.php b/theme-blog.xenproject.org/carrington-blog/error/404.php
new file mode 100644 (file)
index 0000000..59c6f45
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+get_header();
+
+?>
+<div id="content">
+<p><?php _e('Sorry, we\'re not sure what you\'re looking for here.', 'carrington-blog'); ?></p>
+
+<?php
+
+cfct_form('search');
+
+?>
+</div><!--#content-->
+<?php 
+get_sidebar();
+
+get_footer();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/error/README.txt b/theme-blog.xenproject.org/carrington-blog/error/README.txt
new file mode 100644 (file)
index 0000000..51caf9f
--- /dev/null
@@ -0,0 +1,15 @@
+## error/
+
+This directory holds templates for error conditions. WordPress supports the 404 error out of the box, but you may want to create additional error templates for other conditions (not authorized, etc.).
+
+You can load an error template by using the following code:
+
+       cfct_error('not-authorized.php');
+
+
+### Example File Descriptions
+
+- *404.php* - used for "File not Found" errors.
+- *exit.php* - used to display a message when exiting on some error condition.
+
+This directory is not used by the Carrington engine (template naming conventions are not supported), it is provided solely for convenience and for better organization of these files.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/error/exit.php b/theme-blog.xenproject.org/carrington-blog/error/exit.php
new file mode 100644 (file)
index 0000000..415ca43
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+?>
+<html>
+<body><?php echo htmlspecialchars($str); ?></body>
+</html>
diff --git a/theme-blog.xenproject.org/carrington-blog/excerpt/README.txt b/theme-blog.xenproject.org/carrington-blog/excerpt/README.txt
new file mode 100644 (file)
index 0000000..6a796f1
--- /dev/null
@@ -0,0 +1,43 @@
+## excerpt/
+
+(This information is very similar to the _content/_)
+
+This directory holds the templates for displaying a the excerpt for a post. Typically this will include the title and some sub-set of meta information (date, categories, tags, author, etc.) and the full output of `the_content()`.
+
+
+## Post Context
+
+When choosing a template to use in the Post Context, the Carrington engine looks information (author, category, tags, custom fields, etc.) related to the post/page being shown.
+
+Commonly these templates are included by templates in the _loop/_; but are also useful for bringing in an atomic post representation via AJAX or placing one within another template.
+
+A "default" template is required, and will be used when there are no other templates that match a given post. This could be because no other templates have been created, or because the post in question doesn't match the templates that are available.
+
+You can create templates to be used with posts/pages given various conditions. For example, you might want to give all posts in a certain category some specific styling rules. Or perhaps posts with a certain custom field or by a specific author. This is accomplished by creating templates with file names that match these conditions, then placing them in the _content/_ directory. All templates other than _{dirname}-default.php_ are optional.
+
+The order in which these conditions are checked defaults to the following:
+
+1. author
+2. meta
+3. category
+4. role
+5. tag
+6. parent
+7. default
+
+however this order can be overridden with a plugin using the `cfct_single_match_order` hook.
+
+Once a template match has been found, no other processing is done.
+
+
+### Supported Templates (Post Context)
+
+- *{dirname}-default.php* - Used when there are no other templates that match for a given post/page.
+- *author-{username}.php* - Used when a user with that username authors a post/page. For example, a template with a file name of <code>author-jsmith.php</code> would be used for a poat/page by user <code>jsmith</code>. Any WordPres username can take the place of {username} in the file name.
+- *cat-{slug}.php* - Used when a post is in a given category. The category is matched by the "slug" - for example a post in category "General" (with a category slug of "general") could use a template of <code>cat-general.php</code>.
+- *meta-{key}.php* - Used when there is a custom field for the post/page matching the key listed in the file name. This is useful if you want to be able to flag posts as "photo" or similar, and give those posts some custom treatment. In this example, you could add a custom field of "photo" with a value of the URL of the image to a post/page and it would use a template of <code>meta-photo.php</code> if that template exists. The value does not matter in this match.
+- *meta-{key}-{value}.php* - Used when there is a custom field for the post/page matching the key and value listed in the file name. This is useful if you want to be able to flag posts as "featured" or similar, and give those posts some custom treatment. In this example, you could add a custom field of "featured" with a value of "yes" to a post/page and it would use a template of <code>meta-featured-yes.php</code> if that template exists.
+- *page.php* - Used when the content is being displayed is a page (not a post).
+- *parent-{slug}.php* - Used when a page is a child page of a specific parent page. The page is matched by the "slug" - for example a page under a parent page with slug of "example" could use a template of <code>parent-example.php</code>.
+- *role-{role}.php* - Used when a post/page is authored by a user with a particular role. The {role} is an all lowercase representation of the role string - for example, an author with an "Administrator" role might use a template of <code>role-administrator.php</code>. This is primarily useful if you have a set of authors that are given a Contributor role; or a Guest Columnist role or similar. Any WordPress role can take the place of {role} in the file name.
+- *tag-{slug}.php* - Used when a post has a certain tag applied to it. The tag is matched by the "slug" - for example a post with tag "Reference" (with a tag slug of "reference") could use a template of <code>tag-reference.php</code>.
diff --git a/theme-blog.xenproject.org/carrington-blog/excerpt/excerpt-default.php b/theme-blog.xenproject.org/carrington-blog/excerpt/excerpt-default.php
new file mode 100644 (file)
index 0000000..787eaa8
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+?>
+<div id="post-excerpt-<?php the_ID() ?>" <?php post_class('excerpt'); ?>>
+       <strong class="entry-title"><a href="<?php the_permalink() ?>" title="Permanent link to <?php the_title_attribute() ?>" rel="bookmark" rev="post-<?php the_ID(); ?>"><?php the_title(); ?></a></strong>
+       
+       <span class="date small"><abbr class="published" title="<?php the_time('Y-m-d\TH:i'); ?>"><?php the_time('F j, Y'); ?></abbr></span>
+       
+       <p class="categories filed alt-font"><?php _e('Posted in ', 'carrington-blog'); the_category(', ') ?>.</p>
+       
+       <span class="comments-link"><?php if (function_exists('akac_comments_link')) { akac_comments_link(); } else { comments_popup_link(__('No comments', 'carrington-blog'), __('1 comment', 'carrington-blog'), __('% comments', 'carrington-blog')); } ?></span>
+</div><!-- .excerpt -->
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/excerpt/search.php b/theme-blog.xenproject.org/carrington-blog/excerpt/search.php
new file mode 100644 (file)
index 0000000..62560df
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+?>
+<div id="post-search-<?php the_ID() ?>" <?php post_class('search'); ?>>
+       <h2 class="entry-title"><a href="<?php the_permalink() ?>" title="Permanent link to <?php the_title_attribute() ?>" rel="bookmark"><?php the_title() ?></a></h2>
+       <div class="entry-content">
+               <?php the_excerpt() ?>
+               <div class="clear"></div>
+       </div><!--.entry-content-->
+       <p class="by-line">
+               <span class="author vcard">
+                       <?php printf(__('<span class="by alt-font">By</span> %s', 'carrington-blog'), '<a class="url fn" href="'.get_author_link(false, get_the_author_ID(), $authordata->user_nicename).'" title="View all posts by ' . attribute_escape($authordata->display_name) . '">'.get_the_author().'</a>'); ?>
+               </span>
+               <span class="date"><span class="ndash alt-font">&ndash;</span> <abbr class="published" title="<?php the_time('Y-m-d\TH:i'); ?>"><?php the_time('F j, Y'); ?></abbr></span>
+       </p>
+</div><!-- .post -->
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/footer.php b/theme-blog.xenproject.org/carrington-blog/footer.php
new file mode 100644 (file)
index 0000000..bbf2877
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// NOTE: this file is here for compatibility reasons - active templates are in the footer/ dir 
+
+cfct_footer();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/footer/README.txt b/theme-blog.xenproject.org/carrington-blog/footer/README.txt
new file mode 100644 (file)
index 0000000..17321b0
--- /dev/null
@@ -0,0 +1,42 @@
+## footer/
+
+The standard _footer.php_ file (included using the WordPress `get_footer()` function) in Carrington is set up to call the `cfct_footer()` function, which will choose the appropriate footer file from this directory - based on the context of the given page. This can be useful if you want to have pages to have a custom footer, or perhaps a certain category to have a custom footer.
+
+
+## General Context
+
+When choosing a template to use in the General Context, the Carrington engine looks at the type of request is being fulfilled. It will identify the request as the home page, a category archive, and individual post, etc.
+
+There is additional checking done for single post requests. All options in the Content Context are supported here with a 'single-' prefix added to the file. See specifics below.
+
+A "default" template is required, and will be used when there are no other templates that match a given comment. This could be because no other templates have been created, or because the comment in question doesn't match the templates that are available.
+
+By default, conditions are checked in this order:
+
+1. author
+2. role
+3. category
+4. tag
+5. single
+6. default (home, search, archive, 404, etc.)
+
+This can be altered using the `cfct_general_match_order` hook.
+
+
+### Supported Templates (General Context)
+
+- *{dirname}-default.php* (or default.php) - Used when there are no other templates that match for a given page/post.
+- *archive.php* - Used for date archives or if there are no specific category, author or tag templates.
+- *author.php* - Used for author archive lists.
+- *author-{username}.php* - Used when the post/page is authored by a specific user. For example, a template with a file name of _author-jsmith.php_ would be used for a post/page by user _jsmith_. Any WordPress username can take the place of {username} in the file name.
+- *role-{rolename}.php - Used when the post author has a particular role. This might be the role of _contributor_, _author_, _editor_, etc. and use a file of _role-contributor.php_, _role_author.php_, etc. where the role name takes the place of the {rolename} in the file name.
+- *category.php* - Used for category archive lists.
+- *cat-{slug}.php* - Used fr displaying a given category. The category is matched by the "slug" - for example a post in category "General" (with a category slug of "general") could use a template of _cat-general.php_.
+- *home.php* - Used when on the home page.
+- *page.php* - Used for pages that do not match any other contextual templates.
+- *search.php* - Used when displaying search results.
+- *single.php* - Used for single post pages.
+- *single-{content context filenames}.php* - Used for single post pages.
+- *tag.php* - Used for tag archive lists.
+- *tag-{slug}.php* - Used for displaying a given tag. The tag is matched by the "slug" - for example a post in tag "News" (with a tag slug of "news") could use a template of _tag-news.php_.
+
diff --git a/theme-blog.xenproject.org/carrington-blog/footer/footer-default-old.php b/theme-blog.xenproject.org/carrington-blog/footer/footer-default-old.php
new file mode 100644 (file)
index 0000000..5675d78
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+?>
+                       <div class="clear"></div>
+                       </div><!-- .wrapper -->
+               </div><!-- #main -->
+               <hr class="lofi" />
+               <div id="footer" class="section">
+                       <div class="wrapper">           
+  <p id="generator-link"><?php _e('Proudly powered by <a href="http://wordpress.org/" rel="generator">WordPress</a> running on a <a href="http://www.slicehost.com" title="WordPress Themes">Slicehost Xen VPS</a>.', 'carrington-blog'); ?></p>
+<?php
+if (cfct_get_option('cfct_credit') == 'yes') {
+?>
+                               <p id="developer-link"><?php printf(__('<a href="http://crowdfavorite.com" title="Custom WordPress development, design and backup services." rel="developer designer">%s</a>', 'carrington-blog'), 'Carrington Theme by Crowd Favorite'); ?></p>
+<?php
+}
+?>
+                       </div><!--.wrapper-->
+               </div><!--#footer -->
+       </div><!--#page-->
+       <?php wp_footer() ?>
+</body>
+</html>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/footer/footer-default.php b/theme-blog.xenproject.org/carrington-blog/footer/footer-default.php
new file mode 100644 (file)
index 0000000..5675d78
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+?>
+                       <div class="clear"></div>
+                       </div><!-- .wrapper -->
+               </div><!-- #main -->
+               <hr class="lofi" />
+               <div id="footer" class="section">
+                       <div class="wrapper">           
+  <p id="generator-link"><?php _e('Proudly powered by <a href="http://wordpress.org/" rel="generator">WordPress</a> running on a <a href="http://www.slicehost.com" title="WordPress Themes">Slicehost Xen VPS</a>.', 'carrington-blog'); ?></p>
+<?php
+if (cfct_get_option('cfct_credit') == 'yes') {
+?>
+                               <p id="developer-link"><?php printf(__('<a href="http://crowdfavorite.com" title="Custom WordPress development, design and backup services." rel="developer designer">%s</a>', 'carrington-blog'), 'Carrington Theme by Crowd Favorite'); ?></p>
+<?php
+}
+?>
+                       </div><!--.wrapper-->
+               </div><!--#footer -->
+       </div><!--#page-->
+       <?php wp_footer() ?>
+</body>
+</html>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/footer/footer-default.php~ b/theme-blog.xenproject.org/carrington-blog/footer/footer-default.php~
new file mode 100644 (file)
index 0000000..1e437fb
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+?>
+                       <div class="clear"></div>
+                       </div><!-- .wrapper -->
+               </div><!-- #main -->
+               <hr class="lofi" />
+               <div id="footer" class="section">
+                       <div class="wrapper">           
+                               <p id="generator-link"><?php _e('Proudly powered by <a href="http://wordpress.org/" rel="generator">WordPress</a> and <a href="http://carringtontheme.com" title="Carrington theme for WordPress">Carrington</a>.', 'carrington-blog'); ?></p>
+<?php
+if (cfct_get_option('cfct_credit') == 'yes') {
+?>
+                               <p id="developer-link"><?php printf(__('<a href="http://crowdfavorite.com" title="Custom WordPress development, design and backup services." rel="developer designer">%s</a>', 'carrington-blog'), 'Carrington Theme by Crowd Favorite'); ?></p>
+<?php
+}
+?>
+                       </div><!--.wrapper-->
+               </div><!--#footer -->
+       </div><!--#page-->
+       <?php wp_footer() ?>
+</body>
+</html>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/forms/README.txt b/theme-blog.xenproject.org/carrington-blog/forms/README.txt
new file mode 100644 (file)
index 0000000..07650e7
--- /dev/null
@@ -0,0 +1,18 @@
+## forms/
+
+### Overview
+
+This directory holds forms that may be used in various places throughout the theme. 
+
+These forms can be included in other theme files using the following code:
+
+       <?php cfct_form('comment'); ?>
+
+Where `comment.php` is the name of the file in the _forms/_ directory that you want to include.
+
+
+### Example File Descriptions
+
+Included by default are the "post comment" form (_comment.php_) and the "search" form (_search.php_). Create as many forms as you like and store them here to keep them organized.
+
+This directory is not used by the Carrington engine (template naming conventions are not supported), it is provided solely for convenience and for better organization of these files.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/forms/comment.php b/theme-blog.xenproject.org/carrington-blog/forms/comment.php
new file mode 100644 (file)
index 0000000..e7f8600
--- /dev/null
@@ -0,0 +1,98 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+global $post, $user_ID, $user_identity;
+
+$commenter = wp_get_current_commenter();
+extract($commenter);
+
+$req = get_option('require_name_email');
+
+// if post is open to new comments
+if ('open' == $post->comment_status) {
+       // if you need to be regestered to post comments..
+       if ( get_option('comment_registration') && !$user_ID ) { ?>
+
+<p id="you-must-be-logged-in-to-comment"><?php printf(__('You must be <a href="%s">logged in</a> to post a comment.', 'carrington-blog'), get_bloginfo('wpurl').'/wp-login.php?redirect_to='.urlencode(get_permalink())); ?></p>
+
+<?php
+       }
+       else { 
+?>
+
+<div id="respond-p<?php echo $post->ID; ?>">
+       <form action="<?php echo trailingslashit(get_bloginfo('wpurl')); ?>wp-comments-post.php" method="post" class="comment-form">
+               <p class="comment-form-comment tight">
+               <label class="h3" for="comment-p<?php echo $post->ID; ?>"><?php 
+               if (function_exists('comment_form_title')) {
+                       comment_form_title();
+                       echo ' <em id="cancel-comment-reply">', cancel_comment_reply_link(), '</em>';
+               }
+               else {
+                       _e('Post a comment', 'carrington-blog');
+               }
+?></label>
+                       <br class="lofi" />
+                       <span class="comment-form-comment-area">
+                               <textarea id="comment-p<?php echo $post->ID; ?>" name="comment" rows="8" cols="40"></textarea><br />
+                               <em class="some-html-is-ok"><abbr title="<?php printf(__('You can use: %s', 'carrington-blog'), allowed_tags()); ?>"><?php _e('Some HTML is OK', 'carrington-blog'); ?></abbr></em>
+                       </span>
+               </p>
+<?php // if you're not logged in...
+               if (!$user_ID) {
+?>
+               <p class="comment-form-user-info tight">
+                       <input type="text" id="author-p<?php echo $post->ID; ?>" name="author" value="<?php echo $comment_author; ?>" size="22" />
+                       <label for="author-p<?php echo $post->ID; ?>"><?php _e('Name', 'carrington-blog'); if ($req) { echo ' <em>' , _e('(required)', 'carrington-blog'), '</em>'; } ?></label>
+               </p><!--/name-->
+               <p class="comment-form-user-info tight">
+                       <input type="text" id="email-p<?php echo $post->ID; ?>" name="email" value="<?php echo $comment_author_email; ?>" size="22" />
+                       <label for="email-p<?php echo $post->ID; ?>"><?php
+                       _e('Email ', 'carrington-blog');
+                       $req ? $email_note = __('(required, but never shared)', 'carrington-jam') : $email_note = __('(never shared)', 'carrington-jam');
+                       echo ' <em>'.$email_note.'</em>';
+?></label>
+               </p><!--/email-->
+               <p class="comment-form-user-info tight">
+                       <input type="text" id="url-p<?php echo $post->ID; ?>" name="url" value="<?php echo $comment_author_url; ?>" size="22" />
+                       <label title="<?php _e('Your website address', 'carrington-blog'); ?>" for="url-p<?php echo $post->ID; ?>"><?php _e('Web', 'carrington-blog'); ?></label>
+               </p><!--/url-->
+<?php 
+               } 
+?>
+               <p class="tight">
+                       <input name="submit" type="submit" value="<?php _e('Post comment', 'carrington-blog'); ?>" />
+                       <span class="comment-form-trackback"><?php printf(__('or, reply to this post via <a rel="trackback" href="%s">trackback</a>.', 'carrington-blog'), get_trackback_url()); ?></span>
+               </p>
+<?php // if you're logged in...
+               if ($user_ID) {
+?>
+               <p class="logged-in tight"><?php printf(__('Logged in as <a href="%s">%s</a>. ', 'carrington-blog'), get_bloginfo('wpurl').'/wp-admin/profile.php', $user_identity); wp_loginout(); ?>.</p>
+<?php
+               }
+               cfct_comment_id_fields();
+               do_action('comment_form', $post->ID);
+?>
+       </form>
+</div>
+<?php 
+       } // If registration required and not logged in 
+} // If you delete this the sky will fall on your head
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/forms/search.php b/theme-blog.xenproject.org/carrington-blog/forms/search.php
new file mode 100644 (file)
index 0000000..792371d
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+if (get_option('permalink_structure') != '') {
+       $onsubmit = "location.href=this.action+'search/'+encodeURIComponent(this.s.value).replace(/%20/g, '+'); return false;";
+}
+else {
+       $onsubmit = '';
+}
+
+?>
+
+<form method="get" id="cfct-search" action="<?php echo trailingslashit(get_bloginfo('url')); ?>" onsubmit="<?php echo $onsubmit; ?>">
+       <div>
+               <input type="text" id="cfct-search-input" name="s" value="<?php echo wp_specialchars($s, 1); ?>" size="15" />
+               <input type="submit" name="submit_button" value="<?php _e('Search', 'carrington-blog'); ?>" />
+       </div>
+</form>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/functions.php b/theme-blog.xenproject.org/carrington-blog/functions.php
new file mode 100644 (file)
index 0000000..ce1ec69
--- /dev/null
@@ -0,0 +1,260 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+load_theme_textdomain('carrington-blog');
+
+define('CFCT_DEBUG', false);
+define('CFCT_PATH', trailingslashit(TEMPLATEPATH));
+define('CFCT_HOME_LIST_LENGTH', 5);
+define('CFCT_HOME_LATEST_LENGTH', 250);
+
+$cfct_options = array(
+       'cfct_home_column_1_cat',
+       'cfct_home_column_1_content',
+       'cfct_latest_limit_1',
+       'cfct_list_limit_1',
+       'cfct_home_column_2_cat',
+       'cfct_home_column_2_content',
+       'cfct_latest_limit_2',
+       'cfct_list_limit_2',
+       'cfct_home_column_3_cat',
+       'cfct_home_column_3_content',
+       'cfct_latest_limit_3',
+       'cfct_list_limit_3',
+       'cfct_ajax_load',
+       'cfct_lightbox',
+       'cfct_posts_per_archive_page',
+       'cfct_custom_colors',
+       'cfct_custom_header_image',
+       'cfct_header_image_type',
+       'cfct_footer_image_type',
+       'cfct_header_image',
+       'cfct_css_background_images',
+);
+
+$cfct_color_options = array(
+       'cfct_header_background_color' => '51555c',
+       'cfct_header_text_color' => 'cecfd1',
+       'cfct_header_link_color' => 'ffffff',
+       'cfct_header_nav_background_color' => 'e9eaea',
+       'cfct_header_nav_link_color' => 'a00004',
+       'cfct_header_nav_text_color' => '51555c',
+       'cfct_page_title_color' => '51555c',
+       'cfct_page_subtitle_color' => '51555c',
+       'cfct_link_color' => 'a00004',
+       'cfct_footer_background_color' => '51555c',
+       'cfct_footer_text_color' => '999999',
+       'cfct_footer_link_color' => 'CECFD1',
+);
+
+foreach ($cfct_color_options as $k => $default) {
+       $cfct_options[] = $k;
+}
+
+function cfct_blog_option_defaults($options) {
+       $options['cfct_list_limit_1'] = CFCT_HOME_LIST_LENGTH;
+       $options['cfct_latest_limit_1'] = CFCT_HOME_LATEST_LENGTH;
+       $options['cfct_list_limit_2'] = CFCT_HOME_LIST_LENGTH;
+       $options['cfct_latest_limit_2'] = CFCT_HOME_LATEST_LENGTH;
+       $options['cfct_list_limit_3'] = CFCT_HOME_LIST_LENGTH;
+       $options['cfct_latest_limit_3'] = CFCT_HOME_LATEST_LENGTH;
+       $options['cfct_ajax_load'] = 'yes';
+       $options['cfct_custom_colors'] = 'no';
+       $options['cfct_custom_header_image'] = 'no';
+       $options['cfct_css_background_images'] = 'yes';
+       return $options;
+}
+add_filter('cfct_option_defaults', 'cfct_blog_option_defaults');
+
+
+function cfct_blog_init() {
+       if (cfct_get_option('cfct_ajax_load') == 'yes') {
+               cfct_ajax_load();
+       }
+       if (cfct_get_option('cfct_lightbox') != 'no' && !is_admin()) {
+               wp_enqueue_script('cfct_thickbox', get_bloginfo('template_directory').'/carrington-core/lightbox/thickbox.js', array('jquery'), '1.0');
+// in the future we'll use this, but for now we want 2.5 compatibility
+//             wp_enqueue_style('jquery-lightbox', get_bloginfo('template_directory').'/carrington-core/lightbox/css/lightbox.css');
+       }
+}
+add_action('init', 'cfct_blog_init');
+
+wp_enqueue_script('jquery');
+wp_enqueue_script('carrington', get_bloginfo('template_directory').'/js/carrington.js', array('jquery'), '1.0');
+
+// Filter comment reply link to work with namespaced comment-reply javascript.
+add_filter('cancel_comment_reply_link', 'cfct_get_cancel_comment_reply_link', 10, 3);
+
+function cfct_blog_head() {
+// see enqueued style in cfct_blog_init, we'll activate that in the future
+       if (cfct_get_option('cfct_lightbox') != 'no') {
+               echo '
+<link rel="stylesheet" type="text/css" media="screen" href="'.get_bloginfo('template_directory').'/carrington-core/lightbox/css/thickbox.css" />
+               ';
+       }
+       cfct_get_option('cfct_ajax_load') == 'no' ? $ajax_load = 'false' : $ajax_load = 'true';
+       echo '
+<script type="text/javascript">
+var CFCT_URL = "'.get_bloginfo('url').'";
+var CFCT_AJAX_LOAD = '.$ajax_load.';
+</script>
+       ';
+       if (cfct_get_option('cfct_lightbox') != 'no') {
+               echo '
+<script type="text/javascript">
+tb_pathToImage = "' . get_bloginfo('template_directory') . '/carrington-core/lightbox/img/loadingAnimation.gif";
+jQuery(function($) {
+       $("a.thickbox").each(function() {
+               var url = $(this).attr("rel");
+               var post_id = $(this).parents("div.post").attr("id");
+               $(this).attr("href", url).attr("rel", post_id);
+       });
+});
+</script>
+               ';
+       }
+// preview
+       if (isset($_GET['cfct_action']) && $_GET['cfct_action'] == 'custom_color_preview' && current_user_can('manage_options')) {
+               cfct_blog_custom_colors('preview');
+       }
+       else if (cfct_get_option('cfct_custom_colors') == 'yes') {
+               cfct_blog_custom_colors();
+       }
+       if (cfct_get_option('cfct_custom_header_image') == 'yes') {
+               $header_image = cfct_get_option('cfct_header_image');
+               if ($header_image != 0 && $img = wp_get_attachment_image_src($header_image, 'large')) {
+?>
+<style type="text/css">
+#header .wrapper {
+       background-image: url(<?php echo $img[0]; ?>);
+       background-repeat: no-repeat;
+       height: <?php echo $img[2]; ?>px;
+}
+</style>
+<?php
+               }
+               else {
+?>
+<style type="text/css">
+#header .wrapper {
+       background-image: url();
+}
+</style>
+<?php
+               }
+       }
+}
+add_action('wp_head', 'cfct_blog_head');
+
+function cfct_blog_custom_colors($type = 'option') {
+       $colors = cfct_get_custom_colors($type);
+       if (get_option('cfct_header_image_type') == 'light') {
+               $header_img_type = 'light';
+               $header_grad_type = 'dark';
+       }
+       else {
+               $header_img_type = 'dark';
+               $header_grad_type = 'light';
+       }
+       get_option('cfct_footer_image_type') == 'light' ? $footer_img_type = 'light' : $footer_img_type = 'dark';
+?>
+<style type="text/css">
+#header {
+       background-color: #<?php echo $colors['cfct_header_background_color']; ?>;
+       color: #<?php echo $colors['cfct_header_text_color']; ?>;
+}
+#header a,
+#header a:visited {
+       color: #<?php echo $colors['cfct_header_link_color']; ?>;
+}
+#sub-header,
+.nav ul{
+       background-color: #<?php echo $colors['cfct_header_nav_background_color']; ?>;
+       color: #<?php echo $colors['cfct_header_nav_text_color']; ?>;
+}
+#sub-header a,
+#sub-header a:visited,
+.nav li li a,
+.nav li li a:visited {
+       color: #<?php echo $colors['cfct_header_nav_link_color']; ?> !important;
+}
+h1,
+h1 a,
+h1 a:hover,
+h1 a:visited {
+       color: #<?php echo $colors['cfct_page_title_color']; ?>;
+}
+h2,
+h2 a,
+h2 a:hover,
+h2 a:visited {
+       color: #<?php echo $colors['cfct_page_subtitle_color']; ?>;
+}
+a,
+a:hover,
+a:visited {
+       color: #<?php echo $colors['cfct_link_color']; ?>;
+}
+.hentry .edit,
+.hentry .edit a,
+.hentry .edit a:visited,
+.hentry .edit a:hover,
+.comment-reply-link,
+.comment-reply-link:visited,
+.comment-reply-link:hover {
+       background-color: #<?php echo $colors['cfct_link_color']; ?>;
+}
+#footer {
+       background-color: #<?php echo $colors['cfct_footer_background_color']; ?>;
+       color: #<?php echo $colors['cfct_footer_text_color']; ?>;
+}
+#footer a,
+#footer a:visited {
+       color: #<?php echo $colors['cfct_footer_link_color']; ?>;
+}
+#footer p#developer-link a,
+#footer p#developer-link a:visited {
+       background-image: url(<?php bloginfo('template_directory'); ?>/img/footer/by-crowd-favorite-<?php echo $footer_img_type; ?>.png);
+}
+<?php
+       if (cfct_get_option('cfct_css_background_images') != 'no') {
+?>
+#header {
+       background-image: url(<?php bloginfo('template_directory'); ?>/img/header/gradient-<?php echo $header_grad_type; ?>.png);
+}
+#header .wrapper {
+       background-image: url(<?php bloginfo('template_directory'); ?>/img/header/texture-<?php echo $header_img_type; ?>.png);
+}
+#footer {
+       background-image: url(<?php bloginfo('template_directory'); ?>/img/footer/gradient-<?php echo $footer_img_type; ?>.png);
+}
+<?php
+       }
+?>
+</style>
+<?php
+
+}
+
+include_once(CFCT_PATH.'functions/admin.php');
+include_once(CFCT_PATH.'functions/sidebars.php');
+
+include_once(CFCT_PATH.'carrington-core/carrington.php');
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/functions/README.txt b/theme-blog.xenproject.org/carrington-blog/functions/README.txt
new file mode 100644 (file)
index 0000000..e262d06
--- /dev/null
@@ -0,0 +1,5 @@
+## functions/
+
+This directory contains custom features and functionality for this particular Carrington based theme.
+
+This directory is not used by the Carrington engine (template naming conventions are not supported), it is provided solely for convenience and for better organization of these files.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/functions/admin.php b/theme-blog.xenproject.org/carrington-blog/functions/admin.php
new file mode 100644 (file)
index 0000000..6cd268d
--- /dev/null
@@ -0,0 +1,270 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_blog_settings_form() {
+       global $cfct_color_options;
+       $ajax_load_options = '';
+       $color_options = '';
+       $lightbox_options = '';
+       $values = array(
+               'yes' => __('Yes', 'carrington-blog'),
+               'no' => __('No', 'carrington-blog'),
+       );
+       $settings = array(
+               'cfct_ajax_load',
+               'cfct_custom_colors',
+               'cfct_custom_header_image',
+               'cfct_lightbox',
+               'cfct_css_background_images',
+       );
+       foreach ($values as $k => $v) {
+               foreach ($settings as $setting) {
+                       $options = $setting.'_options';
+                       if ($k == cfct_get_option($setting)) {
+                               $selected = 'selected="selected"';
+                       }
+                       else {
+                               $selected = '';
+                       }
+                       $$options .= "\n\t<option value='$k' $selected>$v</option>";
+               }
+       }
+       $cfct_posts_per_archive_page = get_option('cfct_posts_per_archive_page');
+       if (intval($cfct_posts_per_archive_page) == 0) {
+               $cfct_posts_per_archive_page = 25;
+       }
+       cfct_get_option('cfct_custom_colors') == 'no' ? $colors_class = 'hidden' : $colors_class = '';
+       cfct_get_option('cfct_custom_header_image') == 'no' ? $header_image_class = 'hidden' : $header_image_class = '';
+       $html = '
+               <table class="form-table">
+                       <tbody>
+                               <tr valign="top">
+                                       <th scope="row">'.sprintf(__('Design', 'carrington-blog'), $key).'</td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_css_background_images">'.__('Show Pretty Background Images:', 'carrington-blog').'</label>
+                                                               <select name="cfct_css_background_images" id="cfct_css_background_images">'.$cfct_css_background_images_options.'</select>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_custom_colors">'.__('Customize Colors:', 'carrington-blog').'</label>
+                                                               <select name="cfct_custom_colors" id="cfct_custom_colors">'.$cfct_custom_colors_options.'</select>
+                                                       </p>
+                                                       <fieldset class="'.$colors_class.'" id="cfct_color_options_panel">
+                                                               <legend>'.__('Custom Colors', 'carrington-blog').'</legend>
+       ';
+       foreach ($cfct_color_options as $option => $default) {
+               $value = get_option($option);
+               $value == '' ? $value = $default : $value = attribute_escape($value);
+               $label = ucwords(str_replace(
+                       array('cfct_', '_'),
+                       array('', ' '),
+                       $option
+               ));
+               $html .= '
+                                                               <p>
+                                                                       <label for="'.$option.'">'.__($label.':', 'carrington-blog').'</label>
+                                                                       #<input type="text" name="'.$option.'" id="'.$option.'" value="'.$value.'" size="6" maxlength="6" class="cfct_colorpicker" />
+                                                               </p>
+               ';
+       }
+       $html .= '
+                                                               <p class="submit">
+                                                                       <input type="hidden" name="cfct_header_image_type" id="cfct_header_image_type" value="dark" />
+                                                                       <input type="hidden" name="cfct_footer_image_type" id="cfct_footer_image_type" value="dark" />
+                                                                       <input id="reset_colors" type="reset" name="reset_button" value="'.__('Reset to Default Colors', 'carrington-blog').'" />
+                                                                       <a href="#" id="preview_colors" class="thickbox button" title="'.__('Custom Color Preview - Remember to Save!', 'carrington-blog').'">'.__('Preview', 'carrington-blog').'</a>
+                                                               </p>
+                                                       </fieldset>
+                                                       <p>
+                                                               <label for="cfct_custom_header_image">'.__('Customize Header Image:', 'carrington-blog').'</label>
+                                                               <select name="cfct_custom_header_image" id="cfct_custom_header_image">'.$cfct_custom_header_image_options.'</select>
+                                                       </p>
+                                                       <fieldset class="'.$header_image_class.'" id="cfct_header_image_panel">
+                                                       '.cfct_header_image_form().'
+                                                       </fieldset>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+                       </tbody>
+               </table>
+               <table class="form-table">
+                       <tbody>
+                               <tr valign="top">
+                                       <th scope="row">'.sprintf(__('Behavior', 'carrington-blog'), $key).'</td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_ajax_load">'.__('Load archives and comments with AJAX:', 'carrington-blog').'</label>
+                                                               <select name="cfct_ajax_load" id="cfct_ajax_load">'.$cfct_ajax_load_options.'</select>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_lightbox">'.__('Use a lightbox effect for image galleries:', 'carrington').'</label>
+                                                               <select name="cfct_lightbox" id="cfct_lightbox">'.$cfct_lightbox_options.'</select>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_posts_per_archive_page">'.__('Posts shown on archives pages:', 'carrington-blog').'</label>
+                                                               <input type="text" name="cfct_posts_per_archive_page" id="cfct_posts_per_archive_page" value="'.$cfct_posts_per_archive_page.'" size="3" />
+                                                       </p>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+                       </tbody>
+               </table>
+       ';
+       echo $html;
+}
+add_action('cfct_settings_form_top', 'cfct_blog_settings_form');
+
+function cfct_blog_admin_js() {
+       global $cfct_color_options;
+?>
+<script type="text/javascript">
+jQuery(function($) {
+       $('input.cfct_colorpicker').each(function() {
+               cfct_color_preview($(this), $(this).val());
+               var id = $(this).attr('id');
+               $('#' + id).ColorPicker({
+                       onSubmit: function(hsb, hex, rgb) {
+                               $('#' + id).val(hex.toLowerCase()).each(function() {
+                                       cfct_color_preview($(this), hex, rgb);
+                               });
+                       },
+                       onChange: function(hsb, hex, rgb) {
+                               $('#' + id).val(hex.toLowerCase()).each(function() {
+                                       cfct_color_preview($(this), hex, rgb);
+                               });
+                       },
+                       onBeforeShow: function () {
+                               $(this).ColorPickerSetColor(this.value);
+                       }
+               })
+               .bind('keyup', function() {
+                       $(this).val($(this).val().toLowerCase()).ColorPickerSetColor(this.value).each(function() {
+                               cfct_color_preview($(this), this.value);
+                       });
+               });
+       });
+       $('#cfct_custom_colors').change(function() {
+               if ($(this).val() == 'yes') {
+                       $('#cfct_color_options_panel').slideDown();
+               }
+               else {
+                       $('#cfct_color_options_panel').slideUp();
+               }
+       });
+       $('#cfct_custom_header_image').change(function() {
+               if ($(this).val() == 'yes') {
+                       $('#cfct_header_image_panel').slideDown();
+               }
+               else {
+                       $('#cfct_header_image_panel').slideUp();
+               }
+       });
+       $('#reset_colors').click(function() {
+               cfct_reset_colors();
+               return false;
+       });
+});
+cfct_reset_colors = function() {
+<?php
+       foreach ($cfct_color_options as $key => $default) {
+               echo '  jQuery("#'.$key.'").val("'.$default.'").each(function() { cfct_color_preview(jQuery(this), "'.$default.'"); });'."\n";
+       }
+?>
+}
+cfct_set_image_types = function() {
+       areas = ['header', 'footer'];
+       for (var i = 0; i < areas.length; i++) {
+               var area = areas[i];
+               var rgb = getRGB(jQuery('#cfct_' + area + '_background_color').val());
+               var brightness = (rgb.r + rgb.g + rgb.b) / 3;
+               brightness > 127 ? img = 'dark' : img = 'light';
+               jQuery('#cfct_' + area + '_image_type').val(img);
+       }
+}
+cfct_color_preview = function(elem, hex) {
+       var rgb = getRGB(hex);
+       var brightness = (rgb.r + rgb.g + rgb.b) / 3;
+       brightness > 127 ? color = '#000' : color = '#fff';
+       jQuery(elem).css({
+               backgroundColor: '#' + hex,
+               color: color
+       });
+       cfct_set_image_types();
+       cfct_set_preview_url();
+}
+cfct_set_preview_url = function() {
+       var preview_url = '<?php echo trailingslashit(bloginfo('home')); ?>?cfct_action=custom_color_preview';
+<?php
+foreach ($cfct_color_options as $k => $v) {
+echo 'preview_url += "&'.$k.'=" + encodeURIComponent(jQuery("#'.$k.'").val());';
+}
+?>
+       var H = jQuery(window).height();
+       var W = jQuery(window).width();
+       jQuery('#preview_colors').attr('href', preview_url + '&TB_iframe=true&width=' + ( W - 110 ) + '&height=' + ( H - 100 ));
+
+}
+</script>
+<?php
+}
+if ($_GET['page'] == 'carrington-settings') {
+       add_action('admin_head', 'cfct_blog_admin_js');
+}
+
+function cfct_blog_admin_css() {
+// override default WP admin setting
+?>
+<style type="text/css">
+.colorpicker input[type="text"] {
+       -moz-box-sizing:content-box;
+}
+#cfct_color_options_panel {
+       background: #fff;
+       border: 1px solid #ccc;
+       padding: 0 20px;
+}
+#cfct_color_options_panel legend {
+       font-weight: bold;
+       padding: 0 5px;
+}
+#cfct_header_image_panel {
+       padding: 0;
+}
+#reset_colors {
+       float: right;
+}
+#TB_title {
+       background-color: #222;
+       color: #cfcfcf;
+}
+</style>
+<?php
+       echo '
+<link rel="stylesheet" type="text/css" media="screen" href="'.get_bloginfo('template_directory').'/carrington-core/lightbox/css/thickbox.css" />
+       ';
+}
+// our copy of thickbox used for color previews
+if (is_admin() && $_GET['page'] == 'carrington-settings') {
+       add_action('admin_head', 'cfct_blog_admin_css');
+       wp_enqueue_script('cfct_thickbox', get_bloginfo('template_directory').'/carrington-core/lightbox/thickbox.js', array('jquery'), '1.0');
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/functions/sidebars.php b/theme-blog.xenproject.org/carrington-blog/functions/sidebars.php
new file mode 100644 (file)
index 0000000..c706499
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+if (function_exists('register_sidebar')) {
+       register_sidebar(
+               array(
+                       'name' => 'Primary Sidebar',
+                       'before_widget' => '<div id="%1$s" class="widget %2$s">',
+                       'after_widget' => '<div class="clear"></div></div>',
+                       'before_title' => '<h2 class="widget-title">',
+                       'after_title' => '</h2>'
+               )
+       );
+       register_sidebar(
+               array(
+                       'name' => 'Secondary Sidebar',
+                       'before_widget' => '<div id="%1$s" class="widget %2$s">',
+                       'after_widget' => '<div class="clear"></div></div>',
+                       'before_title' => '<h2 class="widget-title">',
+                       'after_title' => '</h2>'
+               )
+       );
+}
+
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/header.php b/theme-blog.xenproject.org/carrington-blog/header.php
new file mode 100644 (file)
index 0000000..9b00958
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// NOTE: this file is here for compatibility reasons - active templates are in the header/ dir 
+
+cfct_header();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/header/README.txt b/theme-blog.xenproject.org/carrington-blog/header/README.txt
new file mode 100644 (file)
index 0000000..9ac0bd9
--- /dev/null
@@ -0,0 +1,42 @@
+## header/
+
+The standard _header.php_ file in Carrington is set up to call the `cfct_header()` function, which will choose the appropriate header file from this directory - based on the context of the given page. This can be useful if you want to have pages to have a custom header, or perhaps a certain category to have a custom header.
+
+
+## General Context
+
+When choosing a template to use in the General Context, the Carrington engine looks at the type of request is being fulfilled. It will identify the request as the home page, a category archive, and individual post, etc.
+
+There is additional checking done for single post requests. All options in the Content Context are supported here with a 'single-' prefix added to the file. See specifics below.
+
+A "default" template is required, and will be used when there are no other templates that match a given comment. This could be because no other templates have been created, or because the comment in question doesn't match the templates that are available.
+
+By default, conditions are checked in this order:
+
+1. author
+2. role
+3. category
+4. tag
+5. single
+6. default (home, search, archive, 404, etc.)
+
+This can be altered using the `cfct_general_match_order` hook.
+
+
+### Supported Templates (General Context)
+
+- *{dirname}-default.php* (or default.php) - Used when there are no other templates that match for a given page/post.
+- *archive.php* - Used for date archives or if there are no specific category, author or tag templates.
+- *author.php* - Used for author archive lists.
+- *author-{username}.php* - Used when the post/page is authored by a specific user. For example, a template with a file name of _author-jsmith.php_ would be used for a post/page by user _jsmith_. Any WordPress username can take the place of {username} in the file name.
+- *role-{rolename}.php - Used when the post author has a particular role. This might be the role of _contributor_, _author_, _editor_, etc. and use a file of _role-contributor.php_, _role_author.php_, etc. where the role name takes the place of the {rolename} in the file name.
+- *category.php* - Used for category archive lists.
+- *cat-{slug}.php* - Used fr displaying a given category. The category is matched by the "slug" - for example a post in category "General" (with a category slug of "general") could use a template of _cat-general.php_.
+- *home.php* - Used when on the home page.
+- *page.php* - Used for pages that do not match any other contextual templates.
+- *search.php* - Used when displaying search results.
+- *single.php* - Used for single post pages.
+- *single-{content context filenames}.php* - Used for single post pages.
+- *tag.php* - Used for tag archive lists.
+- *tag-{slug}.php* - Used for displaying a given tag. The tag is matched by the "slug" - for example a post in tag "News" (with a tag slug of "news") could use a template of _tag-news.php_.
+
diff --git a/theme-blog.xenproject.org/carrington-blog/header/header-default-old.php b/theme-blog.xenproject.org/carrington-blog/header/header-default-old.php
new file mode 100644 (file)
index 0000000..29f608b
--- /dev/null
@@ -0,0 +1,88 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+$blog_desc = get_bloginfo('description');
+(is_home() && !empty($blog_desc)) ? $title_description = ' - '.$blog_desc : $title_description = '';
+
+$use_background_img = cfct_get_option('cfct_css_background_images');
+$use_background_img == 'no' ? $css_ext = '?type=noimg' : $css_ext = '';
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes() ?>>
+<head profile="http://gmpg.org/xfn/11">
+       <meta http-equiv="content-type" content="<?php bloginfo('html_type') ?>; charset=<?php bloginfo('charset') ?>" />
+
+       <title><?php wp_title( '-', true, 'right' ); echo wp_specialchars( get_bloginfo('name'), 1 ).$title_description; ?></title>
+       
+       <link rel="alternate" type="application/rss+xml" href="<?php bloginfo('rss2_url') ?>" title="<?php printf( __( '%s latest posts', 'carrington' ), wp_specialchars( get_bloginfo('name'), 1 ) ) ?>" />
+       <link rel="alternate" type="application/rss+xml" href="<?php bloginfo('comments_rss2_url') ?>" title="<?php printf( __( '%s latest comments', 'carrington' ), wp_specialchars( get_bloginfo('name'), 1 ) ) ?>" />
+       <link rel="pingback" href="<?php bloginfo('pingback_url') ?>" />
+       <?php wp_get_archives('type=monthly&format=link'); ?>
+       
+       <link rel="stylesheet" type="text/css" media="screen" href="<?php bloginfo('template_url') ?>/css/css.php<?php echo $css_ext; ?>" />
+
+       <!--[if lte IE 7]>
+               <link rel="stylesheet" href="<?php bloginfo('template_directory') ?>/css/ie.css" type="text/css" media="screen" />
+       <![endif]-->
+       
+       <!--[if lte IE 6]>
+               <link rel="stylesheet" href="<?php bloginfo('template_directory') ?>/css/ie6.css" type="text/css" media="screen" />
+
+               <script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/DD_belatedPNG.js"></script>
+               <script type="text/javascript">
+                       DD_belatedPNG.fix('img, <?php if ($use_background_img == 'yes') { echo '#header, #footer, #header .wrapper, #footer .wrapper, #TB_title, '; } ?>#developer-link a');
+               </script>
+       <![endif]-->
+       
+       <?php wp_head(); ?>
+</head>
+
+<body>
+       <div id="page">
+               <div id="top"><a class="accessibility" href="#content"><?php _e( 'Skip to content', 'carrington-blog' ); ?></a></div>
+               <hr class="lofi" />
+               <div id="header" class="section">
+                       <div class="wrapper">
+                       <a href="http://blog.xen.org"><img src="/xen_project_logo_small.png" alt="Xen Project" border="0" /></a>
+                               <p id="blog-description"><?php bloginfo('description'); ?></p>
+                               <div id="navigation">
+                                       <ul class="nav clearfix">
+                                               <?php wp_list_pages('title_li='); ?>
+                                               <li class="secondary"><?php wp_loginout(); ?></li>
+                                               <?php wp_register('<li class="secondary">', '</li>'); ?> 
+                                       </ul>
+                               </div><!-- #navigation -->
+                       </div><!-- .wrapper -->
+               </div><!-- #header -->
+               <div id="sub-header" class="section">
+                       <div class="wrapper">
+                               
+                               <div id="all-categories">
+                                       <strong id="all-categories-title"><?php _e('Categories:', 'carrington-blog'); ?></strong>
+                                       <ul class="nav clearfix">
+                                               <?php wp_list_categories('title_li='); ?>
+                                       </ul>
+                               </div><!-- #list-categories -->
+                       </div><!-- .wrapper -->
+               </div><!--#sub-header-->
+               <hr class="lofi" />
+               <div id="main" class="section">
+                       <div class="wrapper">
diff --git a/theme-blog.xenproject.org/carrington-blog/header/header-default.php b/theme-blog.xenproject.org/carrington-blog/header/header-default.php
new file mode 100644 (file)
index 0000000..29f608b
--- /dev/null
@@ -0,0 +1,88 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+$blog_desc = get_bloginfo('description');
+(is_home() && !empty($blog_desc)) ? $title_description = ' - '.$blog_desc : $title_description = '';
+
+$use_background_img = cfct_get_option('cfct_css_background_images');
+$use_background_img == 'no' ? $css_ext = '?type=noimg' : $css_ext = '';
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes() ?>>
+<head profile="http://gmpg.org/xfn/11">
+       <meta http-equiv="content-type" content="<?php bloginfo('html_type') ?>; charset=<?php bloginfo('charset') ?>" />
+
+       <title><?php wp_title( '-', true, 'right' ); echo wp_specialchars( get_bloginfo('name'), 1 ).$title_description; ?></title>
+       
+       <link rel="alternate" type="application/rss+xml" href="<?php bloginfo('rss2_url') ?>" title="<?php printf( __( '%s latest posts', 'carrington' ), wp_specialchars( get_bloginfo('name'), 1 ) ) ?>" />
+       <link rel="alternate" type="application/rss+xml" href="<?php bloginfo('comments_rss2_url') ?>" title="<?php printf( __( '%s latest comments', 'carrington' ), wp_specialchars( get_bloginfo('name'), 1 ) ) ?>" />
+       <link rel="pingback" href="<?php bloginfo('pingback_url') ?>" />
+       <?php wp_get_archives('type=monthly&format=link'); ?>
+       
+       <link rel="stylesheet" type="text/css" media="screen" href="<?php bloginfo('template_url') ?>/css/css.php<?php echo $css_ext; ?>" />
+
+       <!--[if lte IE 7]>
+               <link rel="stylesheet" href="<?php bloginfo('template_directory') ?>/css/ie.css" type="text/css" media="screen" />
+       <![endif]-->
+       
+       <!--[if lte IE 6]>
+               <link rel="stylesheet" href="<?php bloginfo('template_directory') ?>/css/ie6.css" type="text/css" media="screen" />
+
+               <script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/DD_belatedPNG.js"></script>
+               <script type="text/javascript">
+                       DD_belatedPNG.fix('img, <?php if ($use_background_img == 'yes') { echo '#header, #footer, #header .wrapper, #footer .wrapper, #TB_title, '; } ?>#developer-link a');
+               </script>
+       <![endif]-->
+       
+       <?php wp_head(); ?>
+</head>
+
+<body>
+       <div id="page">
+               <div id="top"><a class="accessibility" href="#content"><?php _e( 'Skip to content', 'carrington-blog' ); ?></a></div>
+               <hr class="lofi" />
+               <div id="header" class="section">
+                       <div class="wrapper">
+                       <a href="http://blog.xen.org"><img src="/xen_project_logo_small.png" alt="Xen Project" border="0" /></a>
+                               <p id="blog-description"><?php bloginfo('description'); ?></p>
+                               <div id="navigation">
+                                       <ul class="nav clearfix">
+                                               <?php wp_list_pages('title_li='); ?>
+                                               <li class="secondary"><?php wp_loginout(); ?></li>
+                                               <?php wp_register('<li class="secondary">', '</li>'); ?> 
+                                       </ul>
+                               </div><!-- #navigation -->
+                       </div><!-- .wrapper -->
+               </div><!-- #header -->
+               <div id="sub-header" class="section">
+                       <div class="wrapper">
+                               
+                               <div id="all-categories">
+                                       <strong id="all-categories-title"><?php _e('Categories:', 'carrington-blog'); ?></strong>
+                                       <ul class="nav clearfix">
+                                               <?php wp_list_categories('title_li='); ?>
+                                       </ul>
+                               </div><!-- #list-categories -->
+                       </div><!-- .wrapper -->
+               </div><!--#sub-header-->
+               <hr class="lofi" />
+               <div id="main" class="section">
+                       <div class="wrapper">
diff --git a/theme-blog.xenproject.org/carrington-blog/header/header-default.php~ b/theme-blog.xenproject.org/carrington-blog/header/header-default.php~
new file mode 100644 (file)
index 0000000..41fcb14
--- /dev/null
@@ -0,0 +1,88 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+$blog_desc = get_bloginfo('description');
+(is_home() && !empty($blog_desc)) ? $title_description = ' - '.$blog_desc : $title_description = '';
+
+$use_background_img = cfct_get_option('cfct_css_background_images');
+$use_background_img == 'no' ? $css_ext = '?type=noimg' : $css_ext = '';
+
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes() ?>>
+<head profile="http://gmpg.org/xfn/11">
+       <meta http-equiv="content-type" content="<?php bloginfo('html_type') ?>; charset=<?php bloginfo('charset') ?>" />
+
+       <title><?php wp_title( '-', true, 'right' ); echo wp_specialchars( get_bloginfo('name'), 1 ).$title_description; ?></title>
+       
+       <link rel="alternate" type="application/rss+xml" href="<?php bloginfo('rss2_url') ?>" title="<?php printf( __( '%s latest posts', 'carrington' ), wp_specialchars( get_bloginfo('name'), 1 ) ) ?>" />
+       <link rel="alternate" type="application/rss+xml" href="<?php bloginfo('comments_rss2_url') ?>" title="<?php printf( __( '%s latest comments', 'carrington' ), wp_specialchars( get_bloginfo('name'), 1 ) ) ?>" />
+       <link rel="pingback" href="<?php bloginfo('pingback_url') ?>" />
+       <?php wp_get_archives('type=monthly&format=link'); ?>
+       
+       <link rel="stylesheet" type="text/css" media="screen" href="<?php bloginfo('template_url') ?>/css/css.php<?php echo $css_ext; ?>" />
+
+       <!--[if lte IE 7]>
+               <link rel="stylesheet" href="<?php bloginfo('template_directory') ?>/css/ie.css" type="text/css" media="screen" />
+       <![endif]-->
+       
+       <!--[if lte IE 6]>
+               <link rel="stylesheet" href="<?php bloginfo('template_directory') ?>/css/ie6.css" type="text/css" media="screen" />
+
+               <script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/DD_belatedPNG.js"></script>
+               <script type="text/javascript">
+                       DD_belatedPNG.fix('img, <?php if ($use_background_img == 'yes') { echo '#header, #footer, #header .wrapper, #footer .wrapper, #TB_title, '; } ?>#developer-link a');
+               </script>
+       <![endif]-->
+       
+       <?php wp_head(); ?>
+</head>
+
+<body>
+       <div id="page">
+               <div id="top"><a class="accessibility" href="#content"><?php _e( 'Skip to content', 'carrington-blog' ); ?></a></div>
+               <hr class="lofi" />
+               <div id="header" class="section">
+                       <div class="wrapper">
+                               <strong id="blog-title"><a href="<?php bloginfo('url') ?>/" rel="home"><?php bloginfo('name') ?></a></strong>
+                               <p id="blog-description"><?php bloginfo('description'); ?></p>
+                               <div id="navigation">
+                                       <ul class="nav clearfix">
+                                               <?php wp_list_pages('title_li='); ?>
+                                               <li class="secondary"><?php wp_loginout(); ?></li>
+                                               <?php wp_register('<li class="secondary">', '</li>'); ?> 
+                                       </ul>
+                               </div><!-- #navigation -->
+                       </div><!-- .wrapper -->
+               </div><!-- #header -->
+               <div id="sub-header" class="section">
+                       <div class="wrapper">
+                               <?php cfct_form('search'); ?>
+                               <div id="all-categories">
+                                       <strong id="all-categories-title"><?php _e('Categories:', 'carrington-blog'); ?></strong>
+                                       <ul class="nav clearfix">
+                                               <?php wp_list_categories('title_li='); ?>
+                                       </ul>
+                               </div><!-- #list-categories -->
+                       </div><!-- .wrapper -->
+               </div><!--#sub-header-->
+               <hr class="lofi" />
+               <div id="main" class="section">
+                       <div class="wrapper">
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/images/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/images/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..0dd2439
--- /dev/null
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 43
+/svn/!svn/ver/502/framework/tags/3.0/images
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/.svn/entries b/theme-blog.xenproject.org/carrington-blog/images/.svn/entries
new file mode 100644 (file)
index 0000000..f8e1233
--- /dev/null
@@ -0,0 +1,31 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/images
+http://carrington.googlecode.com/svn
+
+
+
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+colorpicker
+dir
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..3870f98
--- /dev/null
@@ -0,0 +1,161 @@
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker
+END
+colorpicker_select.gif
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_select.gif
+END
+custom_submit.png
+K 25
+svn:wc:ra_dav:version-url
+V 73
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_submit.png
+END
+colorpicker_submit.png
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_submit.png
+END
+select2.png
+K 25
+svn:wc:ra_dav:version-url
+V 67
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/select2.png
+END
+custom_indic.gif
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_indic.gif
+END
+colorpicker_indic.gif
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_indic.gif
+END
+custom_rgb_b.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_rgb_b.png
+END
+colorpicker_rgb_b.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_rgb_b.png
+END
+custom_hsb_b.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_hsb_b.png
+END
+blank.gif
+K 25
+svn:wc:ra_dav:version-url
+V 65
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/blank.gif
+END
+custom_background.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_background.png
+END
+colorpicker_hsb_b.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_hsb_b.png
+END
+custom_rgb_g.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_rgb_g.png
+END
+colorpicker_background.png
+K 25
+svn:wc:ra_dav:version-url
+V 82
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_background.png
+END
+colorpicker_rgb_g.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_rgb_g.png
+END
+custom_hsb_h.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_hsb_h.png
+END
+colorpicker_overlay.png
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_overlay.png
+END
+custom_hex.png
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_hex.png
+END
+colorpicker_hsb_h.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_hsb_h.png
+END
+select.png
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/select.png
+END
+colorpicker_hex.png
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_hex.png
+END
+slider.png
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/slider.png
+END
+custom_rgb_r.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_rgb_r.png
+END
+colorpicker_rgb_r.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_rgb_r.png
+END
+custom_hsb_s.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_hsb_s.png
+END
+colorpicker_hsb_s.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_hsb_s.png
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/entries b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/entries
new file mode 100644 (file)
index 0000000..0957eaa
--- /dev/null
@@ -0,0 +1,912 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/images/colorpicker
+http://carrington.googlecode.com/svn
+
+
+
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+colorpicker_select.gif
+file
+
+
+
+
+2010-08-02T15:33:18.375254Z
+cec464162af0cce10348e7bb7701ef86
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+78
+\f
+custom_submit.png
+file
+
+
+
+
+2010-08-02T15:33:18.379465Z
+35423f0f2538e507dec193b52f8d0327
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+997
+\f
+colorpicker_submit.png
+file
+
+
+
+
+2010-08-02T15:33:18.379465Z
+12d1746e6b52e007f1b78d772d9248ba
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+984
+\f
+select2.png
+file
+
+
+
+
+2010-08-02T15:33:18.379465Z
+c8d194d92dbad98615b2a9140b34ab48
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+518
+\f
+custom_indic.gif
+file
+
+
+
+
+2010-08-02T15:33:18.379465Z
+04660eb352eb259581a36a0fe8da2d4d
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+86
+\f
+colorpicker_indic.gif
+file
+
+
+
+
+2010-08-02T15:33:18.379465Z
+f485d07540a89502e36dc1a55cec05d0
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+86
+\f
+custom_rgb_b.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+f6e50cd567bd3059742d45ab224a413b
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1008
+\f
+colorpicker_rgb_b.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+2be4e81b4a5c98674abe6fc60b447e9a
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+970
+\f
+custom_hsb_b.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+b45588ca2fe9ba46673862300fcd3083
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1097
+\f
+blank.gif
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+56398e76be6355ad5999b262208a17c9
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+49
+\f
+custom_background.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+06c91f7ae1561ccd8f1c79119529600d
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1916
+\f
+colorpicker_hsb_b.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+2be4e81b4a5c98674abe6fc60b447e9a
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+970
+\f
+custom_rgb_g.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+b1e286e06692b3640862a3d07f636a80
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1069
+\f
+colorpicker_background.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+a79f1a2a81bfe3ed1c2ca4c41b8e1fbf
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1897
+\f
+colorpicker_rgb_g.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+dc17f953a6febbe174e92b54690586c3
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1069
+\f
+custom_hsb_h.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+4a1afa5636421aae4c44471d2273496d
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+970
+\f
+colorpicker_overlay.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+c7a33805ffda0d32bd2a9904c8b02750
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10355
+\f
+custom_hex.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+e27aaa92b15d9392d909f8b94e797524
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+562
+\f
+colorpicker_hsb_h.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+d47409a203bedc76b26dc60b71a69f6b
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1012
+\f
+select.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+7b086953a8c62d2685a65644979d5d04
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+506
+\f
+colorpicker_hex.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+16d6870c36e379c06fb26ebd2e16bf44
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+532
+\f
+slider.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+3a50b8078dea50b9811603a85ecef836
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+315
+\f
+custom_rgb_r.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+8ae4b3ef109ee66ec1022632470ddd0f
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1018
+\f
+colorpicker_rgb_r.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+87eeb205d093b713b68a341771f4ee27
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1066
+\f
+custom_hsb_s.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+83aa97407fb76615a7db5ed721681148
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1168
+\f
+colorpicker_hsb_s.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+5ff5e43ab6b7b41b6123bfab692a9b19
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1171
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/blank.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/blank.gif.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_background.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_background.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hex.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hex.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hsb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hsb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hsb_h.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hsb_h.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hsb_s.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_hsb_s.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_indic.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_indic.gif.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_overlay.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_overlay.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_rgb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_rgb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_rgb_g.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_rgb_g.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_rgb_r.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_rgb_r.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_select.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_select.gif.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_submit.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/colorpicker_submit.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_background.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_background.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hex.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hex.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hsb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hsb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hsb_h.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hsb_h.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hsb_s.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_hsb_s.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_indic.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_indic.gif.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_rgb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_rgb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_rgb_g.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_rgb_g.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_rgb_r.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_rgb_r.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_submit.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/custom_submit.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/select.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/select.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/select2.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/select2.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/slider.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/prop-base/slider.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/blank.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/blank.gif.svn-base
new file mode 100644 (file)
index 0000000..75b945d
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/blank.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_background.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_background.png.svn-base
new file mode 100644 (file)
index 0000000..8401572
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_background.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hex.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hex.png.svn-base
new file mode 100644 (file)
index 0000000..4e532d7
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hex.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dfac595
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_b.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_h.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_h.png.svn-base
new file mode 100644 (file)
index 0000000..3977ed9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_h.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_s.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_s.png.svn-base
new file mode 100644 (file)
index 0000000..a2a6997
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_hsb_s.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_indic.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_indic.gif.svn-base
new file mode 100644 (file)
index 0000000..f9fa95e
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_indic.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_overlay.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_overlay.png.svn-base
new file mode 100644 (file)
index 0000000..561cdd9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_overlay.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dfac595
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_b.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_g.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_g.png.svn-base
new file mode 100644 (file)
index 0000000..72b3276
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_g.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_r.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_r.png.svn-base
new file mode 100644 (file)
index 0000000..4855fe0
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_rgb_r.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_select.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_select.gif.svn-base
new file mode 100644 (file)
index 0000000..599f7f1
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_select.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_submit.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_submit.png.svn-base
new file mode 100644 (file)
index 0000000..7f4c082
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/colorpicker_submit.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_background.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_background.png.svn-base
new file mode 100644 (file)
index 0000000..cf55ffd
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_background.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hex.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hex.png.svn-base
new file mode 100644 (file)
index 0000000..888f444
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hex.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_b.png.svn-base
new file mode 100644 (file)
index 0000000..2f99dae
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_b.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_h.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_h.png.svn-base
new file mode 100644 (file)
index 0000000..a217e92
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_h.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_s.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_s.png.svn-base
new file mode 100644 (file)
index 0000000..7826b41
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_hsb_s.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_indic.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_indic.gif.svn-base
new file mode 100644 (file)
index 0000000..222fb94
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_indic.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_b.png.svn-base
new file mode 100644 (file)
index 0000000..80764e5
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_b.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_g.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_g.png.svn-base
new file mode 100644 (file)
index 0000000..fc9778b
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_g.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_r.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_r.png.svn-base
new file mode 100644 (file)
index 0000000..91b0cd4
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_rgb_r.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_submit.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_submit.png.svn-base
new file mode 100644 (file)
index 0000000..cd202cd
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/custom_submit.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/select.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/select.png.svn-base
new file mode 100644 (file)
index 0000000..21213bf
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/select.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/select2.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/select2.png.svn-base
new file mode 100644 (file)
index 0000000..2cd2cab
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/select2.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/slider.png.svn-base b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/slider.png.svn-base
new file mode 100644 (file)
index 0000000..8b03da9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/.svn/text-base/slider.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/blank.gif b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/blank.gif
new file mode 100644 (file)
index 0000000..75b945d
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/blank.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_background.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_background.png
new file mode 100644 (file)
index 0000000..8401572
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_background.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hex.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hex.png
new file mode 100644 (file)
index 0000000..4e532d7
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hex.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_b.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_b.png
new file mode 100644 (file)
index 0000000..dfac595
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_h.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_h.png
new file mode 100644 (file)
index 0000000..3977ed9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_h.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_s.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_s.png
new file mode 100644 (file)
index 0000000..a2a6997
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_hsb_s.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_indic.gif b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_indic.gif
new file mode 100644 (file)
index 0000000..f9fa95e
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_indic.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_overlay.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_overlay.png
new file mode 100644 (file)
index 0000000..561cdd9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_overlay.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_b.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_b.png
new file mode 100644 (file)
index 0000000..dfac595
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_g.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_g.png
new file mode 100644 (file)
index 0000000..72b3276
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_g.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_r.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_r.png
new file mode 100644 (file)
index 0000000..4855fe0
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_rgb_r.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_select.gif b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_select.gif
new file mode 100644 (file)
index 0000000..599f7f1
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_select.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_submit.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_submit.png
new file mode 100644 (file)
index 0000000..7f4c082
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/colorpicker_submit.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_background.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_background.png
new file mode 100644 (file)
index 0000000..cf55ffd
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_background.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hex.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hex.png
new file mode 100644 (file)
index 0000000..888f444
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hex.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_b.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_b.png
new file mode 100644 (file)
index 0000000..2f99dae
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_h.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_h.png
new file mode 100644 (file)
index 0000000..a217e92
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_h.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_s.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_s.png
new file mode 100644 (file)
index 0000000..7826b41
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_hsb_s.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_indic.gif b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_indic.gif
new file mode 100644 (file)
index 0000000..222fb94
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_indic.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_b.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_b.png
new file mode 100644 (file)
index 0000000..80764e5
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_g.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_g.png
new file mode 100644 (file)
index 0000000..fc9778b
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_g.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_r.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_r.png
new file mode 100644 (file)
index 0000000..91b0cd4
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_rgb_r.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_submit.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_submit.png
new file mode 100644 (file)
index 0000000..cd202cd
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/custom_submit.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/select.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/select.png
new file mode 100644 (file)
index 0000000..21213bf
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/select.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/select2.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/select2.png
new file mode 100644 (file)
index 0000000..2cd2cab
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/select2.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/images/colorpicker/slider.png b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/slider.png
new file mode 100644 (file)
index 0000000..8b03da9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/images/colorpicker/slider.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/README.txt b/theme-blog.xenproject.org/carrington-blog/img/README.txt
new file mode 100644 (file)
index 0000000..4f77994
--- /dev/null
@@ -0,0 +1,5 @@
+## img/
+
+Organizational folder for holding theme image files.
+
+This directory is not used by the Carrington engine (template naming conventions are not supported), it is provided solely for convenience and for better organization of these files.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/img/arrow-bullet.gif b/theme-blog.xenproject.org/carrington-blog/img/arrow-bullet.gif
new file mode 100644 (file)
index 0000000..eab699d
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/arrow-bullet.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-left-dark.png b/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-left-dark.png
new file mode 100644 (file)
index 0000000..4c20bfe
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-left-dark.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-left-light.png b/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-left-light.png
new file mode 100644 (file)
index 0000000..17ee7ad
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-left-light.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-right-dark.png b/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-right-dark.png
new file mode 100644 (file)
index 0000000..2c40c27
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-right-dark.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-right-light.png b/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-right-light.png
new file mode 100644 (file)
index 0000000..85e345b
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/attachment/150px-flourish-right-light.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/author-comment.jpg b/theme-blog.xenproject.org/carrington-blog/img/author-comment.jpg
new file mode 100644 (file)
index 0000000..63e9913
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/author-comment.jpg differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/comment-reply.gif b/theme-blog.xenproject.org/carrington-blog/img/comment-reply.gif
new file mode 100644 (file)
index 0000000..1c086b1
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/comment-reply.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/comment-thread.gif b/theme-blog.xenproject.org/carrington-blog/img/comment-thread.gif
new file mode 100644 (file)
index 0000000..d88ba20
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/comment-thread.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/comment.gif b/theme-blog.xenproject.org/carrington-blog/img/comment.gif
new file mode 100644 (file)
index 0000000..1a84c4e
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/comment.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/comments-divider.gif b/theme-blog.xenproject.org/carrington-blog/img/comments-divider.gif
new file mode 100644 (file)
index 0000000..bd66ad2
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/comments-divider.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/divider-ornament-wide-dark.png b/theme-blog.xenproject.org/carrington-blog/img/divider-ornament-wide-dark.png
new file mode 100644 (file)
index 0000000..4a4bcaa
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/divider-ornament-wide-dark.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/divider-ornament-wide.gif b/theme-blog.xenproject.org/carrington-blog/img/divider-ornament-wide.gif
new file mode 100644 (file)
index 0000000..a1653d6
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/divider-ornament-wide.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/divider-ornament.gif b/theme-blog.xenproject.org/carrington-blog/img/divider-ornament.gif
new file mode 100644 (file)
index 0000000..54f9a95
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/divider-ornament.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/dropdown-divider.gif b/theme-blog.xenproject.org/carrington-blog/img/dropdown-divider.gif
new file mode 100644 (file)
index 0000000..dd8179a
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/dropdown-divider.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/footer/by-crowd-favorite-dark.png b/theme-blog.xenproject.org/carrington-blog/img/footer/by-crowd-favorite-dark.png
new file mode 100644 (file)
index 0000000..a2cee5a
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/footer/by-crowd-favorite-dark.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/footer/by-crowd-favorite-light.png b/theme-blog.xenproject.org/carrington-blog/img/footer/by-crowd-favorite-light.png
new file mode 100644 (file)
index 0000000..30a5740
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/footer/by-crowd-favorite-light.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/footer/divider-ornament-wide-light.png b/theme-blog.xenproject.org/carrington-blog/img/footer/divider-ornament-wide-light.png
new file mode 100644 (file)
index 0000000..589c90c
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/footer/divider-ornament-wide-light.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/footer/gradient-dark.png b/theme-blog.xenproject.org/carrington-blog/img/footer/gradient-dark.png
new file mode 100644 (file)
index 0000000..5484e53
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/footer/gradient-dark.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/footer/gradient-light.png b/theme-blog.xenproject.org/carrington-blog/img/footer/gradient-light.png
new file mode 100644 (file)
index 0000000..f0c5f8a
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/footer/gradient-light.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/grey-to-white-gradient.png b/theme-blog.xenproject.org/carrington-blog/img/grey-to-white-gradient.png
new file mode 100644 (file)
index 0000000..1cd992b
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/grey-to-white-gradient.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/header/gradient-dark.png b/theme-blog.xenproject.org/carrington-blog/img/header/gradient-dark.png
new file mode 100644 (file)
index 0000000..1b85a01
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/header/gradient-dark.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/header/gradient-light.png b/theme-blog.xenproject.org/carrington-blog/img/header/gradient-light.png
new file mode 100644 (file)
index 0000000..e08ab44
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/header/gradient-light.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/header/texture-dark.png b/theme-blog.xenproject.org/carrington-blog/img/header/texture-dark.png
new file mode 100644 (file)
index 0000000..2a80266
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/header/texture-dark.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/header/texture-light.png b/theme-blog.xenproject.org/carrington-blog/img/header/texture-light.png
new file mode 100644 (file)
index 0000000..1c44fc4
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/header/texture-light.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/lightbox/nextlabel.gif b/theme-blog.xenproject.org/carrington-blog/img/lightbox/nextlabel.gif
new file mode 100644 (file)
index 0000000..e45c601
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/lightbox/nextlabel.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/lightbox/prevlabel.gif b/theme-blog.xenproject.org/carrington-blog/img/lightbox/prevlabel.gif
new file mode 100644 (file)
index 0000000..88f6768
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/lightbox/prevlabel.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/ndash.gif b/theme-blog.xenproject.org/carrington-blog/img/ndash.gif
new file mode 100644 (file)
index 0000000..3707e8b
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/ndash.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/rss-button.gif b/theme-blog.xenproject.org/carrington-blog/img/rss-button.gif
new file mode 100644 (file)
index 0000000..729fbcb
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/rss-button.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/sidebar-background.gif b/theme-blog.xenproject.org/carrington-blog/img/sidebar-background.gif
new file mode 100644 (file)
index 0000000..b4d3848
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/sidebar-background.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/spinner.gif b/theme-blog.xenproject.org/carrington-blog/img/spinner.gif
new file mode 100644 (file)
index 0000000..fae79de
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/spinner.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/sub-header-border-bottom.gif b/theme-blog.xenproject.org/carrington-blog/img/sub-header-border-bottom.gif
new file mode 100644 (file)
index 0000000..cb5b83b
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/sub-header-border-bottom.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/watermark-light.gif b/theme-blog.xenproject.org/carrington-blog/img/watermark-light.gif
new file mode 100644 (file)
index 0000000..95b67a6
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/watermark-light.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/xen_logo.gif b/theme-blog.xenproject.org/carrington-blog/img/xen_logo.gif
new file mode 100644 (file)
index 0000000..d2abe22
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/xen_logo.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/img/xen_logo_trans.gif b/theme-blog.xenproject.org/carrington-blog/img/xen_logo_trans.gif
new file mode 100644 (file)
index 0000000..1269e81
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/img/xen_logo_trans.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/index.php b/theme-blog.xenproject.org/carrington-blog/index.php
new file mode 100644 (file)
index 0000000..9a96363
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// NOTE: this file is here for compatibility reasons - active templates are in the posts/ dir 
+
+cfct_posts();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/js/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/js/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..26339e0
--- /dev/null
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 39
+/svn/!svn/ver/502/framework/tags/3.0/js
+END
+colorpicker.js
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/502/framework/tags/3.0/js/colorpicker.js
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/js/.svn/entries b/theme-blog.xenproject.org/carrington-blog/js/.svn/entries
new file mode 100644 (file)
index 0000000..a6d6912
--- /dev/null
@@ -0,0 +1,62 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/js
+http://carrington.googlecode.com/svn
+
+
+
+2009-02-16T06:47:28.823363Z
+144
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+colorpicker.js
+file
+
+
+
+
+2010-08-02T15:33:18.459218Z
+dcfede901a53dc3484a47f7b2d98860b
+2009-02-16T06:47:28.823363Z
+144
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+17417
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/js/.svn/prop-base/colorpicker.js.svn-base b/theme-blog.xenproject.org/carrington-blog/js/.svn/prop-base/colorpicker.js.svn-base
new file mode 100644 (file)
index 0000000..869ac71
--- /dev/null
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/js/.svn/text-base/colorpicker.js.svn-base b/theme-blog.xenproject.org/carrington-blog/js/.svn/text-base/colorpicker.js.svn-base
new file mode 100644 (file)
index 0000000..e9dbd2e
--- /dev/null
@@ -0,0 +1,490 @@
+/**
+ *
+ * Color picker
+ * Author: Stefan Petre www.eyecon.ro
+ * 
+ */
+(function ($) {
+       var ColorPicker = function () {
+               var
+                       ids = {},
+                       inAction,
+                       charMin = 65,
+                       visible,
+                       tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
+                       defaults = {
+                               eventName: 'click',
+                               onShow: function () {},
+                               onBeforeShow: function(){},
+                               onHide: function () {},
+                               onChange: function () {},
+                               onSubmit: function () {},
+                               color: 'ff0000',
+                               livePreview: true,
+                               flat: false
+                       },
+                       fillRGBFields = function  (hsb, cal) {
+                               var rgb = HSBToRGB(hsb);
+                               $(cal).data('colorpicker').fields
+                                       .eq(1).val(rgb.r).end()
+                                       .eq(2).val(rgb.g).end()
+                                       .eq(3).val(rgb.b).end();
+                       },
+                       fillHSBFields = function  (hsb, cal) {
+                               $(cal).data('colorpicker').fields
+                                       .eq(4).val(hsb.h).end()
+                                       .eq(5).val(hsb.s).end()
+                                       .eq(6).val(hsb.b).end();
+                       },
+                       fillHexFields = function (hsb, cal) {
+                               $(cal).data('colorpicker').fields
+                                       .eq(0).val(HSBToHex(hsb)).end();
+                       },
+                       setSelector = function (hsb, cal) {
+                               $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
+                               $(cal).data('colorpicker').selectorIndic.css({
+                                       left: parseInt(150 * hsb.s/100, 10),
+                                       top: parseInt(150 * (100-hsb.b)/100, 10)
+                               });
+                       },
+                       setHue = function (hsb, cal) {
+                               $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
+                       },
+                       setCurrentColor = function (hsb, cal) {
+                               $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
+                       },
+                       setNewColor = function (hsb, cal) {
+                               $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
+                       },
+                       keyDown = function (ev) {
+                               var pressedKey = ev.charCode || ev.keyCode || -1;
+                               if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
+                                       return false;
+                               }
+                               var cal = $(this).parent().parent();
+                               if (cal.data('colorpicker').livePreview === true) {
+                                       change.apply(this);
+                               }
+                       },
+                       change = function (ev) {
+                               var cal = $(this).parent().parent(), col;
+                               if (this.parentNode.className.indexOf('_hex') > 0) {
+                                       cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
+                               } else if (this.parentNode.className.indexOf('_hsb') > 0) {
+                                       cal.data('colorpicker').color = col = fixHSB({
+                                               h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
+                                               s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
+                                               b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
+                                       });
+                               } else {
+                                       cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
+                                               r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
+                                               g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
+                                               b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
+                                       }));
+                               }
+                               if (ev) {
+                                       fillRGBFields(col, cal.get(0));
+                                       fillHexFields(col, cal.get(0));
+                                       fillHSBFields(col, cal.get(0));
+                               }
+                               setSelector(col, cal.get(0));
+                               setHue(col, cal.get(0));
+                               setNewColor(col, cal.get(0));
+                               cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
+                       },
+                       blur = function (ev) {
+                               var cal = $(this).parent().parent();
+                               cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus')
+                       },
+                       focus = function () {
+                               charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
+                               $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
+                               $(this).parent().addClass('colorpicker_focus');
+                       },
+                       downIncrement = function (ev) {
+                               var field = $(this).parent().find('input').focus();
+                               var current = {
+                                       el: $(this).parent().addClass('colorpicker_slider'),
+                                       max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
+                                       y: ev.pageY,
+                                       field: field,
+                                       val: parseInt(field.val(), 10),
+                                       preview: $(this).parent().parent().data('colorpicker').livePreview                                      
+                               };
+                               $(document).bind('mouseup', current, upIncrement);
+                               $(document).bind('mousemove', current, moveIncrement);
+                       },
+                       moveIncrement = function (ev) {
+                               ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
+                               if (ev.data.preview) {
+                                       change.apply(ev.data.field.get(0), [true]);
+                               }
+                               return false;
+                       },
+                       upIncrement = function (ev) {
+                               change.apply(ev.data.field.get(0), [true]);
+                               ev.data.el.removeClass('colorpicker_slider').find('input').focus();
+                               $(document).unbind('mouseup', upIncrement);
+                               $(document).unbind('mousemove', moveIncrement);
+                               return false;
+                       },
+                       downHue = function (ev) {
+                               var current = {
+                                       cal: $(this).parent(),
+                                       y: $(this).offset().top
+                               };
+                               current.preview = current.cal.data('colorpicker').livePreview;
+                               $(document).bind('mouseup', current, upHue);
+                               $(document).bind('mousemove', current, moveHue);
+                       },
+                       moveHue = function (ev) {
+                               change.apply(
+                                       ev.data.cal.data('colorpicker')
+                                               .fields
+                                               .eq(4)
+                                               .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
+                                               .get(0),
+                                       [ev.data.preview]
+                               );
+                               return false;
+                       },
+                       upHue = function (ev) {
+                               fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               $(document).unbind('mouseup', upHue);
+                               $(document).unbind('mousemove', moveHue);
+                               return false;
+                       },
+                       downSelector = function (ev) {
+                               var current = {
+                                       cal: $(this).parent(),
+                                       pos: $(this).offset()
+                               };
+                               current.preview = current.cal.data('colorpicker').livePreview;
+                               $(document).bind('mouseup', current, upSelector);
+                               $(document).bind('mousemove', current, moveSelector);
+                       },
+                       moveSelector = function (ev) {
+                               change.apply(
+                                       ev.data.cal.data('colorpicker')
+                                               .fields
+                                               .eq(6)
+                                               .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
+                                               .end()
+                                               .eq(5)
+                                               .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
+                                               .get(0),
+                                       [ev.data.preview]
+                               );
+                               return false;
+                       },
+                       upSelector = function (ev) {
+                               fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               $(document).unbind('mouseup', upSelector);
+                               $(document).unbind('mousemove', moveSelector);
+                               return false;
+                       },
+                       enterSubmit = function (ev) {
+                               $(this).addClass('colorpicker_focus');
+                       },
+                       leaveSubmit = function (ev) {
+                               $(this).removeClass('colorpicker_focus');
+                       },
+                       clickSubmit = function (ev) {
+                               var cal = $(this).parent();
+                               var col = cal.data('colorpicker').color;
+                               cal.data('colorpicker').origColor = col;
+                               setCurrentColor(col, cal.get(0));
+                               cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col));
+                       },
+                       show = function (ev) {
+                               var cal = $('#' + $(this).data('colorpickerId'));
+                               cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
+                               var pos = $(this).offset();
+                               var viewPort = getViewport();
+                               var top = pos.top + this.offsetHeight;
+                               var left = pos.left;
+                               if (top + 176 > viewPort.t + viewPort.h) {
+                                       top -= this.offsetHeight + 176;
+                               }
+                               if (left + 356 > viewPort.l + viewPort.w) {
+                                       left -= 356;
+                               }
+                               cal.css({left: left + 'px', top: top + 'px'});
+                               if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
+                                       cal.show();
+                               }
+                               $(document).bind('mousedown', {cal: cal}, hide);
+                               return false;
+                       },
+                       hide = function (ev) {
+                               if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
+                                       if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
+                                               ev.data.cal.hide();
+                                       }
+                                       $(document).unbind('mousedown', hide);
+                               }
+                       },
+                       isChildOf = function(parentEl, el, container) {
+                               if (parentEl == el) {
+                                       return true;
+                               }
+                               if (parentEl.contains) {
+                                       return parentEl.contains(el);
+                               }
+                               if ( parentEl.compareDocumentPosition ) {
+                                       return !!(parentEl.compareDocumentPosition(el) & 16);
+                               }
+                               var prEl = el.parentNode;
+                               while(prEl && prEl != container) {
+                                       if (prEl == parentEl)
+                                               return true;
+                                       prEl = prEl.parentNode;
+                               }
+                               return false;
+                       },
+                       getViewport = function () {
+                               var m = document.compatMode == 'CSS1Compat';
+                               return {
+                                       l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
+                                       t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
+                                       w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
+                                       h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
+                               };
+                       },
+                       fixHSB = function (hsb) {
+                               return {
+                                       h: Math.min(360, Math.max(0, hsb.h)),
+                                       s: Math.min(100, Math.max(0, hsb.s)),
+                                       b: Math.min(100, Math.max(0, hsb.b))
+                               };
+                       }, 
+                       fixRGB = function (rgb) {
+                               return {
+                                       r: Math.min(255, Math.max(0, rgb.r)),
+                                       g: Math.min(255, Math.max(0, rgb.g)),
+                                       b: Math.min(255, Math.max(0, rgb.b))
+                               };
+                       },
+                       fixHex = function (hex) {
+                               var len = 6 - hex.length;
+                               if (len > 0) {
+                                       var o = [];
+                                       for (var i=0; i<len; i++) {
+                                               o.push('0');
+                                       }
+                                       o.push(hex);
+                                       hex = o.join('');
+                               }
+                               return hex;
+                       }, 
+                       HexToRGB = function (hex) {
+                               var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
+                               return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
+                       },
+                       HexToHSB = function (hex) {
+                               return RGBToHSB(HexToRGB(hex));
+                       },
+                       RGBToHSB = function (rgb) {
+                               var hsb = {};
+                               hsb.b = Math.max(Math.max(rgb.r,rgb.g),rgb.b);
+                               hsb.s = (hsb.b <= 0) ? 0 : Math.round(100*(hsb.b - Math.min(Math.min(rgb.r,rgb.g),rgb.b))/hsb.b);
+                               hsb.b = Math.round((hsb.b /255)*100);
+                               if((rgb.r==rgb.g) && (rgb.g==rgb.b)) hsb.h = 0;
+                               else if(rgb.r>=rgb.g && rgb.g>=rgb.b) hsb.h = 60*(rgb.g-rgb.b)/(rgb.r-rgb.b);
+                               else if(rgb.g>=rgb.r && rgb.r>=rgb.b) hsb.h = 60  + 60*(rgb.g-rgb.r)/(rgb.g-rgb.b);
+                               else if(rgb.g>=rgb.b && rgb.b>=rgb.r) hsb.h = 120 + 60*(rgb.b-rgb.r)/(rgb.g-rgb.r);
+                               else if(rgb.b>=rgb.g && rgb.g>=rgb.r) hsb.h = 180 + 60*(rgb.b-rgb.g)/(rgb.b-rgb.r);
+                               else if(rgb.b>=rgb.r && rgb.r>=rgb.g) hsb.h = 240 + 60*(rgb.r-rgb.g)/(rgb.b-rgb.g);
+                               else if(rgb.r>=rgb.b && rgb.b>=rgb.g) hsb.h = 300 + 60*(rgb.r-rgb.b)/(rgb.r-rgb.g);
+                               else hsb.h = 0;
+                               hsb.h = Math.round(hsb.h);
+                               return hsb;
+                       },
+                       HSBToRGB = function (hsb) {
+                               var rgb = {};
+                               var h = Math.round(hsb.h);
+                               var s = Math.round(hsb.s*255/100);
+                               var v = Math.round(hsb.b*255/100);
+                               if(s == 0) {
+                                       rgb.r = rgb.g = rgb.b = v;
+                               } else {
+                                       var t1 = v;
+                                       var t2 = (255-s)*v/255;
+                                       var t3 = (t1-t2)*(h%60)/60;
+                                       if(h==360) h = 0;
+                                       if(h<60) {rgb.r=t1;     rgb.b=t2; rgb.g=t2+t3}
+                                       else if(h<120) {rgb.g=t1; rgb.b=t2;     rgb.r=t1-t3}
+                                       else if(h<180) {rgb.g=t1; rgb.r=t2;     rgb.b=t2+t3}
+                                       else if(h<240) {rgb.b=t1; rgb.r=t2;     rgb.g=t1-t3}
+                                       else if(h<300) {rgb.b=t1; rgb.g=t2;     rgb.r=t2+t3}
+                                       else if(h<360) {rgb.r=t1; rgb.g=t2;     rgb.b=t1-t3}
+                                       else {rgb.r=0; rgb.g=0; rgb.b=0}
+                               }
+                               return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
+                       },
+                       RGBToHex = function (rgb) {
+                               var hex = [
+                                       rgb.r.toString(16),
+                                       rgb.g.toString(16),
+                                       rgb.b.toString(16)
+                               ];
+                               $.each(hex, function (nr, val) {
+                                       if (val.length == 1) {
+                                               hex[nr] = '0' + val;
+                                       }
+                               });
+                               return hex.join('');
+                       },
+                       HSBToHex = function (hsb) {
+                               return RGBToHex(HSBToRGB(hsb));
+                       };
+               return {
+                       init: function (options) {
+                               options = $.extend({}, defaults, options||{});
+                               if (typeof options.color == 'string') {
+                                       options.color = HexToHSB(options.color);
+                               } else if (options.color.r != undefined && options.color.g != undefined && options.color.b != undefined) {
+                                       options.color = RGBToHSB(options.color);
+                               } else if (options.color.h != undefined && options.color.s != undefined && options.color.b != undefined) {
+                                       options.color = fixHSB(options.color);
+                               } else {
+                                       return this;
+                               }
+                               options.origColor = options.color;
+                               return this.each(function () {
+                                       if (!$(this).data('colorpickerId')) {
+                                               var id = 'collorpicker_' + parseInt(Math.random() * 1000);
+                                               $(this).data('colorpickerId', id);
+                                               var cal = $(tpl).attr('id', id);
+                                               if (options.flat) {
+                                                       cal.appendTo(this).show();
+                                               } else {
+                                                       cal.appendTo(document.body);
+                                               }
+                                               options.fields = cal
+                                                                                       .find('input')
+                                                                                               .bind('keydown', keyDown)
+                                                                                               .bind('change', change)
+                                                                                               .bind('blur', blur)
+                                                                                               .bind('focus', focus);
+                                               cal.find('span').bind('mousedown', downIncrement);
+                                               options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
+                                               options.selectorIndic = options.selector.find('div div');
+                                               options.hue = cal.find('div.colorpicker_hue div');
+                                               cal.find('div.colorpicker_hue').bind('mousedown', downHue);
+                                               options.newColor = cal.find('div.colorpicker_new_color');
+                                               options.currentColor = cal.find('div.colorpicker_current_color');
+                                               cal.data('colorpicker', options);
+                                               cal.find('div.colorpicker_submit')
+                                                       .bind('mouseenter', enterSubmit)
+                                                       .bind('mouseleave', leaveSubmit)
+                                                       .bind('click', clickSubmit);
+                                               fillRGBFields(options.color, cal.get(0));
+                                               fillHSBFields(options.color, cal.get(0));
+                                               fillHexFields(options.color, cal.get(0));
+                                               setHue(options.color, cal.get(0));
+                                               setSelector(options.color, cal.get(0));
+                                               setCurrentColor(options.color, cal.get(0));
+                                               setNewColor(options.color, cal.get(0));
+                                               if (options.flat) {
+                                                       cal.css({
+                                                               position: 'relative',
+                                                               display: 'block'
+                                                       });
+                                               } else {
+                                                       $(this).bind(options.eventName, show);
+                                               }
+                                       }
+                               });
+                       },
+                       showPicker: function() {
+                               return this.each( function () {
+                                       if ($(this).data('colorpickerId')) {
+                                               show.apply(this);
+                                       }
+                               });
+                       },
+                       hidePicker: function() {
+                               return this.each( function () {
+                                       if ($(this).data('colorpickerId')) {
+                                               $('#' + $(this).data('colorpickerId')).hide();
+                                       }
+                               });
+                       },
+                       setColor: function(col) {
+                               if (typeof col == 'string') {
+                                       col = HexToHSB(col);
+                               } else if (col.r != undefined && col.g != undefined && col.b != undefined) {
+                                       col = RGBToHSB(col);
+                               } else if (col.h != undefined && col.s != undefined && col.b != undefined) {
+                                       col = fixHSB(col);
+                               } else {
+                                       return this;
+                               }
+                               return this.each(function(){
+                                       if ($(this).data('colorpickerId')) {
+                                               var cal = $('#' + $(this).data('colorpickerId'));
+                                               cal.data('colorpicker').color = col;
+                                               cal.data('colorpicker').origColor = col;
+                                               fillRGBFields(col, cal.get(0));
+                                               fillHSBFields(col, cal.get(0));
+                                               fillHexFields(col, cal.get(0));
+                                               setHue(col, cal.get(0));
+                                               setSelector(col, cal.get(0));
+                                               setCurrentColor(col, cal.get(0));
+                                               setNewColor(col, cal.get(0));
+                                       }
+                               });
+                       }
+               };
+       }();
+       $.fn.extend({
+               ColorPicker: ColorPicker.init,
+               ColorPickerHide: ColorPicker.hide,
+               ColorPickerShow: ColorPicker.show,
+               ColorPickerSetColor: ColorPicker.setColor
+       });
+})(jQuery)
+
+// hex to decimal code found here and used with minor modification: http://www.telerik.com/community/forums/aspnet-ajax/colorpicker/calculate-color-contrast-in-javascript.aspx
+function getDec(hexChar) {
+       if (typeof hexChar == 'undefined') {
+               return 0;
+       }
+       switch(hexChar.toUpperCase()) {
+               case '0': return 0;
+               case '1': return 1;
+               case '2': return 2;
+               case '3': return 3;
+               case '4': return 4;
+               case '5': return 5;
+               case '6': return 6;
+               case '7': return 7;
+               case '8': return 8;
+               case '9': return 9;
+               case 'A': return 10;
+               case 'B': return 11;
+               case 'C': return 12;
+               case 'D': return 13;
+               case 'E': return 14;
+               case 'F': return 15;
+       };
+}
+function hexToDec(hex) {
+       var colorChars = hex.split('');
+       var dec = (getDec(colorChars[0]) * 16) + getDec(colorChars[1]);
+       return dec;
+}
+function getRGB(color) {
+       // remove the '#'
+       if (color.indexOf('#') != -1) {
+               color = color.substring(color.indexOf('#') + 1);
+       }
+       var r = hexToDec(color.substr(0, 2));
+       var g = hexToDec(color.substr(2, 2));
+       var b = hexToDec(color.substr(4, 2));
+       return { r: r, g: g, b: b};
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/js/DD_belatedPNG.js b/theme-blog.xenproject.org/carrington-blog/js/DD_belatedPNG.js
new file mode 100644 (file)
index 0000000..6062fb3
--- /dev/null
@@ -0,0 +1,13 @@
+/**
+* DD_belatedPNG: Adds IE6 support: PNG images for CSS background-image and HTML <IMG/>.
+* Author: Drew Diller
+* Email: drew.diller@gmail.com
+* URL: http://www.dillerdesign.com/experiment/DD_belatedPNG/
+* Version: 0.0.8a
+* Licensed under the MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license
+*
+* Example usage:
+* DD_belatedPNG.fix('.png_bg'); // argument is a CSS selector
+* DD_belatedPNG.fixPng( someNode ); // argument is an HTMLDomElement
+**/
+var DD_belatedPNG={ns:"DD_belatedPNG",imgSize:{},delay:10,nodesFixed:0,createVmlNameSpace:function(){if(document.namespaces&&!document.namespaces[this.ns]){document.namespaces.add(this.ns,"urn:schemas-microsoft-com:vml")}},createVmlStyleSheet:function(){var b,a;b=document.createElement("style");b.setAttribute("media","screen");document.documentElement.firstChild.insertBefore(b,document.documentElement.firstChild.firstChild);if(b.styleSheet){b=b.styleSheet;b.addRule(this.ns+"\\:*","{behavior:url(#default#VML)}");b.addRule(this.ns+"\\:shape","position:absolute;");b.addRule("img."+this.ns+"_sizeFinder","behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;");this.screenStyleSheet=b;a=document.createElement("style");a.setAttribute("media","print");document.documentElement.firstChild.insertBefore(a,document.documentElement.firstChild.firstChild);a=a.styleSheet;a.addRule(this.ns+"\\:*","{display: none !important;}");a.addRule("img."+this.ns+"_sizeFinder","{display: none !important;}")}},readPropertyChange:function(){var b,c,a;b=event.srcElement;if(!b.vmlInitiated){return}if(event.propertyName.search("background")!=-1||event.propertyName.search("border")!=-1){DD_belatedPNG.applyVML(b)}if(event.propertyName=="style.display"){c=(b.currentStyle.display=="none")?"none":"block";for(a in b.vml){if(b.vml.hasOwnProperty(a)){b.vml[a].shape.style.display=c}}}if(event.propertyName.search("filter")!=-1){DD_belatedPNG.vmlOpacity(b)}},vmlOpacity:function(b){if(b.currentStyle.filter.search("lpha")!=-1){var a=b.currentStyle.filter;a=parseInt(a.substring(a.lastIndexOf("=")+1,a.lastIndexOf(")")),10)/100;b.vml.color.shape.style.filter=b.currentStyle.filter;b.vml.image.fill.opacity=a}},handlePseudoHover:function(a){setTimeout(function(){DD_belatedPNG.applyVML(a)},1)},fix:function(a){if(this.screenStyleSheet){var c,b;c=a.split(",");for(b=0;b<c.length;b++){this.screenStyleSheet.addRule(c[b],"behavior:expression(DD_belatedPNG.fixPng(this))")}}},applyVML:function(a){a.runtimeStyle.cssText="";this.vmlFill(a);this.vmlOffsets(a);this.vmlOpacity(a);if(a.isImg){this.copyImageBorders(a)}},attachHandlers:function(i){var d,c,g,e,b,f;d=this;c={resize:"vmlOffsets",move:"vmlOffsets"};if(i.nodeName=="A"){e={mouseleave:"handlePseudoHover",mouseenter:"handlePseudoHover",focus:"handlePseudoHover",blur:"handlePseudoHover"};for(b in e){if(e.hasOwnProperty(b)){c[b]=e[b]}}}for(f in c){if(c.hasOwnProperty(f)){g=function(){d[c[f]](i)};i.attachEvent("on"+f,g)}}i.attachEvent("onpropertychange",this.readPropertyChange)},giveLayout:function(a){a.style.zoom=1;if(a.currentStyle.position=="static"){a.style.position="relative"}},copyImageBorders:function(b){var c,a;c={borderStyle:true,borderWidth:true,borderColor:true};for(a in c){if(c.hasOwnProperty(a)){b.vml.color.shape.style[a]=b.currentStyle[a]}}},vmlFill:function(e){if(!e.currentStyle){return}else{var d,f,g,b,a,c;d=e.currentStyle}for(b in e.vml){if(e.vml.hasOwnProperty(b)){e.vml[b].shape.style.zIndex=d.zIndex}}e.runtimeStyle.backgroundColor="";e.runtimeStyle.backgroundImage="";f=true;if(d.backgroundImage!="none"||e.isImg){if(!e.isImg){e.vmlBg=d.backgroundImage;e.vmlBg=e.vmlBg.substr(5,e.vmlBg.lastIndexOf('")')-5)}else{e.vmlBg=e.src}g=this;if(!g.imgSize[e.vmlBg]){a=document.createElement("img");g.imgSize[e.vmlBg]=a;a.className=g.ns+"_sizeFinder";a.runtimeStyle.cssText="behavior:none; position:absolute; left:-10000px; top:-10000px; border:none; margin:0; padding:0;";c=function(){this.width=this.offsetWidth;this.height=this.offsetHeight;g.vmlOffsets(e)};a.attachEvent("onload",c);a.src=e.vmlBg;a.removeAttribute("width");a.removeAttribute("height");document.body.insertBefore(a,document.body.firstChild)}e.vml.image.fill.src=e.vmlBg;f=false}e.vml.image.fill.on=!f;e.vml.image.fill.color="none";e.vml.color.shape.style.backgroundColor=d.backgroundColor;e.runtimeStyle.backgroundImage="none";e.runtimeStyle.backgroundColor="transparent"},vmlOffsets:function(d){var h,n,a,e,g,m,f,l,j,i,k;h=d.currentStyle;n={W:d.clientWidth+1,H:d.clientHeight+1,w:this.imgSize[d.vmlBg].width,h:this.imgSize[d.vmlBg].height,L:d.offsetLeft,T:d.offsetTop,bLW:d.clientLeft,bTW:d.clientTop};a=(n.L+n.bLW==1)?1:0;e=function(b,p,q,c,s,u){b.coordsize=c+","+s;b.coordorigin=u+","+u;b.path="m0,0l"+c+",0l"+c+","+s+"l0,"+s+" xe";b.style.width=c+"px";b.style.height=s+"px";b.style.left=p+"px";b.style.top=q+"px"};e(d.vml.color.shape,(n.L+(d.isImg?0:n.bLW)),(n.T+(d.isImg?0:n.bTW)),(n.W-1),(n.H-1),0);e(d.vml.image.shape,(n.L+n.bLW),(n.T+n.bTW),(n.W),(n.H),1);g={X:0,Y:0};if(d.isImg){g.X=parseInt(h.paddingLeft,10)+1;g.Y=parseInt(h.paddingTop,10)+1}else{for(j in g){if(g.hasOwnProperty(j)){this.figurePercentage(g,n,j,h["backgroundPosition"+j])}}}d.vml.image.fill.position=(g.X/n.W)+","+(g.Y/n.H);m=h.backgroundRepeat;f={T:1,R:n.W+a,B:n.H,L:1+a};l={X:{b1:"L",b2:"R",d:"W"},Y:{b1:"T",b2:"B",d:"H"}};if(m!="repeat"||d.isImg){i={T:(g.Y),R:(g.X+n.w),B:(g.Y+n.h),L:(g.X)};if(m.search("repeat-")!=-1){k=m.split("repeat-")[1].toUpperCase();i[l[k].b1]=1;i[l[k].b2]=n[l[k].d]}if(i.B>n.H){i.B=n.H}d.vml.image.shape.style.clip="rect("+i.T+"px "+(i.R+a)+"px "+i.B+"px "+(i.L+a)+"px)"}else{d.vml.image.shape.style.clip="rect("+f.T+"px "+f.R+"px "+f.B+"px "+f.L+"px)"}},figurePercentage:function(d,c,f,a){var b,e;e=true;b=(f=="X");switch(a){case"left":case"top":d[f]=0;break;case"center":d[f]=0.5;break;case"right":case"bottom":d[f]=1;break;default:if(a.search("%")!=-1){d[f]=parseInt(a,10)/100}else{e=false}}d[f]=Math.ceil(e?((c[b?"W":"H"]*d[f])-(c[b?"w":"h"]*d[f])):parseInt(a,10));if(d[f]%2===0){d[f]++}return d[f]},fixPng:function(c){c.style.behavior="none";var g,b,f,a,d;if(c.nodeName=="BODY"||c.nodeName=="TD"||c.nodeName=="TR"){return}c.isImg=false;if(c.nodeName=="IMG"){if(c.src.toLowerCase().search(/\.png$/)!=-1){c.isImg=true;c.style.visibility="hidden"}else{return}}else{if(c.currentStyle.backgroundImage.toLowerCase().search(".png")==-1){return}}g=DD_belatedPNG;c.vml={color:{},image:{}};b={shape:{},fill:{}};for(a in c.vml){if(c.vml.hasOwnProperty(a)){for(d in b){if(b.hasOwnProperty(d)){f=g.ns+":"+d;c.vml[a][d]=document.createElement(f)}}c.vml[a].shape.stroked=false;c.vml[a].shape.appendChild(c.vml[a].fill);c.parentNode.insertBefore(c.vml[a].shape,c)}}c.vml.image.shape.fillcolor="none";c.vml.image.fill.type="tile";c.vml.color.fill.on=false;g.attachHandlers(c);g.giveLayout(c);g.giveLayout(c.offsetParent);c.vmlInitiated=true;g.applyVML(c)}};try{document.execCommand("BackgroundImageCache",false,true)}catch(r){}DD_belatedPNG.createVmlNameSpace();DD_belatedPNG.createVmlStyleSheet();
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/js/README.txt b/theme-blog.xenproject.org/carrington-blog/js/README.txt
new file mode 100644 (file)
index 0000000..4de7497
--- /dev/null
@@ -0,0 +1,5 @@
+## js/
+
+Organizational folder for holding theme JavaScript files.
+
+This directory is not used by the Carrington engine (template naming conventions are not supported), it is provided solely for convenience and for better organization of these files.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/js/carrington.js b/theme-blog.xenproject.org/carrington-blog/js/carrington.js
new file mode 100644 (file)
index 0000000..5de1a38
--- /dev/null
@@ -0,0 +1,125 @@
+jQuery.noConflict();
+
+cfct = {}
+
+cfct.loading = function() {
+       return '<div class="loading"><span>Loading...</span></div>';
+}
+
+cfct.ajax_post_content = function() {
+       jQuery('ol.archive .excerpt .entry-title a').unbind().click(function() {
+               var post_id = jQuery(this).attr('rev').replace('post-', '');
+               var excerpt = jQuery('#post-excerpt-' + post_id);
+               var target = jQuery('#post-content-' + post_id + '-target');
+               excerpt.hide();
+               target.html(cfct.loading()).show().load(CFCT_URL + '/index.php?cfct_action=post_content&id=' + post_id, function() {
+                       cfct.ajax_post_comments();
+                       jQuery('#post_close_' + post_id + ' a').click(function() {
+                               target.slideUp(function() {
+                                       excerpt.show();
+                               });
+                               return false;
+                       });
+                       jQuery(this).hide().slideDown();
+               });
+               return false;
+       });
+}
+
+cfct.ajax_post_comments = function() {
+       jQuery('p.comments-link a').unbind().click(function() {
+               var a = jQuery(this);
+               var post_id = a.attr('rev').replace('post-', '');
+               var target = jQuery('#post-comments-' + post_id + '-target');
+               target.html(cfct.loading()).show().load(CFCT_URL + '/index.php?cfct_action=post_comments&id=' + post_id, function() {
+                       jQuery(this).hide().slideDown(function() {
+                               a.attr('rel', a.html()).html('Hide Comments').unbind().click(function() {
+                                       target.slideUp(function() {
+                                               a.html(a.attr('rel'));
+                                               cfct.ajax_post_comments();
+                                       });
+                                       return false;
+                               });
+                       });
+               });
+               return false;
+       });
+}
+
+// Moves form for threaded comments: taken and modified from WordPress 2.7
+addComment = {
+       moveForm : function(commId, parentId, respondId, postId) {
+               var t = this, div, comm = t.I(commId), respond = t.I(respondId), cancel = t.I('cancel-comment-reply-link-p' + postId), parent = t.I('comment_parent_p' + postId), post = t.I('comment_post_ID_p' + postId);
+
+               if ( ! comm || ! respond || ! cancel || ! parent )
+                       return;
+
+               t.respondId = respondId;
+               postId = postId || false;
+
+               if ( ! t.I('wp-temp-form-div-p' + postId) ) {
+                       div = document.createElement('div');
+                       div.id = 'wp-temp-form-div-p' + postId;
+                       div.style.display = 'none';
+                       respond.parentNode.insertBefore(div, respond);
+               }
+
+               comm.parentNode.insertBefore(respond, comm.nextSibling);
+               if ( post && postId )
+                       post.value = postId;
+               parent.value = parentId;
+               cancel.style.display = '';
+
+               cancel.onclick = function() {
+                       var t = addComment, temp = t.I('wp-temp-form-div-p' + postId), respond = t.I(t.respondId);
+
+                       if ( ! temp || ! respond )
+                               return;
+
+                       t.I('comment_parent_p' + postId).value = '0';
+                       temp.parentNode.insertBefore(respond, temp);
+                       temp.parentNode.removeChild(temp);
+                       this.style.display = 'none';
+                       this.onclick = null;
+                       return false;
+               }
+
+               try { t.I('comment-p' + postId).focus(); }
+               catch(e) {}
+
+               return false;
+       },
+
+       I : function(e) {
+               return document.getElementById(e);
+       }
+}
+
+jQuery(function($) {
+       // :first-child fix for IE on nav
+       $('.nav li:first-child').addClass('first-child');
+       // :first-child fix for IE
+       $('.comment .comment-content p:last-child').addClass('last-child');
+       // :hover fix for full articles in IE
+       $('.full').mouseover(function() {
+               $(this).addClass('hover');
+       });
+       $('.full').mouseout(function() {
+               $(this).removeClass('hover');
+       });
+
+       // Suckerfish dropdowns IE :hover fix
+       $('.nav li').mouseover(function() {
+               $(this).addClass('hover');
+       });
+       $('.nav li').mouseout(function() {
+               $(this).removeClass('hover');
+       });
+       
+       if ((!$.browser.msie || $.browser.version.substr(0,1) != '6') && typeof CFCT_AJAX_LOAD != 'undefined' && CFCT_AJAX_LOAD) {
+               cfct.ajax_post_content();
+               cfct.ajax_post_comments();
+       }
+       $('.nav li a').removeAttr('title');
+       
+});
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/js/colorpicker.js b/theme-blog.xenproject.org/carrington-blog/js/colorpicker.js
new file mode 100644 (file)
index 0000000..e9dbd2e
--- /dev/null
@@ -0,0 +1,490 @@
+/**
+ *
+ * Color picker
+ * Author: Stefan Petre www.eyecon.ro
+ * 
+ */
+(function ($) {
+       var ColorPicker = function () {
+               var
+                       ids = {},
+                       inAction,
+                       charMin = 65,
+                       visible,
+                       tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
+                       defaults = {
+                               eventName: 'click',
+                               onShow: function () {},
+                               onBeforeShow: function(){},
+                               onHide: function () {},
+                               onChange: function () {},
+                               onSubmit: function () {},
+                               color: 'ff0000',
+                               livePreview: true,
+                               flat: false
+                       },
+                       fillRGBFields = function  (hsb, cal) {
+                               var rgb = HSBToRGB(hsb);
+                               $(cal).data('colorpicker').fields
+                                       .eq(1).val(rgb.r).end()
+                                       .eq(2).val(rgb.g).end()
+                                       .eq(3).val(rgb.b).end();
+                       },
+                       fillHSBFields = function  (hsb, cal) {
+                               $(cal).data('colorpicker').fields
+                                       .eq(4).val(hsb.h).end()
+                                       .eq(5).val(hsb.s).end()
+                                       .eq(6).val(hsb.b).end();
+                       },
+                       fillHexFields = function (hsb, cal) {
+                               $(cal).data('colorpicker').fields
+                                       .eq(0).val(HSBToHex(hsb)).end();
+                       },
+                       setSelector = function (hsb, cal) {
+                               $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
+                               $(cal).data('colorpicker').selectorIndic.css({
+                                       left: parseInt(150 * hsb.s/100, 10),
+                                       top: parseInt(150 * (100-hsb.b)/100, 10)
+                               });
+                       },
+                       setHue = function (hsb, cal) {
+                               $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
+                       },
+                       setCurrentColor = function (hsb, cal) {
+                               $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
+                       },
+                       setNewColor = function (hsb, cal) {
+                               $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
+                       },
+                       keyDown = function (ev) {
+                               var pressedKey = ev.charCode || ev.keyCode || -1;
+                               if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
+                                       return false;
+                               }
+                               var cal = $(this).parent().parent();
+                               if (cal.data('colorpicker').livePreview === true) {
+                                       change.apply(this);
+                               }
+                       },
+                       change = function (ev) {
+                               var cal = $(this).parent().parent(), col;
+                               if (this.parentNode.className.indexOf('_hex') > 0) {
+                                       cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
+                               } else if (this.parentNode.className.indexOf('_hsb') > 0) {
+                                       cal.data('colorpicker').color = col = fixHSB({
+                                               h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
+                                               s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
+                                               b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
+                                       });
+                               } else {
+                                       cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
+                                               r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
+                                               g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
+                                               b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
+                                       }));
+                               }
+                               if (ev) {
+                                       fillRGBFields(col, cal.get(0));
+                                       fillHexFields(col, cal.get(0));
+                                       fillHSBFields(col, cal.get(0));
+                               }
+                               setSelector(col, cal.get(0));
+                               setHue(col, cal.get(0));
+                               setNewColor(col, cal.get(0));
+                               cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
+                       },
+                       blur = function (ev) {
+                               var cal = $(this).parent().parent();
+                               cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus')
+                       },
+                       focus = function () {
+                               charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
+                               $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
+                               $(this).parent().addClass('colorpicker_focus');
+                       },
+                       downIncrement = function (ev) {
+                               var field = $(this).parent().find('input').focus();
+                               var current = {
+                                       el: $(this).parent().addClass('colorpicker_slider'),
+                                       max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
+                                       y: ev.pageY,
+                                       field: field,
+                                       val: parseInt(field.val(), 10),
+                                       preview: $(this).parent().parent().data('colorpicker').livePreview                                      
+                               };
+                               $(document).bind('mouseup', current, upIncrement);
+                               $(document).bind('mousemove', current, moveIncrement);
+                       },
+                       moveIncrement = function (ev) {
+                               ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
+                               if (ev.data.preview) {
+                                       change.apply(ev.data.field.get(0), [true]);
+                               }
+                               return false;
+                       },
+                       upIncrement = function (ev) {
+                               change.apply(ev.data.field.get(0), [true]);
+                               ev.data.el.removeClass('colorpicker_slider').find('input').focus();
+                               $(document).unbind('mouseup', upIncrement);
+                               $(document).unbind('mousemove', moveIncrement);
+                               return false;
+                       },
+                       downHue = function (ev) {
+                               var current = {
+                                       cal: $(this).parent(),
+                                       y: $(this).offset().top
+                               };
+                               current.preview = current.cal.data('colorpicker').livePreview;
+                               $(document).bind('mouseup', current, upHue);
+                               $(document).bind('mousemove', current, moveHue);
+                       },
+                       moveHue = function (ev) {
+                               change.apply(
+                                       ev.data.cal.data('colorpicker')
+                                               .fields
+                                               .eq(4)
+                                               .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
+                                               .get(0),
+                                       [ev.data.preview]
+                               );
+                               return false;
+                       },
+                       upHue = function (ev) {
+                               fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               $(document).unbind('mouseup', upHue);
+                               $(document).unbind('mousemove', moveHue);
+                               return false;
+                       },
+                       downSelector = function (ev) {
+                               var current = {
+                                       cal: $(this).parent(),
+                                       pos: $(this).offset()
+                               };
+                               current.preview = current.cal.data('colorpicker').livePreview;
+                               $(document).bind('mouseup', current, upSelector);
+                               $(document).bind('mousemove', current, moveSelector);
+                       },
+                       moveSelector = function (ev) {
+                               change.apply(
+                                       ev.data.cal.data('colorpicker')
+                                               .fields
+                                               .eq(6)
+                                               .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
+                                               .end()
+                                               .eq(5)
+                                               .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
+                                               .get(0),
+                                       [ev.data.preview]
+                               );
+                               return false;
+                       },
+                       upSelector = function (ev) {
+                               fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               $(document).unbind('mouseup', upSelector);
+                               $(document).unbind('mousemove', moveSelector);
+                               return false;
+                       },
+                       enterSubmit = function (ev) {
+                               $(this).addClass('colorpicker_focus');
+                       },
+                       leaveSubmit = function (ev) {
+                               $(this).removeClass('colorpicker_focus');
+                       },
+                       clickSubmit = function (ev) {
+                               var cal = $(this).parent();
+                               var col = cal.data('colorpicker').color;
+                               cal.data('colorpicker').origColor = col;
+                               setCurrentColor(col, cal.get(0));
+                               cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col));
+                       },
+                       show = function (ev) {
+                               var cal = $('#' + $(this).data('colorpickerId'));
+                               cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
+                               var pos = $(this).offset();
+                               var viewPort = getViewport();
+                               var top = pos.top + this.offsetHeight;
+                               var left = pos.left;
+                               if (top + 176 > viewPort.t + viewPort.h) {
+                                       top -= this.offsetHeight + 176;
+                               }
+                               if (left + 356 > viewPort.l + viewPort.w) {
+                                       left -= 356;
+                               }
+                               cal.css({left: left + 'px', top: top + 'px'});
+                               if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
+                                       cal.show();
+                               }
+                               $(document).bind('mousedown', {cal: cal}, hide);
+                               return false;
+                       },
+                       hide = function (ev) {
+                               if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
+                                       if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
+                                               ev.data.cal.hide();
+                                       }
+                                       $(document).unbind('mousedown', hide);
+                               }
+                       },
+                       isChildOf = function(parentEl, el, container) {
+                               if (parentEl == el) {
+                                       return true;
+                               }
+                               if (parentEl.contains) {
+                                       return parentEl.contains(el);
+                               }
+                               if ( parentEl.compareDocumentPosition ) {
+                                       return !!(parentEl.compareDocumentPosition(el) & 16);
+                               }
+                               var prEl = el.parentNode;
+                               while(prEl && prEl != container) {
+                                       if (prEl == parentEl)
+                                               return true;
+                                       prEl = prEl.parentNode;
+                               }
+                               return false;
+                       },
+                       getViewport = function () {
+                               var m = document.compatMode == 'CSS1Compat';
+                               return {
+                                       l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
+                                       t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
+                                       w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
+                                       h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
+                               };
+                       },
+                       fixHSB = function (hsb) {
+                               return {
+                                       h: Math.min(360, Math.max(0, hsb.h)),
+                                       s: Math.min(100, Math.max(0, hsb.s)),
+                                       b: Math.min(100, Math.max(0, hsb.b))
+                               };
+                       }, 
+                       fixRGB = function (rgb) {
+                               return {
+                                       r: Math.min(255, Math.max(0, rgb.r)),
+                                       g: Math.min(255, Math.max(0, rgb.g)),
+                                       b: Math.min(255, Math.max(0, rgb.b))
+                               };
+                       },
+                       fixHex = function (hex) {
+                               var len = 6 - hex.length;
+                               if (len > 0) {
+                                       var o = [];
+                                       for (var i=0; i<len; i++) {
+                                               o.push('0');
+                                       }
+                                       o.push(hex);
+                                       hex = o.join('');
+                               }
+                               return hex;
+                       }, 
+                       HexToRGB = function (hex) {
+                               var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
+                               return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
+                       },
+                       HexToHSB = function (hex) {
+                               return RGBToHSB(HexToRGB(hex));
+                       },
+                       RGBToHSB = function (rgb) {
+                               var hsb = {};
+                               hsb.b = Math.max(Math.max(rgb.r,rgb.g),rgb.b);
+                               hsb.s = (hsb.b <= 0) ? 0 : Math.round(100*(hsb.b - Math.min(Math.min(rgb.r,rgb.g),rgb.b))/hsb.b);
+                               hsb.b = Math.round((hsb.b /255)*100);
+                               if((rgb.r==rgb.g) && (rgb.g==rgb.b)) hsb.h = 0;
+                               else if(rgb.r>=rgb.g && rgb.g>=rgb.b) hsb.h = 60*(rgb.g-rgb.b)/(rgb.r-rgb.b);
+                               else if(rgb.g>=rgb.r && rgb.r>=rgb.b) hsb.h = 60  + 60*(rgb.g-rgb.r)/(rgb.g-rgb.b);
+                               else if(rgb.g>=rgb.b && rgb.b>=rgb.r) hsb.h = 120 + 60*(rgb.b-rgb.r)/(rgb.g-rgb.r);
+                               else if(rgb.b>=rgb.g && rgb.g>=rgb.r) hsb.h = 180 + 60*(rgb.b-rgb.g)/(rgb.b-rgb.r);
+                               else if(rgb.b>=rgb.r && rgb.r>=rgb.g) hsb.h = 240 + 60*(rgb.r-rgb.g)/(rgb.b-rgb.g);
+                               else if(rgb.r>=rgb.b && rgb.b>=rgb.g) hsb.h = 300 + 60*(rgb.r-rgb.b)/(rgb.r-rgb.g);
+                               else hsb.h = 0;
+                               hsb.h = Math.round(hsb.h);
+                               return hsb;
+                       },
+                       HSBToRGB = function (hsb) {
+                               var rgb = {};
+                               var h = Math.round(hsb.h);
+                               var s = Math.round(hsb.s*255/100);
+                               var v = Math.round(hsb.b*255/100);
+                               if(s == 0) {
+                                       rgb.r = rgb.g = rgb.b = v;
+                               } else {
+                                       var t1 = v;
+                                       var t2 = (255-s)*v/255;
+                                       var t3 = (t1-t2)*(h%60)/60;
+                                       if(h==360) h = 0;
+                                       if(h<60) {rgb.r=t1;     rgb.b=t2; rgb.g=t2+t3}
+                                       else if(h<120) {rgb.g=t1; rgb.b=t2;     rgb.r=t1-t3}
+                                       else if(h<180) {rgb.g=t1; rgb.r=t2;     rgb.b=t2+t3}
+                                       else if(h<240) {rgb.b=t1; rgb.r=t2;     rgb.g=t1-t3}
+                                       else if(h<300) {rgb.b=t1; rgb.g=t2;     rgb.r=t2+t3}
+                                       else if(h<360) {rgb.r=t1; rgb.g=t2;     rgb.b=t1-t3}
+                                       else {rgb.r=0; rgb.g=0; rgb.b=0}
+                               }
+                               return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
+                       },
+                       RGBToHex = function (rgb) {
+                               var hex = [
+                                       rgb.r.toString(16),
+                                       rgb.g.toString(16),
+                                       rgb.b.toString(16)
+                               ];
+                               $.each(hex, function (nr, val) {
+                                       if (val.length == 1) {
+                                               hex[nr] = '0' + val;
+                                       }
+                               });
+                               return hex.join('');
+                       },
+                       HSBToHex = function (hsb) {
+                               return RGBToHex(HSBToRGB(hsb));
+                       };
+               return {
+                       init: function (options) {
+                               options = $.extend({}, defaults, options||{});
+                               if (typeof options.color == 'string') {
+                                       options.color = HexToHSB(options.color);
+                               } else if (options.color.r != undefined && options.color.g != undefined && options.color.b != undefined) {
+                                       options.color = RGBToHSB(options.color);
+                               } else if (options.color.h != undefined && options.color.s != undefined && options.color.b != undefined) {
+                                       options.color = fixHSB(options.color);
+                               } else {
+                                       return this;
+                               }
+                               options.origColor = options.color;
+                               return this.each(function () {
+                                       if (!$(this).data('colorpickerId')) {
+                                               var id = 'collorpicker_' + parseInt(Math.random() * 1000);
+                                               $(this).data('colorpickerId', id);
+                                               var cal = $(tpl).attr('id', id);
+                                               if (options.flat) {
+                                                       cal.appendTo(this).show();
+                                               } else {
+                                                       cal.appendTo(document.body);
+                                               }
+                                               options.fields = cal
+                                                                                       .find('input')
+                                                                                               .bind('keydown', keyDown)
+                                                                                               .bind('change', change)
+                                                                                               .bind('blur', blur)
+                                                                                               .bind('focus', focus);
+                                               cal.find('span').bind('mousedown', downIncrement);
+                                               options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
+                                               options.selectorIndic = options.selector.find('div div');
+                                               options.hue = cal.find('div.colorpicker_hue div');
+                                               cal.find('div.colorpicker_hue').bind('mousedown', downHue);
+                                               options.newColor = cal.find('div.colorpicker_new_color');
+                                               options.currentColor = cal.find('div.colorpicker_current_color');
+                                               cal.data('colorpicker', options);
+                                               cal.find('div.colorpicker_submit')
+                                                       .bind('mouseenter', enterSubmit)
+                                                       .bind('mouseleave', leaveSubmit)
+                                                       .bind('click', clickSubmit);
+                                               fillRGBFields(options.color, cal.get(0));
+                                               fillHSBFields(options.color, cal.get(0));
+                                               fillHexFields(options.color, cal.get(0));
+                                               setHue(options.color, cal.get(0));
+                                               setSelector(options.color, cal.get(0));
+                                               setCurrentColor(options.color, cal.get(0));
+                                               setNewColor(options.color, cal.get(0));
+                                               if (options.flat) {
+                                                       cal.css({
+                                                               position: 'relative',
+                                                               display: 'block'
+                                                       });
+                                               } else {
+                                                       $(this).bind(options.eventName, show);
+                                               }
+                                       }
+                               });
+                       },
+                       showPicker: function() {
+                               return this.each( function () {
+                                       if ($(this).data('colorpickerId')) {
+                                               show.apply(this);
+                                       }
+                               });
+                       },
+                       hidePicker: function() {
+                               return this.each( function () {
+                                       if ($(this).data('colorpickerId')) {
+                                               $('#' + $(this).data('colorpickerId')).hide();
+                                       }
+                               });
+                       },
+                       setColor: function(col) {
+                               if (typeof col == 'string') {
+                                       col = HexToHSB(col);
+                               } else if (col.r != undefined && col.g != undefined && col.b != undefined) {
+                                       col = RGBToHSB(col);
+                               } else if (col.h != undefined && col.s != undefined && col.b != undefined) {
+                                       col = fixHSB(col);
+                               } else {
+                                       return this;
+                               }
+                               return this.each(function(){
+                                       if ($(this).data('colorpickerId')) {
+                                               var cal = $('#' + $(this).data('colorpickerId'));
+                                               cal.data('colorpicker').color = col;
+                                               cal.data('colorpicker').origColor = col;
+                                               fillRGBFields(col, cal.get(0));
+                                               fillHSBFields(col, cal.get(0));
+                                               fillHexFields(col, cal.get(0));
+                                               setHue(col, cal.get(0));
+                                               setSelector(col, cal.get(0));
+                                               setCurrentColor(col, cal.get(0));
+                                               setNewColor(col, cal.get(0));
+                                       }
+                               });
+                       }
+               };
+       }();
+       $.fn.extend({
+               ColorPicker: ColorPicker.init,
+               ColorPickerHide: ColorPicker.hide,
+               ColorPickerShow: ColorPicker.show,
+               ColorPickerSetColor: ColorPicker.setColor
+       });
+})(jQuery)
+
+// hex to decimal code found here and used with minor modification: http://www.telerik.com/community/forums/aspnet-ajax/colorpicker/calculate-color-contrast-in-javascript.aspx
+function getDec(hexChar) {
+       if (typeof hexChar == 'undefined') {
+               return 0;
+       }
+       switch(hexChar.toUpperCase()) {
+               case '0': return 0;
+               case '1': return 1;
+               case '2': return 2;
+               case '3': return 3;
+               case '4': return 4;
+               case '5': return 5;
+               case '6': return 6;
+               case '7': return 7;
+               case '8': return 8;
+               case '9': return 9;
+               case 'A': return 10;
+               case 'B': return 11;
+               case 'C': return 12;
+               case 'D': return 13;
+               case 'E': return 14;
+               case 'F': return 15;
+       };
+}
+function hexToDec(hex) {
+       var colorChars = hex.split('');
+       var dec = (getDec(colorChars[0]) * 16) + getDec(colorChars[1]);
+       return dec;
+}
+function getRGB(color) {
+       // remove the '#'
+       if (color.indexOf('#') != -1) {
+               color = color.substring(color.indexOf('#') + 1);
+       }
+       var r = hexToDec(color.substr(0, 2));
+       var g = hexToDec(color.substr(2, 2));
+       var b = hexToDec(color.substr(4, 2));
+       return { r: r, g: g, b: b};
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/js/iepngfix_tilebg.js b/theme-blog.xenproject.org/carrington-blog/js/iepngfix_tilebg.js
new file mode 100644 (file)
index 0000000..41dc831
--- /dev/null
@@ -0,0 +1,173 @@
+// IE5.5+ PNG Alpha Fix v2.0 Alpha: Background Tiling Support
+// (c) 2008 Angus Turnbull http://www.twinhelix.com
+
+// This is licensed under the GNU LGPL, version 2.1 or later.
+// For details, see: http://creativecommons.org/licenses/LGPL/2.1/
+
+var IEPNGFix = window.IEPNGFix || {};
+
+IEPNGFix.tileBG = function(elm, pngSrc, ready) {
+       // Params: A reference to a DOM element, the PNG src file pathname, and a
+       // hidden "ready-to-run" passed when called back after image preloading.
+
+       var data = this.data[elm.uniqueID],
+               elmW = Math.max(elm.clientWidth, elm.scrollWidth),
+               elmH = Math.max(elm.clientHeight, elm.scrollHeight),
+               bgX = elm.currentStyle.backgroundPositionX,
+               bgY = elm.currentStyle.backgroundPositionY,
+               bgR = elm.currentStyle.backgroundRepeat;
+
+       // Cache of DIVs created per element, and image preloader/data.
+       if (!data.tiles) {
+               data.tiles = {
+                       elm: elm,
+                       src: '',
+                       cache: [],
+                       img: new Image(),
+                       old: {}
+               };
+       }
+       var tiles = data.tiles,
+               pngW = tiles.img.width,
+               pngH = tiles.img.height;
+
+       if (pngSrc) {
+               if (!ready && pngSrc != tiles.src) {
+                       // New image? Preload it with a callback to detect dimensions.
+                       tiles.img.onload = function() {
+                               this.onload = null;
+                               IEPNGFix.tileBG(elm, pngSrc, 1);
+                       };
+                       return tiles.img.src = pngSrc;
+               }
+       } else {
+               // No image?
+               if (tiles.src) ready = 1;
+               pngW = pngH = 0;
+       }
+       tiles.src = pngSrc;
+
+       if (!ready && elmW == tiles.old.w && elmH == tiles.old.h &&
+               bgX == tiles.old.x && bgY == tiles.old.y && bgR == tiles.old.r) {
+               return;
+       }
+
+       // Convert English and percentage positions to pixels.
+       var pos = {
+                       top: '0%',
+                       left: '0%',
+                       center: '50%',
+                       bottom: '100%',
+                       right: '100%'
+               },
+               x,
+               y,
+               pc;
+       x = pos[bgX] || bgX;
+       y = pos[bgY] || bgY;
+       if (pc = x.match(/(\d+)%/)) {
+               x = Math.round((elmW - pngW) * (parseInt(pc[1]) / 100));
+       }
+       if (pc = y.match(/(\d+)%/)) {
+               y = Math.round((elmH - pngH) * (parseInt(pc[1]) / 100));
+       }
+       x = parseInt(x);
+       y = parseInt(y);
+
+       // Handle backgroundRepeat.
+       var repeatX = { 'repeat': 1, 'repeat-x': 1 }[bgR],
+               repeatY = { 'repeat': 1, 'repeat-y': 1 }[bgR];
+       if (repeatX) {
+               x %= pngW;
+               if (x > 0) x -= pngW;
+       }
+       if (repeatY) {
+               y %= pngH;
+               if (y > 0) y -= pngH;
+       }
+
+       // Go!
+       this.hook.enabled = 0;
+       if (!({ relative: 1, absolute: 1 }[elm.currentStyle.position])) {
+               elm.style.position = 'relative';
+       }
+       var count = 0,
+               xPos,
+               maxX = repeatX ? elmW : x + 0.1,
+               yPos,
+               maxY = repeatY ? elmH : y + 0.1,
+               d,
+               s,
+               isNew;
+       if (pngW && pngH) {
+               for (xPos = x; xPos < maxX; xPos += pngW) {
+                       for (yPos = y; yPos < maxY; yPos += pngH) {
+                               isNew = 0;
+                               if (!tiles.cache[count]) {
+                                       tiles.cache[count] = document.createElement('div');
+                                       isNew = 1;
+                               }
+                               var clipR = (xPos + pngW > elmW ? elmW - xPos : pngW),
+                                       clipB = (yPos + pngH > elmH ? elmH - yPos : pngH);
+                               d = tiles.cache[count];
+                               s = d.style;
+                               s.behavior = 'none';
+                               s.left = xPos + 'px';
+                               s.top = yPos + 'px';
+                               s.width = clipR + 'px';
+                               s.height = clipB + 'px';
+                               s.clip = 'rect(' +
+                                       (yPos < 0 ? 0 - yPos : 0) + 'px,' +
+                                       clipR + 'px,' +
+                                       clipB + 'px,' +
+                                       (xPos < 0 ? 0 - xPos : 0) + 'px)';
+                               s.display = 'block';
+                               if (isNew) {
+                                       s.position = 'absolute';
+                                       s.zIndex = -999;
+                                       if (elm.firstChild) {
+                                               elm.insertBefore(d, elm.firstChild);
+                                       } else {
+                                               elm.appendChild(d);
+                                       }
+                               }
+                               this.fix(d, pngSrc, 0);
+                               count++;
+                       }
+               }
+       }
+       while (count < tiles.cache.length) {
+               this.fix(tiles.cache[count], '', 0);
+               tiles.cache[count++].style.display = 'none';
+       }
+
+       this.hook.enabled = 1;
+
+       // Cache so updates are infrequent.
+       tiles.old = {
+               w: elmW,
+               h: elmH,
+               x: bgX,
+               y: bgY,
+               r: bgR
+       };
+};
+
+
+IEPNGFix.update = function() {
+       // Update all PNG backgrounds.
+       for (var i in IEPNGFix.data) {
+               var t = IEPNGFix.data[i].tiles;
+               if (t && t.elm && t.src) {
+                       IEPNGFix.tileBG(t.elm, t.src);
+               }
+       }
+};
+IEPNGFix.update.timer = 0;
+
+if (window.attachEvent && !window.opera) {
+       window.attachEvent('onresize', function() {
+               clearTimeout(IEPNGFix.update.timer);
+               IEPNGFix.update.timer = setTimeout(IEPNGFix.update, 100);
+       });
+}
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/lightbox/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..9c78404
--- /dev/null
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 45
+/svn/!svn/ver/502/framework/tags/3.0/lightbox
+END
+LICENSE.txt
+K 25
+svn:wc:ra_dav:version-url
+V 57
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/LICENSE.txt
+END
+thickbox.js
+K 25
+svn:wc:ra_dav:version-url
+V 57
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/thickbox.js
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/.svn/entries b/theme-blog.xenproject.org/carrington-blog/lightbox/.svn/entries
new file mode 100644 (file)
index 0000000..be9fd4f
--- /dev/null
@@ -0,0 +1,102 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/lightbox
+http://carrington.googlecode.com/svn
+
+
+
+2009-06-29T22:33:58.876485Z
+396
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+LICENSE.txt
+file
+
+
+
+
+2010-08-02T15:33:18.267717Z
+d8a95e1630f5df805247342084051968
+2009-01-19T05:22:29.622691Z
+74
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1569
+\f
+thickbox.js
+file
+
+
+
+
+2010-08-02T15:33:18.267717Z
+a0688685fe1b9eb51abde68bd2623b10
+2009-06-29T22:33:58.876485Z
+396
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+12484
+\f
+css
+dir
+\f
+img
+dir
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/.svn/prop-base/LICENSE.txt.svn-base b/theme-blog.xenproject.org/carrington-blog/lightbox/.svn/prop-base/LICENSE.txt.svn-base
new file mode 100644 (file)
index 0000000..869ac71
--- /dev/null
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/.svn/text-base/LICENSE.txt.svn-base b/theme-blog.xenproject.org/carrington-blog/lightbox/.svn/text-base/LICENSE.txt.svn-base
new file mode 100644 (file)
index 0000000..55a9d86
--- /dev/null
@@ -0,0 +1,30 @@
+Software License Agreement (BSD License)
+
+Copyright (c) 2008 Warren Krewenki
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, with or without modification, are
+permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of jQuery Lightbox nor the names of its
+  contributors may be used to endorse or promote products
+  derived from this software without specific prior
+  written permission of jQuery Lightbox.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/.svn/text-base/thickbox.js.svn-base b/theme-blog.xenproject.org/carrington-blog/lightbox/.svn/text-base/thickbox.js.svn-base
new file mode 100644 (file)
index 0000000..cfd23b4
--- /dev/null
@@ -0,0 +1,332 @@
+/*
+ * Thickbox 3.1 - One Box To Rule Them All.
+ * By Cody Lindley (http://www.codylindley.com)
+ * Copyright (c) 2007 cody lindley
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
+*/
+                 
+var tb_pathToImage = "images/loadingAnimation.gif";
+
+/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
+
+//on page load call tb_init
+jQuery(document).ready(function(){   
+       tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
+       imgLoader = new Image();// preload image
+       imgLoader.src = tb_pathToImage;
+});
+
+//add thickbox to href & area elements that have a class of .thickbox
+function tb_init(domChunk){
+       jQuery(domChunk).click(function(){
+       var t = this.title || this.name || null;
+       var a = this.href || this.alt;
+       var g = this.rel || false;
+       tb_show(t,a,g);
+       this.blur();
+       return false;
+       });
+}
+
+function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link
+
+       try {
+               if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
+                       jQuery("body","html").css({height: "100%", width: "100%"});
+                       jQuery("html").css("overflow","hidden");
+                       if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
+                               jQuery("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
+                               jQuery("#TB_overlay").click(tb_remove);
+                       }
+               }else{//all others
+                       if(document.getElementById("TB_overlay") === null){
+                               jQuery("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
+                               jQuery("#TB_overlay").click(tb_remove);
+                       }
+               }
+               
+               if(tb_detectMacXFF()){
+                       jQuery("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
+               }else{
+                       jQuery("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
+               }
+               
+               if(caption===null){caption="";}
+               jQuery("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
+               jQuery('#TB_load').show();//show loader
+               
+               var baseURL;
+          if(url.indexOf("?")!==-1){ //ff there is a query string involved
+                       baseURL = url.substr(0, url.indexOf("?"));
+          }else{ 
+                       baseURL = url;
+          }
+          
+          var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
+          var urlType = baseURL.toLowerCase().match(urlString);
+
+               if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
+                               
+                       TB_PrevCaption = "";
+                       TB_PrevURL = "";
+                       TB_PrevHTML = "";
+                       TB_NextCaption = "";
+                       TB_NextURL = "";
+                       TB_NextHTML = "";
+                       TB_imageCount = "";
+                       TB_FoundURL = false;
+                       if(imageGroup){
+                               TB_TempArray = jQuery("a[rel="+imageGroup+"]").get();
+                               for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
+                                       var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
+                                               if (!(TB_TempArray[TB_Counter].href == url)) {                                          
+                                                       if (TB_FoundURL) {
+                                                               TB_NextCaption = TB_TempArray[TB_Counter].title;
+                                                               TB_NextURL = TB_TempArray[TB_Counter].href;
+                                                               TB_NextHTML = "<a id='TB_next' href='#'>Next &gt;</a>";
+                                                       } else {
+                                                               TB_PrevCaption = TB_TempArray[TB_Counter].title;
+                                                               TB_PrevURL = TB_TempArray[TB_Counter].href;
+                                                               TB_PrevHTML = "<a id='TB_prev' href='#'>&lt; Prev</a>";
+                                                       }
+                                               } else {
+                                                       TB_FoundURL = true;
+                                                       TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);                                                                                     
+                                               }
+                               }
+                       }
+
+                       imgPreloader = new Image();
+                       imgPreloader.onload = function(){               
+                       imgPreloader.onload = null;
+
+// preload patch from: http://drupal.org/files/issues/thickbox_preloadimage.patch
+prevImg = new Image();
+nextImg = new Image();
+var tb_links = jQuery('a[class="thickbox"]');
+var i = -1;
+tb_links.each(function(n) { if (this.href == imgPreloader.src) { i = n; } });
+if (i != -1) {
+       if (i > 0) { prevImg.src = tb_links[i-1].href; }
+       if (i+1 < tb_links.length) { nextImg.src = tb_links[i+1].href; }
+}
+
+
+                       // Resizing large images - orginal by Christian Montoya edited by me.
+                       var pagesize = tb_getPageSize();
+                       var x = pagesize[0] - 150;
+                       var y = pagesize[1] - 170;
+                       var imageWidth = imgPreloader.width;
+                       var imageHeight = imgPreloader.height;
+                       if (imageWidth > x) {
+                               imageHeight = imageHeight * (x / imageWidth); 
+                               imageWidth = x; 
+                               if (imageHeight > y) { 
+                                       imageWidth = imageWidth * (y / imageHeight); 
+                                       imageHeight = y; 
+                               }
+                       } else if (imageHeight > y) { 
+                               imageWidth = imageWidth * (y / imageHeight); 
+                               imageHeight = y; 
+                               if (imageWidth > x) { 
+                                       imageHeight = imageHeight * (x / imageWidth); 
+                                       imageWidth = x;
+                               }
+                       }
+                       // End Resizing
+                       
+                       
+                       /* TODO: auto-calculate heights based on jQuery.height() of elements */
+                       TB_WIDTH = imageWidth + 30;
+                       TB_HEIGHT = imageHeight + 130;
+                       jQuery("#TB_window").append("<div id='TB_title'><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><div id='TB_ImageWrapper' style='height:"+imageHeight+"px;width:"+imageWidth+"px;'><div id='TB_ImageHoverNav'>"+TB_PrevHTML+TB_NextHTML+"</div><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></div><div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + "</div></div>");
+                       jQuery("#TB_closeWindowButton").click(tb_remove);
+                       
+                       if (!(TB_PrevHTML === "")) {
+                               function goPrev(){
+                                       if(jQuery(document).unbind("click",goPrev)){jQuery(document).unbind("click",goPrev);}
+                                       jQuery("#TB_window").remove();
+                                       jQuery("body").append("<div id='TB_window'></div>");
+                                       tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
+                                       return false;   
+                               }
+                               jQuery("#TB_prev").click(goPrev);
+                       }
+                       
+                       if (!(TB_NextHTML === "")) {            
+                               function goNext(){
+                                       jQuery("#TB_window").remove();
+                                       jQuery("body").append("<div id='TB_window'></div>");
+                                       tb_show(TB_NextCaption, TB_NextURL, imageGroup);
+                                       return false;
+                               }
+                               jQuery("#TB_next").click(goNext);
+                               
+                       }
+
+                       document.onkeydown = function(e){       
+                               if (e == null) { // ie
+                                       keycode = event.keyCode;
+                               } else { // mozilla
+                                       keycode = e.which;
+                               }
+                               if(keycode == 27){ // close
+                                       tb_remove();
+                               } else if(keycode == 190 || keycode == 39){ // display next image
+                                       if(!(TB_NextHTML == "")){
+                                               document.onkeydown = "";
+                                               goNext();
+                                       }
+                               } else if(keycode == 188 || keycode == 37){ // display previous image
+                                       if(!(TB_PrevHTML == "")){
+                                               document.onkeydown = "";
+                                               goPrev();
+                                       }
+                               }       
+                       };
+                       
+                       tb_position();
+                       jQuery("#TB_load").remove();
+                       jQuery("#TB_ImageOff").click(tb_remove);
+                       jQuery("#TB_window").css({display:"block"}); //for safari using css instead of show
+                       };
+                       
+                       imgPreloader.src = url;
+               }else{//code to show html
+                       
+                       var queryString = url.replace(/^[^\?]+\??/,'');
+                       var params = tb_parseQuery( queryString );
+
+                       TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
+                       TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
+                       ajaxContentW = TB_WIDTH - 30;
+                       ajaxContentH = TB_HEIGHT - 45;
+                       
+                       if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window              
+                                       urlNoQuery = url.split('TB_');
+                                       jQuery("#TB_iframeContent").remove();
+                                       if(params['modal'] != "true"){//iframe no modal
+                                               jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
+                                       }else{//iframe modal
+                                       jQuery("#TB_overlay").unbind();
+                                               jQuery("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
+                                       }
+                       }else{// not an iframe, ajax
+                                       if(jQuery("#TB_window").css("display") != "block"){
+                                               if(params['modal'] != "true"){//ajax no modal
+                                               jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
+                                               }else{//ajax modal
+                                               jQuery("#TB_overlay").unbind();
+                                               jQuery("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");    
+                                               }
+                                       }else{//this means the window is already up, we are just loading new content via ajax
+                                               jQuery("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
+                                               jQuery("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
+                                               jQuery("#TB_ajaxContent")[0].scrollTop = 0;
+                                               jQuery("#TB_ajaxWindowTitle").html(caption);
+                                       }
+                       }
+                                       
+                       jQuery("#TB_closeWindowButton").click(tb_remove);
+                       
+                               if(url.indexOf('TB_inline') != -1){     
+                                       jQuery("#TB_ajaxContent").append(jQuery('#' + params['inlineId']).children());
+                                       jQuery("#TB_window").unload(function () {
+                                               jQuery('#' + params['inlineId']).append( jQuery("#TB_ajaxContent").children() ); // move elements back when you're finished
+                                       });
+                                       tb_position();
+                                       jQuery("#TB_load").remove();
+                                       jQuery("#TB_window").css({display:"block"}); 
+                               }else if(url.indexOf('TB_iframe') != -1){
+                                       tb_position();
+                                       if($.browser.safari){//safari needs help because it will not fire iframe onload
+                                               jQuery("#TB_load").remove();
+                                               jQuery("#TB_window").css({display:"block"});
+                                       }
+                               }else{
+                                       jQuery("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
+                                               tb_position();
+                                               jQuery("#TB_load").remove();
+                                               tb_init("#TB_ajaxContent a.thickbox");
+                                               jQuery("#TB_window").css({display:"block"});
+                                       });
+                               }
+                       
+               }
+
+               if(!params['modal']){
+                       document.onkeyup = function(e){         
+                               if (e == null) { // ie
+                                       keycode = event.keyCode;
+                               } else { // mozilla
+                                       keycode = e.which;
+                               }
+                               if(keycode == 27){ // close
+                                       tb_remove();
+                               }       
+                       };
+               }
+               
+       } catch(e) {
+               //nothing here
+       }
+}
+
+//helper functions below
+function tb_showIframe(){
+       jQuery("#TB_load").remove();
+       jQuery("#TB_window").css({display:"block"});
+}
+
+function tb_remove() {
+       jQuery("#TB_imageOff").unbind("click");
+       jQuery("#TB_closeWindowButton").unbind("click");
+       jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
+       jQuery("#TB_load").remove();
+       if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
+               jQuery("body","html").css({height: "auto", width: "auto"});
+               jQuery("html").css("overflow","");
+       }
+       document.onkeydown = "";
+       document.onkeyup = "";
+       return false;
+}
+
+function tb_position() {
+jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
+       if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
+               jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
+       }
+}
+
+function tb_parseQuery ( query ) {
+   var Params = {};
+   if ( ! query ) {return Params;}// return empty object
+   var Pairs = query.split(/[;&]/);
+   for ( var i = 0; i < Pairs.length; i++ ) {
+      var KeyVal = Pairs[i].split('=');
+      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
+      var key = unescape( KeyVal[0] );
+      var val = unescape( KeyVal[1] );
+      val = val.replace(/\+/g, ' ');
+      Params[key] = val;
+   }
+   return Params;
+}
+
+function tb_getPageSize(){
+       var de = document.documentElement;
+       var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
+       var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
+       arrayPageSize = [w,h];
+       return arrayPageSize;
+}
+
+function tb_detectMacXFF() {
+  var userAgent = navigator.userAgent.toLowerCase();
+  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
+    return true;
+  }
+}
+
+
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/LICENSE.txt b/theme-blog.xenproject.org/carrington-blog/lightbox/LICENSE.txt
new file mode 100644 (file)
index 0000000..55a9d86
--- /dev/null
@@ -0,0 +1,30 @@
+Software License Agreement (BSD License)
+
+Copyright (c) 2008 Warren Krewenki
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, with or without modification, are
+permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of jQuery Lightbox nor the names of its
+  contributors may be used to endorse or promote products
+  derived from this software without specific prior
+  written permission of jQuery Lightbox.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/css/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/lightbox/css/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..d65b67e
--- /dev/null
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/css
+END
+thickbox.css
+K 25
+svn:wc:ra_dav:version-url
+V 62
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/css/thickbox.css
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/css/.svn/entries b/theme-blog.xenproject.org/carrington-blog/lightbox/css/.svn/entries
new file mode 100644 (file)
index 0000000..025d521
--- /dev/null
@@ -0,0 +1,62 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/lightbox/css
+http://carrington.googlecode.com/svn
+
+
+
+2009-02-23T22:20:48.406291Z
+205
+marlfoskr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+thickbox.css
+file
+
+
+
+
+2010-08-02T15:33:18.247714Z
+f629a77803bb1860d2b8351e95089db7
+2009-02-23T22:20:48.406291Z
+205
+marlfoskr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3115
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/css/.svn/text-base/thickbox.css.svn-base b/theme-blog.xenproject.org/carrington-blog/lightbox/css/.svn/text-base/thickbox.css.svn-base
new file mode 100644 (file)
index 0000000..2586a5c
--- /dev/null
@@ -0,0 +1,157 @@
+/* ----------------------------------------------------------------------------------------------------------------*/
+/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
+/* ----------------------------------------------------------------------------------------------------------------*/
+#TB_overlay {
+       position: fixed;
+       z-index:100;
+       top: 0px;
+       left: 0px;
+       height:100%;
+       width:100%;
+}
+
+.TB_overlayMacFFBGHack {background: url(../img/macFFBgHack.png) repeat;}
+.TB_overlayBG {
+       background-color:#000;
+       filter:alpha(opacity=75);
+       -moz-opacity: 0.75;
+       opacity: 0.75;
+}
+
+* html #TB_overlay { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_window {
+       position: fixed;
+       background: #ffffff;
+       z-index: 102;
+       display:none;
+       border: 2px solid #ccc;
+       text-align:left;
+       top:50%;
+       left:50%;
+}
+
+* html #TB_window { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_window img#TB_Image {
+       display:block;
+}
+
+#TB_caption{
+       padding:7px 30px 10px 25px;
+       float:left;
+       overflow:hidden;
+       word-wrap: break-word;
+}
+
+#TB_closeWindow{
+       height:25px;
+       padding:11px 25px 10px 0;
+       float:right;
+}
+
+#TB_closeAjaxWindow{
+       float:right;
+       padding:5px 15px 5px 0;
+       margin-bottom:1px;
+       text-align:right;
+}
+
+#TB_ajaxWindowTitle{
+       float:left;
+       padding:5px 0 5px 15px;
+}
+
+#TB_title{
+       height:27px;
+}
+
+#TB_ImageWrapper {
+       margin:15px 15px 0;
+       position:relative;
+}
+#TB_ImageHoverNav {
+       height:100%;
+       top:0;
+       width: 100%;
+       position:absolute;
+       zoom:1;
+}
+a#TB_prev,
+a#TB_next {
+       background:transparent url(../img/blank.gif); /* IE6 hover area hack */
+       height:100%;
+       width: 49%;
+       text-indent:-32000px;
+}
+a#TB_prev {
+       float:left;
+}
+a#TB_next {
+       float:right;
+}
+
+#TB_ajaxContent{
+       clear:both;
+       padding:2px 15px 15px 15px;
+       overflow:auto;
+       text-align:left;
+       line-height:1.4em;
+}
+
+#TB_ajaxContent.TB_modal{
+       padding:15px;
+}
+
+#TB_ajaxContent p{
+       padding:5px 0px 5px 0px;
+}
+
+#TB_load{
+       position: fixed;
+       display:none;
+       height:13px;
+       width:208px;
+       z-index:103;
+       top: 50%;
+       left: 50%;
+       margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
+}
+
+* html #TB_load { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_HideSelect{
+       z-index:99;
+       position:fixed;
+       top: 0;
+       left: 0;
+       background-color:#fff;
+       border:none;
+       filter:alpha(opacity=0);
+       -moz-opacity: 0;
+       opacity: 0;
+       height:100%;
+       width:100%;
+}
+
+* html #TB_HideSelect { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_iframeContent{
+       clear:both;
+       border:none;
+       margin-bottom:-1px;
+       margin-top:1px;
+       _margin-bottom:1px;
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/css/thickbox.css b/theme-blog.xenproject.org/carrington-blog/lightbox/css/thickbox.css
new file mode 100644 (file)
index 0000000..2586a5c
--- /dev/null
@@ -0,0 +1,157 @@
+/* ----------------------------------------------------------------------------------------------------------------*/
+/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
+/* ----------------------------------------------------------------------------------------------------------------*/
+#TB_overlay {
+       position: fixed;
+       z-index:100;
+       top: 0px;
+       left: 0px;
+       height:100%;
+       width:100%;
+}
+
+.TB_overlayMacFFBGHack {background: url(../img/macFFBgHack.png) repeat;}
+.TB_overlayBG {
+       background-color:#000;
+       filter:alpha(opacity=75);
+       -moz-opacity: 0.75;
+       opacity: 0.75;
+}
+
+* html #TB_overlay { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_window {
+       position: fixed;
+       background: #ffffff;
+       z-index: 102;
+       display:none;
+       border: 2px solid #ccc;
+       text-align:left;
+       top:50%;
+       left:50%;
+}
+
+* html #TB_window { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_window img#TB_Image {
+       display:block;
+}
+
+#TB_caption{
+       padding:7px 30px 10px 25px;
+       float:left;
+       overflow:hidden;
+       word-wrap: break-word;
+}
+
+#TB_closeWindow{
+       height:25px;
+       padding:11px 25px 10px 0;
+       float:right;
+}
+
+#TB_closeAjaxWindow{
+       float:right;
+       padding:5px 15px 5px 0;
+       margin-bottom:1px;
+       text-align:right;
+}
+
+#TB_ajaxWindowTitle{
+       float:left;
+       padding:5px 0 5px 15px;
+}
+
+#TB_title{
+       height:27px;
+}
+
+#TB_ImageWrapper {
+       margin:15px 15px 0;
+       position:relative;
+}
+#TB_ImageHoverNav {
+       height:100%;
+       top:0;
+       width: 100%;
+       position:absolute;
+       zoom:1;
+}
+a#TB_prev,
+a#TB_next {
+       background:transparent url(../img/blank.gif); /* IE6 hover area hack */
+       height:100%;
+       width: 49%;
+       text-indent:-32000px;
+}
+a#TB_prev {
+       float:left;
+}
+a#TB_next {
+       float:right;
+}
+
+#TB_ajaxContent{
+       clear:both;
+       padding:2px 15px 15px 15px;
+       overflow:auto;
+       text-align:left;
+       line-height:1.4em;
+}
+
+#TB_ajaxContent.TB_modal{
+       padding:15px;
+}
+
+#TB_ajaxContent p{
+       padding:5px 0px 5px 0px;
+}
+
+#TB_load{
+       position: fixed;
+       display:none;
+       height:13px;
+       width:208px;
+       z-index:103;
+       top: 50%;
+       left: 50%;
+       margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
+}
+
+* html #TB_load { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_HideSelect{
+       z-index:99;
+       position:fixed;
+       top: 0;
+       left: 0;
+       background-color:#fff;
+       border:none;
+       filter:alpha(opacity=0);
+       -moz-opacity: 0;
+       opacity: 0;
+       height:100%;
+       width:100%;
+}
+
+* html #TB_HideSelect { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_iframeContent{
+       clear:both;
+       border:none;
+       margin-bottom:-1px;
+       margin-top:1px;
+       _margin-bottom:1px;
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..3b3ce1f
--- /dev/null
@@ -0,0 +1,23 @@
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/img
+END
+macFFBgHack.png
+K 25
+svn:wc:ra_dav:version-url
+V 65
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/img/macFFBgHack.png
+END
+loadingAnimation.gif
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/img/loadingAnimation.gif
+END
+blank.gif
+K 25
+svn:wc:ra_dav:version-url
+V 59
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/img/blank.gif
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/entries b/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/entries
new file mode 100644 (file)
index 0000000..7b7a3a4
--- /dev/null
@@ -0,0 +1,130 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/lightbox/img
+http://carrington.googlecode.com/svn
+
+
+
+2009-02-23T22:08:47.808014Z
+203
+marlfoskr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+macFFBgHack.png
+file
+
+
+
+
+2010-08-02T15:33:18.263717Z
+6e63d8058c61e28953cc285de8d5c37d
+2009-02-23T22:08:47.808014Z
+203
+marlfoskr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+207
+\f
+loadingAnimation.gif
+file
+
+
+
+
+2010-08-02T15:33:18.263717Z
+c33734a1bf58bec328ffa27872e96ae1
+2009-02-23T22:08:47.808014Z
+203
+marlfoskr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5886
+\f
+blank.gif
+file
+
+
+
+
+2010-08-02T15:33:18.267717Z
+fc94fb0c3ed8a8f909dbc7630a0987ff
+2009-02-23T22:08:47.808014Z
+203
+marlfoskr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+43
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/prop-base/blank.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/prop-base/blank.gif.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/prop-base/loadingAnimation.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/prop-base/loadingAnimation.gif.svn-base
new file mode 100644 (file)
index 0000000..5e9587e
--- /dev/null
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/prop-base/macFFBgHack.png.svn-base b/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/prop-base/macFFBgHack.png.svn-base
new file mode 100644 (file)
index 0000000..5e9587e
--- /dev/null
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/blank.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/blank.gif.svn-base
new file mode 100644 (file)
index 0000000..1d11fa9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/blank.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/loadingAnimation.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/loadingAnimation.gif.svn-base
new file mode 100644 (file)
index 0000000..82290f4
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/loadingAnimation.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/macFFBgHack.png.svn-base b/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/macFFBgHack.png.svn-base
new file mode 100644 (file)
index 0000000..c6473b3
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/lightbox/img/.svn/text-base/macFFBgHack.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/img/blank.gif b/theme-blog.xenproject.org/carrington-blog/lightbox/img/blank.gif
new file mode 100644 (file)
index 0000000..1d11fa9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/lightbox/img/blank.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/img/loadingAnimation.gif b/theme-blog.xenproject.org/carrington-blog/lightbox/img/loadingAnimation.gif
new file mode 100644 (file)
index 0000000..82290f4
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/lightbox/img/loadingAnimation.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/img/macFFBgHack.png b/theme-blog.xenproject.org/carrington-blog/lightbox/img/macFFBgHack.png
new file mode 100644 (file)
index 0000000..c6473b3
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/lightbox/img/macFFBgHack.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/lightbox/thickbox.js b/theme-blog.xenproject.org/carrington-blog/lightbox/thickbox.js
new file mode 100644 (file)
index 0000000..cfd23b4
--- /dev/null
@@ -0,0 +1,332 @@
+/*
+ * Thickbox 3.1 - One Box To Rule Them All.
+ * By Cody Lindley (http://www.codylindley.com)
+ * Copyright (c) 2007 cody lindley
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
+*/
+                 
+var tb_pathToImage = "images/loadingAnimation.gif";
+
+/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
+
+//on page load call tb_init
+jQuery(document).ready(function(){   
+       tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
+       imgLoader = new Image();// preload image
+       imgLoader.src = tb_pathToImage;
+});
+
+//add thickbox to href & area elements that have a class of .thickbox
+function tb_init(domChunk){
+       jQuery(domChunk).click(function(){
+       var t = this.title || this.name || null;
+       var a = this.href || this.alt;
+       var g = this.rel || false;
+       tb_show(t,a,g);
+       this.blur();
+       return false;
+       });
+}
+
+function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link
+
+       try {
+               if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
+                       jQuery("body","html").css({height: "100%", width: "100%"});
+                       jQuery("html").css("overflow","hidden");
+                       if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
+                               jQuery("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
+                               jQuery("#TB_overlay").click(tb_remove);
+                       }
+               }else{//all others
+                       if(document.getElementById("TB_overlay") === null){
+                               jQuery("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
+                               jQuery("#TB_overlay").click(tb_remove);
+                       }
+               }
+               
+               if(tb_detectMacXFF()){
+                       jQuery("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
+               }else{
+                       jQuery("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
+               }
+               
+               if(caption===null){caption="";}
+               jQuery("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
+               jQuery('#TB_load').show();//show loader
+               
+               var baseURL;
+          if(url.indexOf("?")!==-1){ //ff there is a query string involved
+                       baseURL = url.substr(0, url.indexOf("?"));
+          }else{ 
+                       baseURL = url;
+          }
+          
+          var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
+          var urlType = baseURL.toLowerCase().match(urlString);
+
+               if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
+                               
+                       TB_PrevCaption = "";
+                       TB_PrevURL = "";
+                       TB_PrevHTML = "";
+                       TB_NextCaption = "";
+                       TB_NextURL = "";
+                       TB_NextHTML = "";
+                       TB_imageCount = "";
+                       TB_FoundURL = false;
+                       if(imageGroup){
+                               TB_TempArray = jQuery("a[rel="+imageGroup+"]").get();
+                               for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
+                                       var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
+                                               if (!(TB_TempArray[TB_Counter].href == url)) {                                          
+                                                       if (TB_FoundURL) {
+                                                               TB_NextCaption = TB_TempArray[TB_Counter].title;
+                                                               TB_NextURL = TB_TempArray[TB_Counter].href;
+                                                               TB_NextHTML = "<a id='TB_next' href='#'>Next &gt;</a>";
+                                                       } else {
+                                                               TB_PrevCaption = TB_TempArray[TB_Counter].title;
+                                                               TB_PrevURL = TB_TempArray[TB_Counter].href;
+                                                               TB_PrevHTML = "<a id='TB_prev' href='#'>&lt; Prev</a>";
+                                                       }
+                                               } else {
+                                                       TB_FoundURL = true;
+                                                       TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);                                                                                     
+                                               }
+                               }
+                       }
+
+                       imgPreloader = new Image();
+                       imgPreloader.onload = function(){               
+                       imgPreloader.onload = null;
+
+// preload patch from: http://drupal.org/files/issues/thickbox_preloadimage.patch
+prevImg = new Image();
+nextImg = new Image();
+var tb_links = jQuery('a[class="thickbox"]');
+var i = -1;
+tb_links.each(function(n) { if (this.href == imgPreloader.src) { i = n; } });
+if (i != -1) {
+       if (i > 0) { prevImg.src = tb_links[i-1].href; }
+       if (i+1 < tb_links.length) { nextImg.src = tb_links[i+1].href; }
+}
+
+
+                       // Resizing large images - orginal by Christian Montoya edited by me.
+                       var pagesize = tb_getPageSize();
+                       var x = pagesize[0] - 150;
+                       var y = pagesize[1] - 170;
+                       var imageWidth = imgPreloader.width;
+                       var imageHeight = imgPreloader.height;
+                       if (imageWidth > x) {
+                               imageHeight = imageHeight * (x / imageWidth); 
+                               imageWidth = x; 
+                               if (imageHeight > y) { 
+                                       imageWidth = imageWidth * (y / imageHeight); 
+                                       imageHeight = y; 
+                               }
+                       } else if (imageHeight > y) { 
+                               imageWidth = imageWidth * (y / imageHeight); 
+                               imageHeight = y; 
+                               if (imageWidth > x) { 
+                                       imageHeight = imageHeight * (x / imageWidth); 
+                                       imageWidth = x;
+                               }
+                       }
+                       // End Resizing
+                       
+                       
+                       /* TODO: auto-calculate heights based on jQuery.height() of elements */
+                       TB_WIDTH = imageWidth + 30;
+                       TB_HEIGHT = imageHeight + 130;
+                       jQuery("#TB_window").append("<div id='TB_title'><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><div id='TB_ImageWrapper' style='height:"+imageHeight+"px;width:"+imageWidth+"px;'><div id='TB_ImageHoverNav'>"+TB_PrevHTML+TB_NextHTML+"</div><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></div><div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + "</div></div>");
+                       jQuery("#TB_closeWindowButton").click(tb_remove);
+                       
+                       if (!(TB_PrevHTML === "")) {
+                               function goPrev(){
+                                       if(jQuery(document).unbind("click",goPrev)){jQuery(document).unbind("click",goPrev);}
+                                       jQuery("#TB_window").remove();
+                                       jQuery("body").append("<div id='TB_window'></div>");
+                                       tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
+                                       return false;   
+                               }
+                               jQuery("#TB_prev").click(goPrev);
+                       }
+                       
+                       if (!(TB_NextHTML === "")) {            
+                               function goNext(){
+                                       jQuery("#TB_window").remove();
+                                       jQuery("body").append("<div id='TB_window'></div>");
+                                       tb_show(TB_NextCaption, TB_NextURL, imageGroup);
+                                       return false;
+                               }
+                               jQuery("#TB_next").click(goNext);
+                               
+                       }
+
+                       document.onkeydown = function(e){       
+                               if (e == null) { // ie
+                                       keycode = event.keyCode;
+                               } else { // mozilla
+                                       keycode = e.which;
+                               }
+                               if(keycode == 27){ // close
+                                       tb_remove();
+                               } else if(keycode == 190 || keycode == 39){ // display next image
+                                       if(!(TB_NextHTML == "")){
+                                               document.onkeydown = "";
+                                               goNext();
+                                       }
+                               } else if(keycode == 188 || keycode == 37){ // display previous image
+                                       if(!(TB_PrevHTML == "")){
+                                               document.onkeydown = "";
+                                               goPrev();
+                                       }
+                               }       
+                       };
+                       
+                       tb_position();
+                       jQuery("#TB_load").remove();
+                       jQuery("#TB_ImageOff").click(tb_remove);
+                       jQuery("#TB_window").css({display:"block"}); //for safari using css instead of show
+                       };
+                       
+                       imgPreloader.src = url;
+               }else{//code to show html
+                       
+                       var queryString = url.replace(/^[^\?]+\??/,'');
+                       var params = tb_parseQuery( queryString );
+
+                       TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
+                       TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
+                       ajaxContentW = TB_WIDTH - 30;
+                       ajaxContentH = TB_HEIGHT - 45;
+                       
+                       if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window              
+                                       urlNoQuery = url.split('TB_');
+                                       jQuery("#TB_iframeContent").remove();
+                                       if(params['modal'] != "true"){//iframe no modal
+                                               jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
+                                       }else{//iframe modal
+                                       jQuery("#TB_overlay").unbind();
+                                               jQuery("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
+                                       }
+                       }else{// not an iframe, ajax
+                                       if(jQuery("#TB_window").css("display") != "block"){
+                                               if(params['modal'] != "true"){//ajax no modal
+                                               jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
+                                               }else{//ajax modal
+                                               jQuery("#TB_overlay").unbind();
+                                               jQuery("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");    
+                                               }
+                                       }else{//this means the window is already up, we are just loading new content via ajax
+                                               jQuery("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
+                                               jQuery("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
+                                               jQuery("#TB_ajaxContent")[0].scrollTop = 0;
+                                               jQuery("#TB_ajaxWindowTitle").html(caption);
+                                       }
+                       }
+                                       
+                       jQuery("#TB_closeWindowButton").click(tb_remove);
+                       
+                               if(url.indexOf('TB_inline') != -1){     
+                                       jQuery("#TB_ajaxContent").append(jQuery('#' + params['inlineId']).children());
+                                       jQuery("#TB_window").unload(function () {
+                                               jQuery('#' + params['inlineId']).append( jQuery("#TB_ajaxContent").children() ); // move elements back when you're finished
+                                       });
+                                       tb_position();
+                                       jQuery("#TB_load").remove();
+                                       jQuery("#TB_window").css({display:"block"}); 
+                               }else if(url.indexOf('TB_iframe') != -1){
+                                       tb_position();
+                                       if($.browser.safari){//safari needs help because it will not fire iframe onload
+                                               jQuery("#TB_load").remove();
+                                               jQuery("#TB_window").css({display:"block"});
+                                       }
+                               }else{
+                                       jQuery("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
+                                               tb_position();
+                                               jQuery("#TB_load").remove();
+                                               tb_init("#TB_ajaxContent a.thickbox");
+                                               jQuery("#TB_window").css({display:"block"});
+                                       });
+                               }
+                       
+               }
+
+               if(!params['modal']){
+                       document.onkeyup = function(e){         
+                               if (e == null) { // ie
+                                       keycode = event.keyCode;
+                               } else { // mozilla
+                                       keycode = e.which;
+                               }
+                               if(keycode == 27){ // close
+                                       tb_remove();
+                               }       
+                       };
+               }
+               
+       } catch(e) {
+               //nothing here
+       }
+}
+
+//helper functions below
+function tb_showIframe(){
+       jQuery("#TB_load").remove();
+       jQuery("#TB_window").css({display:"block"});
+}
+
+function tb_remove() {
+       jQuery("#TB_imageOff").unbind("click");
+       jQuery("#TB_closeWindowButton").unbind("click");
+       jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
+       jQuery("#TB_load").remove();
+       if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
+               jQuery("body","html").css({height: "auto", width: "auto"});
+               jQuery("html").css("overflow","");
+       }
+       document.onkeydown = "";
+       document.onkeyup = "";
+       return false;
+}
+
+function tb_position() {
+jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
+       if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
+               jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
+       }
+}
+
+function tb_parseQuery ( query ) {
+   var Params = {};
+   if ( ! query ) {return Params;}// return empty object
+   var Pairs = query.split(/[;&]/);
+   for ( var i = 0; i < Pairs.length; i++ ) {
+      var KeyVal = Pairs[i].split('=');
+      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
+      var key = unescape( KeyVal[0] );
+      var val = unescape( KeyVal[1] );
+      val = val.replace(/\+/g, ' ');
+      Params[key] = val;
+   }
+   return Params;
+}
+
+function tb_getPageSize(){
+       var de = document.documentElement;
+       var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
+       var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
+       arrayPageSize = [w,h];
+       return arrayPageSize;
+}
+
+function tb_detectMacXFF() {
+  var userAgent = navigator.userAgent.toLowerCase();
+  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
+    return true;
+  }
+}
+
+
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/loop/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..50c9788
--- /dev/null
@@ -0,0 +1,59 @@
+K 25
+svn:wc:ra_dav:version-url
+V 36
+/svn/!svn/ver/502/framework/tags/3.0
+END
+compatibility.php
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/502/framework/tags/3.0/compatibility.php
+END
+templates.php
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svn/!svn/ver/502/framework/tags/3.0/templates.php
+END
+CHANGELOG.txt
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svn/!svn/ver/502/framework/tags/3.0/CHANGELOG.txt
+END
+ajax-load.php
+K 25
+svn:wc:ra_dav:version-url
+V 50
+/svn/!svn/ver/502/framework/tags/3.0/ajax-load.php
+END
+utility.php
+K 25
+svn:wc:ra_dav:version-url
+V 48
+/svn/!svn/ver/502/framework/tags/3.0/utility.php
+END
+README.txt
+K 25
+svn:wc:ra_dav:version-url
+V 47
+/svn/!svn/ver/502/framework/tags/3.0/README.txt
+END
+carrington.php
+K 25
+svn:wc:ra_dav:version-url
+V 51
+/svn/!svn/ver/502/framework/tags/3.0/carrington.php
+END
+attachment.php
+K 25
+svn:wc:ra_dav:version-url
+V 51
+/svn/!svn/ver/502/framework/tags/3.0/attachment.php
+END
+admin.php
+K 25
+svn:wc:ra_dav:version-url
+V 46
+/svn/!svn/ver/502/framework/tags/3.0/admin.php
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/.svn/entries b/theme-blog.xenproject.org/carrington-blog/loop/.svn/entries
new file mode 100644 (file)
index 0000000..cee7eff
--- /dev/null
@@ -0,0 +1,346 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0
+http://carrington.googlecode.com/svn
+
+
+
+2010-07-22T21:06:24.399804Z
+502
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+compatibility.php
+file
+
+
+
+
+2010-08-02T15:33:18.463217Z
+95a18c7c384460a28e5110d61186e1b0
+2010-07-22T19:53:57.334278Z
+501
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6870
+\f
+lightbox
+dir
+\f
+templates.php
+file
+
+
+
+
+2010-08-02T15:33:18.463217Z
+a5f8c0b74a88b136a18b138357cc86fb
+2010-01-31T20:17:50.850874Z
+463
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2673
+\f
+images
+dir
+\f
+CHANGELOG.txt
+file
+
+
+
+
+2010-08-02T15:33:18.467215Z
+678b6538d14bb690d53b6ce83650e886
+2010-07-22T19:53:57.334278Z
+501
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2608
+\f
+ajax-load.php
+file
+
+
+
+
+2010-08-02T15:33:18.467215Z
+6351b7bac9628c629abd7859069e94ed
+2010-01-31T20:17:50.850874Z
+463
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3282
+\f
+css
+dir
+\f
+utility.php
+file
+
+
+
+
+2010-08-02T15:33:18.467215Z
+6585b60c054571e4dd7e98dcb6e63101
+2010-06-07T21:29:12.363266Z
+493
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+19871
+\f
+README.txt
+file
+
+
+
+
+2010-08-02T15:33:18.467215Z
+ffc3c0cd0f0b459e008a8b8b857c5cd8
+2009-01-18T04:37:19.211768Z
+62
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+261
+\f
+js
+dir
+\f
+carrington.php
+file
+
+
+
+
+2010-08-02T15:33:18.467215Z
+9455819e2ba3f01097adf435d452d24a
+2010-04-01T16:16:56.301318Z
+480
+marlfoskr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3128
+\f
+attachment.php
+file
+
+
+
+
+2010-08-02T15:33:18.467215Z
+0da94ff326df84deef92b8a54c5f32f3
+2010-01-31T20:17:29.968514Z
+462
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3883
+\f
+admin.php
+file
+
+
+
+
+2010-08-02T15:33:18.467215Z
+d814675a4d690f90aaad558a3ed613d7
+2010-01-31T20:17:50.850874Z
+463
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10086
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/CHANGELOG.txt.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/CHANGELOG.txt.svn-base
new file mode 100644 (file)
index 0000000..985d294
--- /dev/null
@@ -0,0 +1,73 @@
+# Carrington Core Framework Changelog
+
+## 3.0
+
+- Added support for custom post types (WordPress 3.0)
+- Support for child themes (including adding templates and plugins in child themes that do not exist in the parent theme)
+- Allow custom functions to be filtered into the Single and Comment template selection process (already supported in General context selection)
+- Make the posts_per_page setting work as intended (only on initial query)
+- Support for nesting templates inside sub-directories in misc/ and forms/
+- Removed use of deprecated function `get_the_author_ID`. Replaced with 2.8 `get_the_author_meta` (since 2.8.0). Users of versions of WordPress prior to 2.8.0 should be aware this change will cause problems for them.
+- Define required Carrington settings in a more forgiving way, making it easier to use just part of Carrington on a site when desired
+- Make gallery settings (implemented in CSS) specific to each gallery
+- home.php is now only used in is_home() situations, not is_front_page() (reverses feature requested and added in v. 2.5)
+- Compatibility code to make it easier to drop Carrington Core into an existing theme
+- Added changelog
+
+
+## 2.5
+
+- added CFCT_CORE_VERSION constant
+- added support for is_front_page() as 'home' in General context
+- added a filter in cfct_files() so that a plugin can declaritively set the files available for performance reasons (eliminates file system lookups)
+
+
+## 2.4
+
+- update included Thickbox script to support jQuery 1.2.6 (remove @ syntax for attributes)
+- allow filtered in functions to participate in template selection for General context
+
+
+## 2.3
+
+- updated copied Gallery functions
+- workaround for pages needing some vars set in global $wp_query
+- add is_sticky() function for compatibility
+- pass directory name along with filename to cfct_choose_general_template filter
+- pass type along with filename to cfct_choose_content_template filter
+- don't choose "page" content type unless there are no matches from cfct_choose_single_template()
+
+
+## 2.2.1
+
+- only output CSS for the admin on the Carrington settings page
+- fake "in_the_loop" for AJAX load of post content
+
+
+## 2.2
+
+- add a check for comment/ping.php before returning
+
+
+## 2.1
+
+- add a cfct_get_custom_colors() function to core
+
+
+## 2.0
+
+- add color picker
+- add gallery support
+- add hooks to admin forms
+- additional internationalization
+- add header image form
+- properly exclude private posts from AJX load
+- restructure code/files
+- add compatibility file
+- add threaded comment support
+- add single-* support to General context
+
+
+## 1.3
+
+- first tagged core version
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/README.txt.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/README.txt.svn-base
new file mode 100644 (file)
index 0000000..7ada478
--- /dev/null
@@ -0,0 +1,15 @@
+## carrington-core/
+
+### Overview
+
+This directory contains Carrington's custom features and functionality.
+
+
+### Supported Override Filenames
+
+- (none)
+
+
+### File Descriptions
+
+You do not need to do anything with files in this folder; they should remain as-is.
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/admin.php.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/admin.php.svn-base
new file mode 100644 (file)
index 0000000..0920fbf
--- /dev/null
@@ -0,0 +1,330 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// - add admin page for config settings
+
+function cfct_admin_menu() {
+       if (!current_user_can('manage_options')) {
+               return;
+       }
+       add_submenu_page(
+               'themes.php'
+               , __('Carrington Settings', 'carrington')
+               , __('Carrington', 'carrington')
+               , 0
+               , 'carrington-settings'
+               , 'cfct_settings_form'
+       );
+}
+add_action('admin_menu', 'cfct_admin_menu');
+
+function cfct_admin_request_handler() {
+       if (isset($_POST['cf_action'])) {
+               switch ($_POST['cf_action']) {
+                       case 'cfct_update_settings':
+                               call_user_func($_POST['cf_action']);
+                               wp_redirect(trailingslashit(get_bloginfo('wpurl')).'wp-admin/themes.php?page=carrington-settings&updated=true');
+               }
+       }
+}
+
+function cfct_update_settings() {
+       if (!current_user_can('manage_options')) {
+               return;
+       }
+       global $cfct_options;
+       foreach ($cfct_options as $option) {
+               if (isset($_POST[$option])) {
+                       update_option($option, stripslashes($_POST[$option]));
+               }
+       }
+       do_action('cfct_update_settings');
+}
+
+function cfct_settings_form() {
+       if (isset($_GET['updated'])) {
+               print('
+<div id="message" class="updated fade">
+       <p>'.__('Settings updated.', 'carrington').'</p>
+</div>
+               ');
+       }
+       print('
+<div class="wrap">
+       <h2>'.__('Carrington Settings', 'carrington').'</h2>
+       <form action="options.php" method="post">
+       ');
+       do_action('cfct_settings_form_top');
+       print('
+               <table class="form-table">
+                       <tbody>'
+//                     .cfct_options_home_column('1')
+//                     .cfct_options_home_column('2')
+//                     .cfct_options_home_column('3')
+                       .cfct_options_misc()
+                       .'</tbody>
+               </table>
+       ');
+       do_action('cfct_settings_form_bottom');
+       do_action('cfct_settings_form');
+       print('
+               <p class="submit" style="padding-left: 230px;">
+                       <input type="hidden" name="cf_action" value="cfct_update_settings" />
+                       <input type="submit" name="submit_button" class="button-primary" value="'.__('Save Changes', 'carrington').'" />
+               </p>
+       </form>
+</div>
+       ');
+       do_action('cfct_settings_form_after');
+}
+
+function cfct_options_home_column($key) {
+       $categories = get_categories('hide_empty=0');
+       $cat_options = '';
+       foreach ($categories as $category) {
+               if ($category->term_id == get_option('cfct_home_col_'.$key.'_cat')) {
+                       $selected = 'selected="selected"';
+               }
+               else {
+                       $selected = '';
+               }
+               $cat_options .= "\n\t<option value='$category->term_id' $selected>$category->name</option>";
+       }
+       $show_options = '';
+       $show_option = cfct_get_option('cfct_home_column_'.$key.'_content');
+       if ($show_option == 'latest') {
+               $latest_selected = 'selected="selected"';
+               $list_selected = '';
+       }
+       else {
+               $latest_selected = '';
+               $list_selected = 'selected="selected"';
+       }
+       $html = '
+                               <tr valign="top">
+                                       <th scope="row">'.sprintf(__('Home Column %s', 'carrington'), $key).'</td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_home_column_'.$key.'_cat">'.__('Category:', 'carrington').'</label>
+                                                               <select name="cfct_home_column_'.$key.'_cat" id="cfct_home_column_'.$key.'_cat">'.$cat_options.'</select>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_home_column_'.$key.'_content">'.__('Show:', 'carrington').'</label>
+                                                               <select name="cfct_home_column_'.$key.'_content" id="cfct_home_column_'.$key.'_content" class="home_column_select">
+                                                                       <option value="latest" '.$latest_selected.'>'.__('Latest Post Preview', 'carrington').'</option>
+                                                                       <option value="list" '.$list_selected.'>'.__('List of Recent Post Titles', 'carrington').'</option>
+                                                               </select>
+                                                       </p>
+                                                       <p id="cfct_latest_limit_'.$key.'_option" class="hidden">
+                                                               <label for="cfct_latest_limit_'.$key.'">'.__('Length of preview, in characters (250 recommended):', 'carrington').'</label>
+                                                               <input type="text" name="cfct_latest_limit_'.$key.'" id="cfct_latest_limit_'.$key.'" value="'.cfct_get_option('cfct_latest_limit_'.$key).'" />
+                                                       </p>
+                                                       <p id="cfct_list_limit_'.$key.'_option" class="hidden">
+                                                               <label for="cfct_list_limit_'.$key.'">'.__('Number of titles to show in list (5 recommended):', 'carrington').'</label>
+                                                               <input type="text" name="cfct_list_limit_'.$key.'" id="cfct_list_limit_'.$key.'" value="'.cfct_get_option('cfct_list_limit_'.$key).'" />
+                                                       </p>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+       ';
+       return $html;
+}
+
+function cfct_options_misc() {
+       $options = array(
+               'yes' => __('Yes', 'carrington'),
+               'no' => __('No', 'carrington')
+       );
+       $credit_options = '';
+       foreach ($options as $k => $v) {
+               if ($k == get_option('cfct_credit')) {
+                       $credit_selected = 'selected="selected"';
+               }
+               else {
+                       $credit_selected = '';
+               }
+               $credit_options .= "\n\t<option value='$k' $credit_selected>$v</option>";
+       }
+       $html = '
+                               <tr valign="top">
+                                       <th scope="row">'.sprintf(__('Misc.', 'carrington'), $key).'</td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_about_text">'.__('About text (shown in sidebar):', 'carrington').'</label>
+                                                               <br />
+                                                               <textarea name="cfct_about_text" id="cfct_about_text" cols="40" rows="8">'.htmlspecialchars(get_option('cfct_about_text')).'</textarea>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_wp_footer">'.__('Footer code (for analytics, etc.):', 'carrington').'</label>
+                                                               <br />
+                                                               <textarea name="cfct_wp_footer" id="cfct_wp_footer" cols="40" rows="5">'.htmlspecialchars(get_option('cfct_wp_footer')).'</textarea>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_credit">'.__('Give <a href="http://crowdfavorite.com">Crowd Favorite</a> credit in footer:', 'carrington').'</label>
+                                                               <select name="cfct_credit" id="cfct_credit">'.$credit_options.'</select>
+                                                       </p>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+       ';
+       return $html;
+}
+
+function cfct_header_image_form() {
+       global $wpdb;
+
+       $images = $wpdb->get_results("
+               SELECT * FROM $wpdb->posts 
+               WHERE post_type = 'attachment' 
+               AND post_mime_type LIKE 'image%' 
+               AND post_parent = 0
+               ORDER BY post_date_gmt DESC
+               LIMIT 50
+       ");
+       $upload_url = trailingslashit(get_bloginfo('wpurl')).'wp-admin/media-new.php';
+       $checked_attr = ' checked="checked"';
+       $output = '
+<ul style="width: '.((count($images) + 1) * 152).'px">
+       <li style="background: #666;">
+               <label for="cfct_header_image_0">
+                       <input type="radio" name="cfct_header_image" value="0" id="cfct_header_image_0" '.$default_checked.'/>'.__('No Image', 'carrington-core').'
+               </label>
+       </li>
+       ';
+       if (count($images)) {
+               $header_image = get_option('cfct_header_image');
+               if (empty($header_image)) {
+                       $header_image = 0;
+                       $default_checked = $checked_attr;
+               }
+               else {
+                       $default_checked = '';
+               }
+               foreach ($images as $image) {
+                       $id = 'cfct_header_image_'.$image->ID;
+                       $thumbnail = wp_get_attachment_image_src($image->ID);
+                       $header_image == $image->ID ? $checked = $checked_attr : $checked = '';
+                       $output .= '
+       <li style="background-image: url('.$thumbnail[0].')">
+               <label for="'.$id.'">
+                       <input type="radio" name="cfct_header_image" value="'.$image->ID.'" id="'.$id.'"'.$checked.' />'.wp_specialchars($image->post_title).'
+               </label>
+       </li>';
+               }
+       }
+       $output .= '</ul>';
+       return '<p>'.sprintf(__('Header Image &mdash; <a href="%s">Upload Images</a>', 'carrington-core'), $upload_url).'</p><div class="cfct_header_image_carousel">'.$output.'</div>';
+}
+
+if (is_admin()) {
+       wp_enqueue_script('jquery-colorpicker', get_bloginfo('template_directory').'/carrington-core/js/colorpicker.js', array('jquery'), '1.0');
+// removing until we drop 2.5 compatibility
+//     wp_enqueue_style('jquery-colorpicker', get_bloginfo('template_directory').'/carrington-core/css/colorpicker.css');
+}
+
+function cfct_admin_head() {
+// see enqueued style above, we'll activate that in the future
+       if ($_GET['page'] == 'carrington-settings') {
+               echo '
+<link rel="stylesheet" type="text/css" media="screen" href="'.get_bloginfo('template_directory').'/carrington-core/css/colorpicker.css" />
+               ';
+               cfct_admin_css();
+       }
+//     cfct_admin_js();
+}
+add_action('admin_head', 'cfct_admin_head');
+
+function cfct_admin_css() {
+?>
+<style type="text/css">
+div.cfct_header_image_carousel {
+       height: 170px;
+       overflow: auto;
+       width: 600px;
+}
+div.cfct_header_image_carousel ul {
+       height: 150px;
+}
+div.cfct_header_image_carousel li {
+       background: #fff url() center center no-repeat;
+       float: left;
+       height: 150px;
+       margin-right: 2px;
+       overflow: hidden;
+       position: relative;
+       width: 150px;
+}
+div.cfct_header_image_carousel li label {
+       background: #000;
+       color: #fff;
+       display: block;
+       height: 50px;
+       line-height: 25px;
+       overflow: hidden;
+       position: absolute;
+       top: 110px;
+       width: 150px;
+       filter:alpha(opacity=75);
+       -moz-opacity:.75;
+       opacity:.75;
+}
+div.cfct_header_image_carousel li label input {
+       margin: 0 5px;
+}
+</style>
+<?php
+}
+
+function cfct_admin_js() {
+?>
+<script type="text/javascript">
+jQuery(function() {
+       jQuery('select.home_column_select').each(function() {
+               cfct_home_columns(jQuery(this), false);
+       }).change(function() {
+               cfct_home_columns(jQuery(this), true);
+       });
+});
+
+function cfct_home_columns(elem, slide) {
+       var id = elem.attr('id').replace('cfct_home_column_', '').replace('_content', '');
+       var val = elem.val();
+       var option_show = '#cfct_latest_limit_' + id + '_option';
+       var option_hide = '#cfct_list_limit_' + id + '_option';
+       if (val == 'list') {
+               option_show = '#cfct_list_limit_' + id + '_option';
+               option_hide = '#cfct_latest_limit_' + id + '_option';
+       }
+       if (slide) {
+               jQuery(option_hide).slideUp(function() {
+                       jQuery(option_show).slideDown();
+               });
+       }
+       else {
+               jQuery(option_show).show();
+               jQuery(option_hide).hide();
+       }
+}
+</script>
+<?php
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/ajax-load.php.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/ajax-load.php.svn-base
new file mode 100644 (file)
index 0000000..74ab5ac
--- /dev/null
@@ -0,0 +1,115 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_ajax_post_content($post_id) {
+       global $post, $posts, $wp_query, $wp;
+       $posts = get_posts('include='.$post_id);
+       $post = $posts[0];
+       if (is_null($post)) {
+               $posts = get_pages('include='.$post_id);
+               $post = $posts[0];
+       }
+       if (is_null($post)) {
+               $posts = get_posts('post_status=private&include='.$post_id);
+               $post = $posts[0];
+               if ($post) {
+                       $user = wp_get_current_user();
+                       if (!$user->ID || $user->ID != $post->post_author) {
+                               $post = null;
+                       }
+               }
+       }
+       if (!$post) {
+               die('');
+       }
+       $wp_query->in_the_loop = true;
+       setup_postdata($post);
+       remove_filter('the_content', 'st_add_widget');
+       $wp->send_headers();
+       cfct_content();
+       echo '<div class="close" id="post_close_'.$post_id.'"><a href="#">'.__('Close', 'carrington').'</a></div>';
+}
+
+function cfct_ajax_post_comments($post_id) {
+       global $post, $posts, $wp_query, $wp;
+       $wp_query->is_single = true;
+       $posts = get_posts('include='.$post_id);
+       $post = $posts[0];
+       if (is_null($post)) {
+               $posts = get_pages('include='.$post_id);
+               $post = $posts[0];
+       }
+       setup_postdata($post);
+       $wp->send_headers();
+       comments_template();
+}
+
+function cfct_ajax_load() {
+       if (isset($_GET['cfct_action'])) {
+               switch ($_GET['cfct_action']) {
+                       case 'post_content':
+                       case 'post_comments':
+                               if (isset($_GET['id'])) {
+                                       $post_id = intval($_GET['id']);
+                               }
+                               else if (isset($_GET['url'])) {
+                                       $post_id = url_to_post_id($_GET['url']);
+                               }
+                               if ($post_id) {
+                                       call_user_func('cfct_ajax_'.$_GET['cfct_action'], $post_id);
+                                       die();
+                               }
+               }
+       }
+}
+
+function cfct_ajax_comment_link() {
+       global $post;
+       echo ' rev="post-'.$post->ID.'" ';
+}
+add_filter('comments_popup_link_attributes', 'cfct_ajax_comment_link');
+
+function cfct_posts_per_archive_page_setting() {
+       $count = get_option('cfct_posts_per_archive_page');
+       intval($count) > 0 ? $count = $count : $count = 25;
+       return $count;
+}
+
+// add a self-removing filter to handle category pages
+function cfct_add_posts_per_archive_page() {
+       add_filter('pre_get_posts', 'cfct_posts_per_archive_page');
+       add_filter('pre_get_posts', 'cfct_posts_per_category_page');
+}
+add_filter('parse_request', 'cfct_add_posts_per_archive_page');
+
+function cfct_posts_per_archive_page($query) {
+       remove_filter('pre_get_posts', 'cfct_posts_per_archive_page');
+       $query->set('posts_per_archive_page', cfct_posts_per_archive_page_setting());
+       return $query;
+}
+
+function cfct_posts_per_category_page($query) {
+       remove_filter('pre_get_posts', 'cfct_posts_per_category_page');
+       if (is_category()) {
+               $query->set('posts_per_page', cfct_posts_per_archive_page_setting());
+       }
+       return $query;
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/attachment.php.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/attachment.php.svn-base
new file mode 100644 (file)
index 0000000..f275f9f
--- /dev/null
@@ -0,0 +1,126 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+function cfct_get_adjacent_image_link($prev = true) {
+       global $post;
+       $post = get_post($post);
+       $attachments = array_values(get_children( array('post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID') ));
+
+       foreach ( $attachments as $k => $attachment )
+               if ( $attachment->ID == $post->ID )
+                       break;
+
+       $k = $prev ? $k - 1 : $k + 1;
+
+       if ( isset($attachments[$k]) )
+               return wp_get_attachment_link($attachments[$k]->ID, 'thumbnail', true);
+}
+
+function cfct_post_gallery($unused, $attr) {
+       global $post;
+
+       // We're trusting author input, so let's at least make sure it looks like a valid orderby statement
+       if ( isset( $attr['orderby'] ) ) {
+               $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
+               if ( !$attr['orderby'] )
+                       unset( $attr['orderby'] );
+       }
+
+       extract(shortcode_atts(array(
+               'order'      => 'ASC',
+               'orderby'    => 'menu_order ID',
+               'id'         => $post->ID,
+               'itemtag'    => 'dl',
+               'icontag'    => 'dt',
+               'captiontag' => 'dd',
+               'columns'    => 3,
+               'size'       => 'thumbnail'
+       ), $attr));
+
+       $id = intval($id);
+       $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
+
+       if ( empty($attachments) )
+               return '';
+
+       if ( is_feed() ) {
+               $output = "\n";
+               foreach ( $attachments as $id => $attachment )
+                       $output .= wp_get_attachment_link($id, $size, true) . "\n";
+               return $output;
+       }
+
+       $itemtag = tag_escape($itemtag);
+       $captiontag = tag_escape($captiontag);
+       $columns = apply_filters('cfct_post_gallery_columns', intval($columns));
+       $itemwidth = $columns > 0 ? floor(100/$columns) : 100;
+
+       $output = apply_filters('gallery_style', '
+               <style type="text/css">
+                       .post-'.$id.' .gallery {
+                               margin: auto;
+                       }
+                       .post-'.$id.' .gallery-item {
+                               float: left;
+                               margin-top: 10px;
+                               text-align: center;
+                               width: '.$itemwidth.'%;                 }
+                       .post-'.$id.' .gallery img {
+                               border: 2px solid #cfcfcf;
+                       }
+                       .post-'.$id.' .gallery-caption {
+                               margin-left: 0;
+                       }
+               </style>
+               <!-- see cfct_post_gallery() in carrington-core/attachment.php -->
+               <div class="gallery">');
+
+       $i = 0;
+       foreach ( $attachments as $id => $attachment ) {
+// get full item src
+               $item_src = wp_get_attachment_image_src($id, 'full', false);
+
+               $link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id, $size, false, false) : wp_get_attachment_link($id, $size, true, false);
+               
+// add full item src as rel
+               $link = str_replace('><img', ' class="thickbox" rel="'.$item_src[0].'"><img', $link);
+
+               $output .= "<{$itemtag} class='gallery-item'>";
+               $output .= "
+                       <{$icontag} class='gallery-icon'>
+                               $link
+                       </{$icontag}>";
+               if ( $captiontag && trim($attachment->post_excerpt) ) {
+                       $output .= "
+                               <{$captiontag} class='gallery-caption'>
+                               {$attachment->post_excerpt}
+                               </{$captiontag}>";
+               }
+               $output .= "</{$itemtag}>";
+               if ( $columns > 0 && ++$i % $columns == 0 )
+                       $output .= '<br style="clear: both" />';
+       }
+
+       $output .= "
+                       <br style='clear: both;' />
+               </div>\n";
+
+       return $output;
+}
+add_filter('post_gallery', 'cfct_post_gallery', 10, 2);
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/carrington.php.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/carrington.php.svn-base
new file mode 100644 (file)
index 0000000..2479915
--- /dev/null
@@ -0,0 +1,106 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+//     ini_set('display_errors', '1');
+//     ini_set('error_reporting', E_ALL);
+
+define('CFCT_CORE_VERSION', '3.0');
+
+// Path to Carrington Core parent directory (usually the theme).
+if (!defined('CFCT_PATH')) {
+       define('CFCT_PATH', trailingslashit(TEMPLATEPATH));
+}
+
+load_theme_textdomain('carrington');
+
+$cfct_options[] = 'cfct_about_text';
+$cfct_options[] = 'cfct_credit';
+$cfct_options[] = 'cfct_wp_footer';
+
+include_once(CFCT_PATH.'carrington-core/admin.php');
+include_once(CFCT_PATH.'carrington-core/templates.php');
+include_once(CFCT_PATH.'carrington-core/utility.php');
+include_once(CFCT_PATH.'carrington-core/ajax-load.php');
+include_once(CFCT_PATH.'carrington-core/attachment.php');
+include_once(CFCT_PATH.'carrington-core/compatibility.php');
+
+cfct_load_plugins();
+
+function cfct_init() {
+       cfct_admin_request_handler();
+       if (cfct_get_option('cfct_ajax_load') == 'yes') {
+               cfct_ajax_load();
+       }
+}
+add_action('init', 'cfct_init');
+
+function cfct_wp_footer() {
+       echo get_option('cfct_wp_footer');
+}
+add_action('wp_footer', 'cfct_wp_footer');
+
+function cfct_about_text() {
+       $about_text = get_option('cfct_about_text');
+       if (!empty($about_text)) {
+               $about_text = cfct_basic_content_formatting($about_text);
+       }
+       else {
+               global $post, $wp_query;
+               $orig_post = $post;
+               isset($wp_query->query_vars['page']) ? $page = $wp_query->query_vars['page'] : $page = null;
+// temporary - resetting below
+               $wp_query->query_vars['page'] = null;
+               remove_filter('the_excerpt', 'st_add_widget');
+               $about_query = new WP_Query('pagename=about');
+               while ($about_query->have_posts()) {
+                       $about_query->the_post();
+                       $about_text = get_the_excerpt().sprintf(__('<a class="more" href="%s">more &rarr;</a>', 'carrington'), get_permalink());
+               }
+               $wp_query->query_vars['page'] = $page;
+               $post = $orig_post;
+               setup_postdata($post);
+       }
+       if (function_exists('st_add_widget')) {
+               add_filter('the_excerpt', 'st_add_widget');
+       }
+       return $about_text;
+}
+
+function cfct_get_custom_colors($type = 'option') {
+       global $cfct_color_options;
+       $colors = array();
+       foreach ($cfct_color_options as $option => $value) {
+               switch ($type) {
+                       case 'preview':
+                               !empty($_GET[$option]) ? $colors[$option] = strip_tags(stripslashes($_GET[$option])) : $colors[$option] = '';
+                               break;
+                       case 'option':
+                       default:
+                               $colors[$option] = cfct_get_option($option);
+                               break;
+               }
+       }
+       return $colors;
+}
+
+if (!defined('CFCT_DEBUG')) {
+       define('CFCT_DEBUG', false);
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/compatibility.php.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/compatibility.php.svn-base
new file mode 100644 (file)
index 0000000..1d86f3c
--- /dev/null
@@ -0,0 +1,242 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+/**
+ * Outputs hidden fields for comment form with unique IDs, based on post ID, making it safe for AJAX pull.
+ */
+function cfct_comment_id_fields() {
+       global $id;
+
+       $replytoid = isset($_GET['replytocom']) ? (int) $_GET['replytocom'] : 0;
+       echo "<input type='hidden' name='comment_post_ID' value='$id' id='comment_post_ID_p$id' />\n";
+       echo "<input type='hidden' name='comment_parent' id='comment_parent_p$id' value='$replytoid' />\n";
+}
+
+/**
+ * Filter the comment reply link to add a unique unique ID, based on post ID, making it safe for AJAX pull.
+ */
+function cfct_get_cancel_comment_reply_link($reply_link, $link, $text) {
+       global $post;
+       
+       if ( !empty($text) ) { $text = __('Cancel', 'carrington'); }
+       
+       $style = '';
+       if (!isset($_GET['replytocom'])) {
+               $style = ' style="display:none;"';
+       }
+       
+       $reply_link = '<a rel="nofollow" id="cancel-comment-reply-link-p' . $post->ID . '" href="' . $link . '-p' . $post->ID . '"' . $style . '>' . $text . '</a>';
+       return $reply_link;
+}
+
+
+
+
+// ITEMS BELOW THIS LINE ARE DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE
+
+
+// Functions here without the cfct_ prefix are taken from WordPress 2.7 (GPL)
+
+if (!function_exists('is_sticky')) {
+       function is_sticky() {
+               return false;
+       }
+}
+
+/**
+ * Displays classes for post div
+ *
+ * @param string|array $class One or more classes to add to the class list.
+ * @param int $post_id An optional post ID.
+ */
+
+if (!function_exists('post_class')) {
+       function post_class( $class = '', $post_id = null ) {
+               // Separates classes with a single space, collates classes for post DIV
+               echo 'class="' . join( ' ', get_post_class( $class, $post_id ) ) . '"';
+       }
+}
+
+/**
+ * Retrieve the classes for the post div as an array.
+ *
+ * The class names are add are many. If the post is a sticky, then the 'sticky'
+ * class name. The class 'hentry' is always added to each post. For each
+ * category, the class will be added with 'category-' with category slug is
+ * added. The tags are the same way as the categories with 'tag-' before the tag
+ * slug. All classes are passed through the filter, 'post_class' with the list
+ * of classes, followed by $class parameter value, with the post ID as the last
+ * parameter.
+ *
+ * @param string|array $class One or more classes to add to the class list.
+ * @param int $post_id An optional post ID.
+ * @return array Array of classes.
+ */
+if (!function_exists('get_post_class')) {
+       function get_post_class( $class = '', $post_id = null ) {
+               $post = get_post($post_id);
+
+               $classes = array();
+
+               $classes[] = $post->post_type;
+
+               // sticky for Sticky Posts
+               if ( is_sticky($post->ID) && is_home())
+                       $classes[] = 'sticky';
+
+               // hentry for hAtom compliace
+               $classes[] = 'hentry';
+
+               // Categories
+               foreach ( (array) get_the_category($post->ID) as $cat ) {
+                       if ( empty($cat->slug ) )
+                               continue;
+                       $classes[] = 'category-' . $cat->slug;
+               }
+
+               // Tags
+               foreach ( (array) get_the_tags($post->ID) as $tag ) {
+                       if ( empty($tag->slug ) )
+                               continue;
+                       $classes[] = 'tag-' . $tag->slug;
+               }
+
+               if ( !empty($class) ) {
+                       if ( !is_array( $class ) )
+                               $class = preg_split('#\s+#', $class);
+                       $classes = array_merge($classes, $class);
+               }
+
+               return apply_filters('post_class', $classes, $class, $post_id);
+       }
+}
+
+/**
+ * Display "sticky" CSS class, if a post is sticky.
+ *
+ * @param int $post_id An optional post ID.
+ */
+if (!function_exists('sticky_class')) {
+       function sticky_class( $post_id = null ) {
+               if ( !is_sticky($post_id) )
+                       return;
+
+               echo " sticky";
+       }
+}
+
+/**
+ * Generates semantic classes for each comment element
+ *
+ * @param string|array $class One or more classes to add to the class list
+ * @param int $comment_id An optional comment ID
+ * @param int $post_id An optional post ID
+ * @param bool $echo Whether comment_class should echo or return
+ */
+if (!function_exists('comment_class')) {
+       function comment_class( $class = '', $comment_id = null, $post_id = null, $echo = true ) {
+               // Separates classes with a single space, collates classes for comment DIV
+               $class = 'class="' . join( ' ', get_comment_class( $class, $comment_id, $post_id ) ) . '"';
+               if ( $echo)
+                       echo $class;
+               else
+                       return $class;
+       }
+}
+
+/**
+ * Returns the classes for the comment div as an array
+ *
+ * @param string|array $class One or more classes to add to the class list
+ * @param int $comment_id An optional comment ID
+ * @param int $post_id An optional post ID
+ * @return array Array of classes
+ */
+if (!function_exists('get_comment_class')) {
+       function get_comment_class( $class = '', $comment_id = null, $post_id = null ) {
+               global $comment_alt, $comment_depth, $comment_thread_alt;
+
+               $comment = get_comment($comment_id);
+
+               $classes = array();
+
+               // Get the comment type (comment, trackback),
+               $classes[] = ( empty( $comment->comment_type ) ) ? 'comment' : $comment->comment_type;
+
+               // If the comment author has an id (registered), then print the log in name
+               if ( $comment->user_id > 0 && $user = get_userdata($comment->user_id) ) {
+                       // For all registered users, 'byuser'
+                       $classes[] = 'byuser comment-author-' . $user->user_nicename;
+                       // For comment authors who are the author of the post
+                       if ( $post = get_post($post_id) ) {
+                               if ( $comment->user_id === $post->post_author )
+                                       $classes[] = 'bypostauthor';
+                       }
+               }
+
+               if ( empty($comment_alt) )
+                       $comment_alt = 0;
+               if ( empty($comment_depth) )
+                       $comment_depth = 1;
+               if ( empty($comment_thread_alt) )
+                       $comment_thread_alt = 0;
+
+               if ( $comment_alt % 2 ) {
+                       $classes[] = 'odd';
+                       $classes[] = 'alt';
+               } else {
+                       $classes[] = 'even';
+               }
+
+               $comment_alt++;
+
+               // Alt for top-level comments
+               if ( 1 == $comment_depth ) {
+                       if ( $comment_thread_alt % 2 ) {
+                               $classes[] = 'thread-odd';
+                               $classes[] = 'thread-alt';
+                       } else {
+                               $classes[] = 'thread-even';
+                       }
+                       $comment_thread_alt++;
+               }
+
+               $classes[] = "depth-$comment_depth";
+
+               if ( !empty($class) ) {
+                       if ( !is_array( $class ) )
+                               $class = preg_split('#\s+#', $class);
+                       $classes = array_merge($classes, $class);
+               }
+
+               return apply_filters('comment_class', $classes, $class, $comment_id, $post_id);
+       }
+}
+
+
+// For meeting wordpress.org requirements
+
+/*
+get_avatar();
+the_tags();
+register_sidebar('none');
+bloginfo('description');
+wp_head();
+wp_footer();
+*/
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/templates.php.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/templates.php.svn-base
new file mode 100644 (file)
index 0000000..1fb0139
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_page($file = '') {
+       if (empty($file)) {
+               $file = cfct_default_file('pages');
+       }
+       cfct_template_file('pages', $file);
+}
+
+function cfct_header() {
+       $file = cfct_choose_general_template('header');
+       cfct_template_file('header', $file);
+}
+
+function cfct_footer() {
+       $file = cfct_choose_general_template('footer');
+       cfct_template_file('footer', $file);
+}
+
+function cfct_sidebar() {
+       $file = cfct_choose_general_template('sidebar');
+       cfct_template_file('sidebar', $file);
+}
+
+function cfct_posts() {
+       $file = cfct_choose_general_template('posts');
+       cfct_template_file('posts', $file);
+}
+
+function cfct_single() {
+       $file = cfct_choose_general_template('single');
+       cfct_template_file('single', $file);
+}
+
+function cfct_attachment() {
+       $file = cfct_choose_general_template('attachment');
+       cfct_template_file('attachment', $file);
+}
+
+function cfct_loop() {
+       $file = cfct_choose_general_template('loop');
+       cfct_template_file('loop', $file);
+}
+
+function cfct_content() {
+       $file = cfct_choose_content_template();
+       cfct_template_file('content', $file);
+}
+
+function cfct_excerpt() {
+       $file = cfct_choose_content_template('excerpt');
+       cfct_template_file('excerpt', $file);
+}
+
+function cfct_comments() {
+       $file = cfct_choose_general_template('comments');
+       cfct_template_file('comments', $file);
+}
+
+function cfct_comment($data = null) {
+       $file = cfct_choose_comment_template();
+       cfct_template_file('comment', $file, $data);
+}
+
+function cfct_threaded_comment($comment, $args = array(), $depth) {
+       $GLOBALS['comment'] = $comment;
+       $data = array(
+               'args' => $args,
+               'depth' => $depth,
+       );
+       cfct_template_file('comments', 'threaded', $data);
+}
+
+function cfct_form($name = '') {
+       $parts = cfct_leading_dir($name);
+       cfct_template_file('forms/'.$parts['dir'], $parts['file']);
+}
+
+function cfct_misc($name = '') {
+       $parts = cfct_leading_dir($name);
+       cfct_template_file('misc/'.$parts['dir'], $parts['file']);
+}
+
+function cfct_error($name = '') {
+       cfct_template_file('error', $name);
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/utility.php.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/.svn/text-base/utility.php.svn-base
new file mode 100644 (file)
index 0000000..5482cf2
--- /dev/null
@@ -0,0 +1,821 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_die($str = '') {
+       if (!empty($str)) {
+               if (file_exists(CFCT_PATH.'error/exit.php')) {
+                       include(CFCT_PATH.'error/exit.php');
+                       die();
+               }
+               else {
+                       wp_die($str);
+               }
+       }
+}
+
+function cfct_banner($str = '') {
+       if (!empty($str)) {
+               if (file_exists(CFCT_PATH.'misc/banner.php')) {
+                       include(CFCT_PATH.'misc/banner.php');
+               }
+               else {
+                       echo '<p>'.$str.'</p>';
+               }
+       }
+}
+
+function cfct_get_option($name) {
+       $defaults = array(
+               'cfct_credit' => 'yes',
+               'cfct_lightbox' => 'yes',
+               'cfct_header_image' => 0,
+       );
+       $defaults = apply_filters('cfct_option_defaults', $defaults);
+       $value = get_option($name);
+       if ($value == '' && isset($defaults[$name])) {
+               $value = $defaults[$name];
+       }
+       return $value;
+}
+
+function cfct_load_plugins() {
+       $files = cfct_files(CFCT_PATH.'plugins');
+       if (count($files)) {
+               foreach ($files as $file) {
+                       if (file_exists(CFCT_PATH.'plugins/'.$file)) {
+                               include_once(CFCT_PATH.'plugins/'.$file);
+                       }
+// child theme support
+                       if (file_exists(STYLESHEETPATH.'/plugins/'.$file)) {
+                               include_once(STYLESHEETPATH.'/plugins/'.$file);
+                       }
+               }
+       }
+}
+
+function cfct_default_file($dir) {
+       $fancy = $dir.'-default.php';
+       file_exists(CFCT_PATH.$dir.'/'.$fancy) ? $default = $fancy : $default = 'default.php';
+       return $default;
+}
+
+function cfct_context() {
+       $context = 'home';
+       if (is_home()) {
+               $context = 'home';
+       }
+       else if (is_page()) {
+               $context = 'page';
+       }
+       else if (is_single()) {
+               $context = 'single';
+       }
+       else if (is_category()) {
+               $context = 'category';
+       }
+       else if (is_tag()) {
+               $context = 'tag';
+       }
+       else if (is_author()) {
+               $context = 'author';
+       }
+       else if (is_archive()) {
+// possible future abstraction for:
+//     is_month()
+//     is_year()
+//     is_day()
+               $context = 'archive';
+       }
+       else if (is_search()) {
+               $context = 'search';
+       }
+       else if (is_404()) {
+               $context = '404';
+       }
+       return apply_filters('cfct_context', $context);
+}
+
+/**
+ * @param $template = folder name of file
+ * @param $type = file name of file
+ * @param $keys = keys that could be used for additional filename params
+ * returns false if file does not exist
+ *
+ */
+function cfct_filename($dir, $type = 'default', $keys = array()) {
+       switch ($type) {
+               case 'author':
+                       if (count($keys)) {
+                               $file = 'author-'.$keys[0];
+                       }
+                       else {
+                               $file = 'author';
+                       }
+                       break;
+               case 'category':
+                       if (count($keys)) {
+                               $file = 'cat-'.$keys[0];
+                       }
+                       else {
+                               $file = 'category';
+                       }
+                       break;
+               case 'tag':
+                       if (count($keys)) {
+                               $file = 'tag-'.$keys[0];
+                       }
+                       else {
+                               $file = 'tag';
+                       }
+                       break;
+               case 'meta':
+                       if (count($keys)) {
+                               foreach ($keys as $k => $v) {
+                                       if (!empty($v)) {
+                                               $file = 'meta-'.$k.'-'.$v;
+                                       }
+                                       else {
+                                               $file = 'meta-'.$k;
+                                       }
+                                       break;
+                               }
+                       }
+                       break;
+               case 'user':
+                       if (count($keys)) {
+                               $file = 'user-'.$keys[0];
+                       }
+                       break;
+               case 'role':
+                       if (count($keys)) {
+                               $file = 'role-'.$keys[0];
+                       }
+                       break;
+               case 'parent':
+                       if (count($keys)) {
+                               $file = 'parent-'.$keys[0];
+                       }
+                       break;
+               default:
+               // handles page, etc.
+                       $file = $type;
+       }
+       // fallback for category, author, tag, etc.
+       // child theme path
+       $path = STYLESHEETPATH.'/'.$dir.'/'.$file.'.php';
+       // check for child theme first
+       if (!file_exists($path)) {
+               // use parent theme if no child theme file found
+               $path = CFCT_PATH.$dir.'/'.$file.'.php';
+       }
+       if (!file_exists($path)) {
+               switch ($type) {
+                       case 'author':
+                       case 'category':
+                       case 'tag':
+                               // child theme path
+                               $path = STYLESHEETPATH.'/'.$dir.'/archive.php';
+                               if (!file_exists($path)) {
+                                       // use parent theme if no child theme file found
+                                       $path = CFCT_PATH.$dir.'/archive.php';
+                               }
+               }
+       }
+       $default = CFCT_PATH.$dir.'/'.cfct_default_file($dir);
+       if (file_exists($path)) {
+               $path = $path;
+       }
+       else if (file_exists($default)) {
+               $path = $default;
+       }
+       else {
+               $path = false;
+       }
+       return apply_filters('cfct_filename', $path);
+}
+
+function cfct_template($dir, $keys = array()) {
+       $context = cfct_context();
+       $file = cfct_filename($dir, $context, $keys);
+       if ($file) {
+               include($file);
+       }
+       else {
+               cfct_die('Error loading '.$dir.' '.__LINE__);
+       }
+}
+
+function cfct_template_file($dir, $file, $data = null) {
+       $path = '';
+       if (!empty($file)) {
+               $file = basename($file, '.php');
+               // child theme support
+               $path = STYLESHEETPATH.'/'.$dir.'/'.$file.'.php';
+               if (!file_exists($path)) {
+                       $path = CFCT_PATH.$dir.'/'.$file.'.php';
+               }
+       }
+       if (file_exists($path)) {
+               include($path);
+       }
+       else {
+               cfct_die('Error loading '.$file.' '.__LINE__);
+       }
+}
+
+function cfct_choose_general_template($dir) {
+       $exec_order = array(
+               'author',
+               'role',
+               'category',
+               'tag',
+               'single',
+               'default'
+       );
+       $exec_order = apply_filters('cfct_general_match_order', $exec_order);
+       $files = cfct_files(CFCT_PATH.$dir);
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_general_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($dir, $files);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_general_template', $filename, $dir);
+}
+
+function cfct_choose_general_template_author($dir, $files) {
+       $files = cfct_author_templates($dir, $files);
+       if (count($files)) {
+               $username = get_query_var('author_name');
+               if (empty($username)) {
+                       $user = new WP_User(get_query_var('author'));
+                       $username = $user->user_login;
+               }
+               $filename = 'author-'.$username.'.php';
+               if (in_array($filename, $files)) {
+                       $keys = array($username);
+                       return cfct_filename($dir, 'author', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_category($dir, $files) {
+       $files = cfct_cat_templates($dir, $files);
+       if (count($files)) {
+               global $cat;
+               $slug = cfct_cat_id_to_slug($cat);
+               if (in_array('cat-'.$slug.'.php', $files)) {
+                       $keys = array($slug);
+                       return cfct_filename($dir, 'category', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_tag($dir, $files) {
+       $files = cfct_tag_templates($dir, $files);
+       if (count($files)) {
+               $tag = get_query_var('tag');
+               if (in_array('tag-'.$tag.'.php', $files)) {
+                       $keys = array($tag);
+                       return cfct_filename($dir, 'tag', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_role($dir, $files) {
+       $files = cfct_role_templates($dir, $files);
+       if (count($files)) {
+               $username = get_query_var('author_name');
+               $user = new WP_User(cfct_username_to_id($username));
+               if (!empty($user->user_login)) {
+                       if (count($user->roles)) {
+                               foreach ($user->roles as $role) {
+                                       $role_file = 'role-'.$role.'.php';
+                                       if (in_array($role_file, $files)) {
+                                               return $role_file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_single($dir, $files) {
+       if (cfct_context() == 'single') {
+               $files = cfct_single_templates($dir, $files);
+               if (count($files)) {
+// check to see if we're in the loop.
+                       global $post;
+                       $orig_post = $post;
+                       while (have_posts()) {
+                               the_post();
+                               $filename = cfct_choose_single_template($files, 'single-*');
+                               if (!$filename) {
+                                       if (file_exists(CFCT_PATH.$dir.'/single.php')) {
+                                               $filename = 'single.php';
+                                       }
+                               }
+                       }
+                       rewind_posts();
+                       $post = $orig_post;
+                       return $filename;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_default($dir, $files) {
+       $context = cfct_context();
+       return cfct_filename($dir, $context);
+}
+
+function cfct_choose_single_template($files = array(), $filter = '*') {
+// must be called within the_loop - cfct_choose_general_template_single() approximates a loop for this reason.
+       $exec_order = array(
+               'author',
+               'meta',
+               'category',
+               'type',
+               'role',
+               'tag',
+               'parent', // for pages
+       );
+       $exec_order = apply_filters('cfct_single_match_order', $exec_order);
+       $filename = false;
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_single_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($dir, $files, $filter);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_single_template', $filename);
+}
+
+function cfct_choose_single_template_type($dir, $files, $filter) {
+       $type_files = cfct_type_templates('', $files);
+       if (count($type_files)) {
+               global $post;
+               $file = cfct_filename_filter('type-'.$post->post_type.'.php', $filter);
+               if (in_array($file, $type_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_author($dir, $files, $filter) {
+       $author_files = cfct_author_templates('', $files);
+       if (count($author_files)) {
+               $author = get_the_author_login();
+               $file = cfct_filename_filter('author-'.$author.'.php', $filter);
+               if (in_array($file, $author_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_meta($dir, $files, $filter) {
+       global $post;
+       $meta_files = cfct_meta_templates('', $files);
+       if (count($meta_files)) {
+               $meta = get_post_custom($post->ID);
+               if (count($meta)) {
+// check key, value matches first
+                       foreach ($meta as $k => $v) {
+                               $val = $v[0];
+                               $file = cfct_filename_filter('meta-'.$k.'-'.$val.'.php', $filter);
+                               if (in_array($file, $meta_files)) {
+                                       return $file;
+                               }
+                       }
+// check key matches only
+                       if (!$filename) {
+                               foreach ($meta as $k => $v) {
+                                       $file = cfct_filename_filter('meta-'.$k.'.php', $filter);
+                                       if (in_array($file, $meta_files)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_category($dir, $files, $filter) {
+       $cat_files = cfct_cat_templates($type, $files);
+       if (count($cat_files)) {
+               foreach ($cat_files as $file) {
+                       $file = cfct_filename_filter($file, $filter);
+                       $cat_id = cfct_cat_filename_to_id($file);
+                       if (in_category($cat_id)) {
+                               return $file;
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_role($dir, $files, $filter) {
+       $role_files = cfct_role_templates($type, $files);
+       if (count($role_files)) {
+               $user = new WP_User(get_the_author_meta('ID'));
+               if (count($user->roles)) {
+                       foreach ($role_files as $file) {
+                               $file = cfct_filename_filter($file, $filter);
+                               foreach ($user->roles as $role) {
+                                       if (cfct_role_filename_to_name($file) == $role) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_tag($dir, $files, $filter) {
+       global $post;
+       $tag_files = cfct_tag_templates($type, $files);
+       if (count($tag_files)) {
+               $tags = get_the_tags($post->ID);
+               if (is_array($tags) && count($tags)) {
+                       foreach ($tag_files as $file) {
+                               $file = cfct_filename_filter($file, $filter);
+                               foreach ($tags as $tag) {
+                                       if ($tag->slug == cfct_tag_filename_to_name($file)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_parent($dir, $files, $filter) {
+       global $post;
+       $parent_files = cfct_parent_templates($type, $files);
+       if (count($parent_files) && $post->post_parent > 0) {
+               $parent = cfct_post_id_to_slug($post->post_parent);
+               $file = cfct_filename_filter('parent-'.$parent.'.php', $filter);
+               if (in_array($file, $parent_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_content_template($type = 'content') {
+       $files = cfct_files(CFCT_PATH.$type);
+       $filename = cfct_choose_single_template($files);
+       if (!$filename && cfct_context() == 'page' && file_exists(CFCT_PATH.$type.'/page.php')) {
+               $filename = 'page.php';
+       }
+       if (!$filename) {
+               $filename = cfct_default_file($type);
+       }
+       return apply_filters('cfct_choose_content_template', $filename, $type);
+}
+
+function cfct_choose_comment_template() {
+       $exec_order = array(
+               'ping',
+               'author',
+               'user',
+               'meta',
+               'role',
+               'default',
+       );
+       $exec_order = apply_filters('cfct_comment_match_order', $exec_order);
+       $files = cfct_files(CFCT_PATH.'comment');
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_comment_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($files);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_comment_template', $filename);
+}
+
+function cfct_choose_comment_template_ping($files) {
+       global $comment;
+       if (in_array('ping.php', $files)) {
+               switch ($comment->comment_type) {
+                       case 'pingback':
+                       case 'trackback':
+                               return 'ping';
+                               break;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_meta($files) {
+       global $comment;
+       $meta_files = cfct_meta_templates('', $files);
+       if (count($meta_files)) {
+               $meta = get_metadata('comment', $comment->comment_ID);
+               if (count($meta)) {
+// check key, value matches first
+                       foreach ($meta as $k => $v) {
+                               $val = $v[0];
+                               $file = 'meta-'.$k.'-'.$val.'.php';
+                               if (in_array($file, $meta_files)) {
+                                       return $file;
+                               }
+                       }
+// check key matches only
+                       if (!$filename) {
+                               foreach ($meta as $k => $v) {
+                                       $file = 'meta-'.$k.'.php';
+                                       if (in_array($file, $meta_files)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_author($files) {
+       global $post, $comment;
+       if (!empty($comment->user_id) && $comment->user_id == $post->post_author && in_array('author.php', $files)) {
+               return 'author';
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_user($files) {
+       global $comment;
+       $files = cfct_comment_templates('user', $files);
+       if (count($files) && !empty($comment->user_id)) {
+               $user = new WP_User($comment->user_id);
+               if (!empty($user->user_login)) {
+                       $user_file = 'user-'.$user->user_login.'.php';
+                       if (in_array($user_file, $files)) {
+                               return $user_file;
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_role($files) {
+       global $comment;
+       $files = cfct_comment_templates('role', $files);
+       if (count($files) && !empty($comment->user_id)) {
+               $user = new WP_User($comment->user_id);
+               if (!empty($user->user_login)) {
+                       if (count($user->roles)) {
+                               foreach ($user->roles as $role) {
+                                       $role_file = 'role-'.$role.'.php';
+                                       if (in_array($role_file, $files)) {
+                                               return $role_file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_default($files) {
+       return cfct_default_file('comment');
+}
+
+function cfct_filename_filter($filename, $filter) {
+       // check for filter already appended
+       if (substr($filename, 0, strlen($filter) - 1) == str_replace('*', '', $filter)) {
+               return $filename;
+       }
+       return str_replace('*', $filename, $filter);
+}
+
+function cfct_files($path) {
+       $files = apply_filters('cfct_files_'.$path, false);
+       if ($files) {
+               return $files;
+       }
+       $files = wp_cache_get('cfct_files_'.$path, 'cfct');
+       if ($files) {
+               return $files;
+       }
+       $files = array();
+       $paths = array($path);
+       if (STYLESHEETPATH.'/' != CFCT_PATH) {
+               // load child theme files
+               $paths[] = STYLESHEETPATH.'/'.str_replace(CFCT_PATH, '', $path);
+       }
+       foreach ($paths as $path) {
+               if (is_dir($path) && $handle = opendir($path)) {
+                       while (false !== ($file = readdir($handle))) {
+                               $path = trailingslashit($path);
+                               if (is_file($path.$file) && strtolower(substr($file, -4, 4)) == ".php") {
+                                       $files[] = $file;
+                               }
+                       }
+                       closedir($handle);
+               }
+       }
+       $files = array_unique($files);
+       wp_cache_set('cfct_files_'.$path, $files, 'cfct', 3600);
+       return $files;
+}
+
+function cfct_filter_files($files = array(), $prefix = '') {
+       $matches = array();
+       if (count($files)) {
+               foreach ($files as $file) {
+                       if (strpos($file, $prefix) !== false) {
+                               $matches[] = $file;
+                       }
+               }
+       }
+       return $matches;
+}
+
+function cfct_meta_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'meta-');
+       return apply_filters('cfct_meta_templates', $matches);
+}
+
+function cfct_cat_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'cat-');
+       return apply_filters('cfct_cat_templates', $matches);
+}
+
+function cfct_tag_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'tag-');
+       return apply_filters('cfct_tag_templates', $matches);
+}
+
+function cfct_author_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'author-');
+       return apply_filters('cfct_author_templates', $matches);
+}
+
+function cfct_type_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'type-');
+       return apply_filters('cfct_type_templates', $matches);
+}
+
+function cfct_role_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'role-');
+       return apply_filters('cfct_role_templates', $matches);
+}
+
+function cfct_parent_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'parent-');
+       return apply_filters('cfct_parent_templates', $matches);
+}
+
+function cfct_single_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'single');
+       return apply_filters('cfct_single_templates', $matches);
+}
+
+function cfct_comment_templates($type, $files = false) {
+       if (!$files) {
+               $files = cfct_files(CFCT_PATH.'comment');
+       }
+       $matches = array();
+       switch ($type) {
+               case 'user':
+                       $matches = cfct_filter_files($files, 'user-');
+                       break;
+               case 'role':
+                       $matches = cfct_filter_files($files, 'role-');
+                       break;
+       }
+       return apply_filters('cfct_comment_templates', $matches);
+}
+
+function cfct_cat_filename_to_id($file) {
+       $cat = cfct_cat_filename_to_slug($file);
+       $cat = get_category_by_slug($cat);
+       return $cat->cat_ID;
+}
+
+function cfct_cat_filename_to_name($file) {
+       $cat = cfct_cat_filename_to_slug($file);
+       $cat = get_category_by_slug($cat);
+       return $cat->name;
+}
+
+function cfct_cat_filename_to_slug($file) {
+       return str_replace(array('single-cat-', 'cat-', '.php'), '', $file);
+}
+
+function cfct_cat_id_to_slug($id) {
+       $cat = &get_category($id);
+       return $cat->slug;
+}
+
+function cfct_username_to_id($username) {
+       return get_profile('ID', $username);
+}
+
+function cfct_tag_filename_to_name($file) {
+       return str_replace(array('single-tag-', 'tag-', '.php'), '', $file);
+}
+
+function cfct_author_filename_to_name($file) {
+       return str_replace(array('single-author-', 'author-', '.php'), '', $file);
+}
+
+function cfct_role_filename_to_name($file) {
+       return str_replace(array('single-role-', 'role-', '.php'), '', $file);
+}
+
+function cfct_post_id_to_slug($id) {
+       $post = get_post($id);
+       return $post->post_name;
+}
+
+function cfct_basic_content_formatting($str) {
+       $str = wptexturize($str);
+       $str = convert_smilies($str);
+       $str = convert_chars($str);
+       $str = wpautop($str);
+       return $str;
+}
+
+function cfct_leading_dir($path) {
+       $val = array(
+               'dir' => '',
+               'file' => ''
+       );
+       if (strpos($path, '/') !== false) {
+               $parts = explode('/', $path);
+               $val['file'] = $parts[count($parts) - 1];
+               $val['dir'] = implode('/', array_slice($parts, 0, count($parts) - 1));
+       }
+       else {
+               $val['file'] = $path;
+       }
+       return $val;
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/CHANGELOG.txt b/theme-blog.xenproject.org/carrington-blog/loop/CHANGELOG.txt
new file mode 100644 (file)
index 0000000..985d294
--- /dev/null
@@ -0,0 +1,73 @@
+# Carrington Core Framework Changelog
+
+## 3.0
+
+- Added support for custom post types (WordPress 3.0)
+- Support for child themes (including adding templates and plugins in child themes that do not exist in the parent theme)
+- Allow custom functions to be filtered into the Single and Comment template selection process (already supported in General context selection)
+- Make the posts_per_page setting work as intended (only on initial query)
+- Support for nesting templates inside sub-directories in misc/ and forms/
+- Removed use of deprecated function `get_the_author_ID`. Replaced with 2.8 `get_the_author_meta` (since 2.8.0). Users of versions of WordPress prior to 2.8.0 should be aware this change will cause problems for them.
+- Define required Carrington settings in a more forgiving way, making it easier to use just part of Carrington on a site when desired
+- Make gallery settings (implemented in CSS) specific to each gallery
+- home.php is now only used in is_home() situations, not is_front_page() (reverses feature requested and added in v. 2.5)
+- Compatibility code to make it easier to drop Carrington Core into an existing theme
+- Added changelog
+
+
+## 2.5
+
+- added CFCT_CORE_VERSION constant
+- added support for is_front_page() as 'home' in General context
+- added a filter in cfct_files() so that a plugin can declaritively set the files available for performance reasons (eliminates file system lookups)
+
+
+## 2.4
+
+- update included Thickbox script to support jQuery 1.2.6 (remove @ syntax for attributes)
+- allow filtered in functions to participate in template selection for General context
+
+
+## 2.3
+
+- updated copied Gallery functions
+- workaround for pages needing some vars set in global $wp_query
+- add is_sticky() function for compatibility
+- pass directory name along with filename to cfct_choose_general_template filter
+- pass type along with filename to cfct_choose_content_template filter
+- don't choose "page" content type unless there are no matches from cfct_choose_single_template()
+
+
+## 2.2.1
+
+- only output CSS for the admin on the Carrington settings page
+- fake "in_the_loop" for AJAX load of post content
+
+
+## 2.2
+
+- add a check for comment/ping.php before returning
+
+
+## 2.1
+
+- add a cfct_get_custom_colors() function to core
+
+
+## 2.0
+
+- add color picker
+- add gallery support
+- add hooks to admin forms
+- additional internationalization
+- add header image form
+- properly exclude private posts from AJX load
+- restructure code/files
+- add compatibility file
+- add threaded comment support
+- add single-* support to General context
+
+
+## 1.3
+
+- first tagged core version
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/README.txt b/theme-blog.xenproject.org/carrington-blog/loop/README.txt
new file mode 100644 (file)
index 0000000..7ada478
--- /dev/null
@@ -0,0 +1,15 @@
+## carrington-core/
+
+### Overview
+
+This directory contains Carrington's custom features and functionality.
+
+
+### Supported Override Filenames
+
+- (none)
+
+
+### File Descriptions
+
+You do not need to do anything with files in this folder; they should remain as-is.
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/admin.php b/theme-blog.xenproject.org/carrington-blog/loop/admin.php
new file mode 100644 (file)
index 0000000..0920fbf
--- /dev/null
@@ -0,0 +1,330 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// - add admin page for config settings
+
+function cfct_admin_menu() {
+       if (!current_user_can('manage_options')) {
+               return;
+       }
+       add_submenu_page(
+               'themes.php'
+               , __('Carrington Settings', 'carrington')
+               , __('Carrington', 'carrington')
+               , 0
+               , 'carrington-settings'
+               , 'cfct_settings_form'
+       );
+}
+add_action('admin_menu', 'cfct_admin_menu');
+
+function cfct_admin_request_handler() {
+       if (isset($_POST['cf_action'])) {
+               switch ($_POST['cf_action']) {
+                       case 'cfct_update_settings':
+                               call_user_func($_POST['cf_action']);
+                               wp_redirect(trailingslashit(get_bloginfo('wpurl')).'wp-admin/themes.php?page=carrington-settings&updated=true');
+               }
+       }
+}
+
+function cfct_update_settings() {
+       if (!current_user_can('manage_options')) {
+               return;
+       }
+       global $cfct_options;
+       foreach ($cfct_options as $option) {
+               if (isset($_POST[$option])) {
+                       update_option($option, stripslashes($_POST[$option]));
+               }
+       }
+       do_action('cfct_update_settings');
+}
+
+function cfct_settings_form() {
+       if (isset($_GET['updated'])) {
+               print('
+<div id="message" class="updated fade">
+       <p>'.__('Settings updated.', 'carrington').'</p>
+</div>
+               ');
+       }
+       print('
+<div class="wrap">
+       <h2>'.__('Carrington Settings', 'carrington').'</h2>
+       <form action="options.php" method="post">
+       ');
+       do_action('cfct_settings_form_top');
+       print('
+               <table class="form-table">
+                       <tbody>'
+//                     .cfct_options_home_column('1')
+//                     .cfct_options_home_column('2')
+//                     .cfct_options_home_column('3')
+                       .cfct_options_misc()
+                       .'</tbody>
+               </table>
+       ');
+       do_action('cfct_settings_form_bottom');
+       do_action('cfct_settings_form');
+       print('
+               <p class="submit" style="padding-left: 230px;">
+                       <input type="hidden" name="cf_action" value="cfct_update_settings" />
+                       <input type="submit" name="submit_button" class="button-primary" value="'.__('Save Changes', 'carrington').'" />
+               </p>
+       </form>
+</div>
+       ');
+       do_action('cfct_settings_form_after');
+}
+
+function cfct_options_home_column($key) {
+       $categories = get_categories('hide_empty=0');
+       $cat_options = '';
+       foreach ($categories as $category) {
+               if ($category->term_id == get_option('cfct_home_col_'.$key.'_cat')) {
+                       $selected = 'selected="selected"';
+               }
+               else {
+                       $selected = '';
+               }
+               $cat_options .= "\n\t<option value='$category->term_id' $selected>$category->name</option>";
+       }
+       $show_options = '';
+       $show_option = cfct_get_option('cfct_home_column_'.$key.'_content');
+       if ($show_option == 'latest') {
+               $latest_selected = 'selected="selected"';
+               $list_selected = '';
+       }
+       else {
+               $latest_selected = '';
+               $list_selected = 'selected="selected"';
+       }
+       $html = '
+                               <tr valign="top">
+                                       <th scope="row">'.sprintf(__('Home Column %s', 'carrington'), $key).'</td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_home_column_'.$key.'_cat">'.__('Category:', 'carrington').'</label>
+                                                               <select name="cfct_home_column_'.$key.'_cat" id="cfct_home_column_'.$key.'_cat">'.$cat_options.'</select>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_home_column_'.$key.'_content">'.__('Show:', 'carrington').'</label>
+                                                               <select name="cfct_home_column_'.$key.'_content" id="cfct_home_column_'.$key.'_content" class="home_column_select">
+                                                                       <option value="latest" '.$latest_selected.'>'.__('Latest Post Preview', 'carrington').'</option>
+                                                                       <option value="list" '.$list_selected.'>'.__('List of Recent Post Titles', 'carrington').'</option>
+                                                               </select>
+                                                       </p>
+                                                       <p id="cfct_latest_limit_'.$key.'_option" class="hidden">
+                                                               <label for="cfct_latest_limit_'.$key.'">'.__('Length of preview, in characters (250 recommended):', 'carrington').'</label>
+                                                               <input type="text" name="cfct_latest_limit_'.$key.'" id="cfct_latest_limit_'.$key.'" value="'.cfct_get_option('cfct_latest_limit_'.$key).'" />
+                                                       </p>
+                                                       <p id="cfct_list_limit_'.$key.'_option" class="hidden">
+                                                               <label for="cfct_list_limit_'.$key.'">'.__('Number of titles to show in list (5 recommended):', 'carrington').'</label>
+                                                               <input type="text" name="cfct_list_limit_'.$key.'" id="cfct_list_limit_'.$key.'" value="'.cfct_get_option('cfct_list_limit_'.$key).'" />
+                                                       </p>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+       ';
+       return $html;
+}
+
+function cfct_options_misc() {
+       $options = array(
+               'yes' => __('Yes', 'carrington'),
+               'no' => __('No', 'carrington')
+       );
+       $credit_options = '';
+       foreach ($options as $k => $v) {
+               if ($k == get_option('cfct_credit')) {
+                       $credit_selected = 'selected="selected"';
+               }
+               else {
+                       $credit_selected = '';
+               }
+               $credit_options .= "\n\t<option value='$k' $credit_selected>$v</option>";
+       }
+       $html = '
+                               <tr valign="top">
+                                       <th scope="row">'.sprintf(__('Misc.', 'carrington'), $key).'</td>
+                                       <td>
+                                               <fieldset>
+                                                       <p>
+                                                               <label for="cfct_about_text">'.__('About text (shown in sidebar):', 'carrington').'</label>
+                                                               <br />
+                                                               <textarea name="cfct_about_text" id="cfct_about_text" cols="40" rows="8">'.htmlspecialchars(get_option('cfct_about_text')).'</textarea>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_wp_footer">'.__('Footer code (for analytics, etc.):', 'carrington').'</label>
+                                                               <br />
+                                                               <textarea name="cfct_wp_footer" id="cfct_wp_footer" cols="40" rows="5">'.htmlspecialchars(get_option('cfct_wp_footer')).'</textarea>
+                                                       </p>
+                                                       <p>
+                                                               <label for="cfct_credit">'.__('Give <a href="http://crowdfavorite.com">Crowd Favorite</a> credit in footer:', 'carrington').'</label>
+                                                               <select name="cfct_credit" id="cfct_credit">'.$credit_options.'</select>
+                                                       </p>
+                                               </fieldset>
+                                       </td>
+                               </tr>
+       ';
+       return $html;
+}
+
+function cfct_header_image_form() {
+       global $wpdb;
+
+       $images = $wpdb->get_results("
+               SELECT * FROM $wpdb->posts 
+               WHERE post_type = 'attachment' 
+               AND post_mime_type LIKE 'image%' 
+               AND post_parent = 0
+               ORDER BY post_date_gmt DESC
+               LIMIT 50
+       ");
+       $upload_url = trailingslashit(get_bloginfo('wpurl')).'wp-admin/media-new.php';
+       $checked_attr = ' checked="checked"';
+       $output = '
+<ul style="width: '.((count($images) + 1) * 152).'px">
+       <li style="background: #666;">
+               <label for="cfct_header_image_0">
+                       <input type="radio" name="cfct_header_image" value="0" id="cfct_header_image_0" '.$default_checked.'/>'.__('No Image', 'carrington-core').'
+               </label>
+       </li>
+       ';
+       if (count($images)) {
+               $header_image = get_option('cfct_header_image');
+               if (empty($header_image)) {
+                       $header_image = 0;
+                       $default_checked = $checked_attr;
+               }
+               else {
+                       $default_checked = '';
+               }
+               foreach ($images as $image) {
+                       $id = 'cfct_header_image_'.$image->ID;
+                       $thumbnail = wp_get_attachment_image_src($image->ID);
+                       $header_image == $image->ID ? $checked = $checked_attr : $checked = '';
+                       $output .= '
+       <li style="background-image: url('.$thumbnail[0].')">
+               <label for="'.$id.'">
+                       <input type="radio" name="cfct_header_image" value="'.$image->ID.'" id="'.$id.'"'.$checked.' />'.wp_specialchars($image->post_title).'
+               </label>
+       </li>';
+               }
+       }
+       $output .= '</ul>';
+       return '<p>'.sprintf(__('Header Image &mdash; <a href="%s">Upload Images</a>', 'carrington-core'), $upload_url).'</p><div class="cfct_header_image_carousel">'.$output.'</div>';
+}
+
+if (is_admin()) {
+       wp_enqueue_script('jquery-colorpicker', get_bloginfo('template_directory').'/carrington-core/js/colorpicker.js', array('jquery'), '1.0');
+// removing until we drop 2.5 compatibility
+//     wp_enqueue_style('jquery-colorpicker', get_bloginfo('template_directory').'/carrington-core/css/colorpicker.css');
+}
+
+function cfct_admin_head() {
+// see enqueued style above, we'll activate that in the future
+       if ($_GET['page'] == 'carrington-settings') {
+               echo '
+<link rel="stylesheet" type="text/css" media="screen" href="'.get_bloginfo('template_directory').'/carrington-core/css/colorpicker.css" />
+               ';
+               cfct_admin_css();
+       }
+//     cfct_admin_js();
+}
+add_action('admin_head', 'cfct_admin_head');
+
+function cfct_admin_css() {
+?>
+<style type="text/css">
+div.cfct_header_image_carousel {
+       height: 170px;
+       overflow: auto;
+       width: 600px;
+}
+div.cfct_header_image_carousel ul {
+       height: 150px;
+}
+div.cfct_header_image_carousel li {
+       background: #fff url() center center no-repeat;
+       float: left;
+       height: 150px;
+       margin-right: 2px;
+       overflow: hidden;
+       position: relative;
+       width: 150px;
+}
+div.cfct_header_image_carousel li label {
+       background: #000;
+       color: #fff;
+       display: block;
+       height: 50px;
+       line-height: 25px;
+       overflow: hidden;
+       position: absolute;
+       top: 110px;
+       width: 150px;
+       filter:alpha(opacity=75);
+       -moz-opacity:.75;
+       opacity:.75;
+}
+div.cfct_header_image_carousel li label input {
+       margin: 0 5px;
+}
+</style>
+<?php
+}
+
+function cfct_admin_js() {
+?>
+<script type="text/javascript">
+jQuery(function() {
+       jQuery('select.home_column_select').each(function() {
+               cfct_home_columns(jQuery(this), false);
+       }).change(function() {
+               cfct_home_columns(jQuery(this), true);
+       });
+});
+
+function cfct_home_columns(elem, slide) {
+       var id = elem.attr('id').replace('cfct_home_column_', '').replace('_content', '');
+       var val = elem.val();
+       var option_show = '#cfct_latest_limit_' + id + '_option';
+       var option_hide = '#cfct_list_limit_' + id + '_option';
+       if (val == 'list') {
+               option_show = '#cfct_list_limit_' + id + '_option';
+               option_hide = '#cfct_latest_limit_' + id + '_option';
+       }
+       if (slide) {
+               jQuery(option_hide).slideUp(function() {
+                       jQuery(option_show).slideDown();
+               });
+       }
+       else {
+               jQuery(option_show).show();
+               jQuery(option_hide).hide();
+       }
+}
+</script>
+<?php
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/ajax-load.php b/theme-blog.xenproject.org/carrington-blog/loop/ajax-load.php
new file mode 100644 (file)
index 0000000..74ab5ac
--- /dev/null
@@ -0,0 +1,115 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_ajax_post_content($post_id) {
+       global $post, $posts, $wp_query, $wp;
+       $posts = get_posts('include='.$post_id);
+       $post = $posts[0];
+       if (is_null($post)) {
+               $posts = get_pages('include='.$post_id);
+               $post = $posts[0];
+       }
+       if (is_null($post)) {
+               $posts = get_posts('post_status=private&include='.$post_id);
+               $post = $posts[0];
+               if ($post) {
+                       $user = wp_get_current_user();
+                       if (!$user->ID || $user->ID != $post->post_author) {
+                               $post = null;
+                       }
+               }
+       }
+       if (!$post) {
+               die('');
+       }
+       $wp_query->in_the_loop = true;
+       setup_postdata($post);
+       remove_filter('the_content', 'st_add_widget');
+       $wp->send_headers();
+       cfct_content();
+       echo '<div class="close" id="post_close_'.$post_id.'"><a href="#">'.__('Close', 'carrington').'</a></div>';
+}
+
+function cfct_ajax_post_comments($post_id) {
+       global $post, $posts, $wp_query, $wp;
+       $wp_query->is_single = true;
+       $posts = get_posts('include='.$post_id);
+       $post = $posts[0];
+       if (is_null($post)) {
+               $posts = get_pages('include='.$post_id);
+               $post = $posts[0];
+       }
+       setup_postdata($post);
+       $wp->send_headers();
+       comments_template();
+}
+
+function cfct_ajax_load() {
+       if (isset($_GET['cfct_action'])) {
+               switch ($_GET['cfct_action']) {
+                       case 'post_content':
+                       case 'post_comments':
+                               if (isset($_GET['id'])) {
+                                       $post_id = intval($_GET['id']);
+                               }
+                               else if (isset($_GET['url'])) {
+                                       $post_id = url_to_post_id($_GET['url']);
+                               }
+                               if ($post_id) {
+                                       call_user_func('cfct_ajax_'.$_GET['cfct_action'], $post_id);
+                                       die();
+                               }
+               }
+       }
+}
+
+function cfct_ajax_comment_link() {
+       global $post;
+       echo ' rev="post-'.$post->ID.'" ';
+}
+add_filter('comments_popup_link_attributes', 'cfct_ajax_comment_link');
+
+function cfct_posts_per_archive_page_setting() {
+       $count = get_option('cfct_posts_per_archive_page');
+       intval($count) > 0 ? $count = $count : $count = 25;
+       return $count;
+}
+
+// add a self-removing filter to handle category pages
+function cfct_add_posts_per_archive_page() {
+       add_filter('pre_get_posts', 'cfct_posts_per_archive_page');
+       add_filter('pre_get_posts', 'cfct_posts_per_category_page');
+}
+add_filter('parse_request', 'cfct_add_posts_per_archive_page');
+
+function cfct_posts_per_archive_page($query) {
+       remove_filter('pre_get_posts', 'cfct_posts_per_archive_page');
+       $query->set('posts_per_archive_page', cfct_posts_per_archive_page_setting());
+       return $query;
+}
+
+function cfct_posts_per_category_page($query) {
+       remove_filter('pre_get_posts', 'cfct_posts_per_category_page');
+       if (is_category()) {
+               $query->set('posts_per_page', cfct_posts_per_archive_page_setting());
+       }
+       return $query;
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/archive.php b/theme-blog.xenproject.org/carrington-blog/loop/archive.php
new file mode 100644 (file)
index 0000000..1d0afec
--- /dev/null
@@ -0,0 +1,37 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+if (have_posts()) {
+       echo '<ol class="archive">';
+       while (have_posts()) {
+               the_post();
+?>
+       <li>
+<?php
+               cfct_excerpt();
+?>
+               <div id="post-content-<?php the_ID(); ?>-target"></div>
+       </li>
+<?php
+       }
+       echo '</ol><!--.archive-->';
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/attachment.php b/theme-blog.xenproject.org/carrington-blog/loop/attachment.php
new file mode 100644 (file)
index 0000000..f275f9f
--- /dev/null
@@ -0,0 +1,126 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+function cfct_get_adjacent_image_link($prev = true) {
+       global $post;
+       $post = get_post($post);
+       $attachments = array_values(get_children( array('post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID') ));
+
+       foreach ( $attachments as $k => $attachment )
+               if ( $attachment->ID == $post->ID )
+                       break;
+
+       $k = $prev ? $k - 1 : $k + 1;
+
+       if ( isset($attachments[$k]) )
+               return wp_get_attachment_link($attachments[$k]->ID, 'thumbnail', true);
+}
+
+function cfct_post_gallery($unused, $attr) {
+       global $post;
+
+       // We're trusting author input, so let's at least make sure it looks like a valid orderby statement
+       if ( isset( $attr['orderby'] ) ) {
+               $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
+               if ( !$attr['orderby'] )
+                       unset( $attr['orderby'] );
+       }
+
+       extract(shortcode_atts(array(
+               'order'      => 'ASC',
+               'orderby'    => 'menu_order ID',
+               'id'         => $post->ID,
+               'itemtag'    => 'dl',
+               'icontag'    => 'dt',
+               'captiontag' => 'dd',
+               'columns'    => 3,
+               'size'       => 'thumbnail'
+       ), $attr));
+
+       $id = intval($id);
+       $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
+
+       if ( empty($attachments) )
+               return '';
+
+       if ( is_feed() ) {
+               $output = "\n";
+               foreach ( $attachments as $id => $attachment )
+                       $output .= wp_get_attachment_link($id, $size, true) . "\n";
+               return $output;
+       }
+
+       $itemtag = tag_escape($itemtag);
+       $captiontag = tag_escape($captiontag);
+       $columns = apply_filters('cfct_post_gallery_columns', intval($columns));
+       $itemwidth = $columns > 0 ? floor(100/$columns) : 100;
+
+       $output = apply_filters('gallery_style', '
+               <style type="text/css">
+                       .post-'.$id.' .gallery {
+                               margin: auto;
+                       }
+                       .post-'.$id.' .gallery-item {
+                               float: left;
+                               margin-top: 10px;
+                               text-align: center;
+                               width: '.$itemwidth.'%;                 }
+                       .post-'.$id.' .gallery img {
+                               border: 2px solid #cfcfcf;
+                       }
+                       .post-'.$id.' .gallery-caption {
+                               margin-left: 0;
+                       }
+               </style>
+               <!-- see cfct_post_gallery() in carrington-core/attachment.php -->
+               <div class="gallery">');
+
+       $i = 0;
+       foreach ( $attachments as $id => $attachment ) {
+// get full item src
+               $item_src = wp_get_attachment_image_src($id, 'full', false);
+
+               $link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id, $size, false, false) : wp_get_attachment_link($id, $size, true, false);
+               
+// add full item src as rel
+               $link = str_replace('><img', ' class="thickbox" rel="'.$item_src[0].'"><img', $link);
+
+               $output .= "<{$itemtag} class='gallery-item'>";
+               $output .= "
+                       <{$icontag} class='gallery-icon'>
+                               $link
+                       </{$icontag}>";
+               if ( $captiontag && trim($attachment->post_excerpt) ) {
+                       $output .= "
+                               <{$captiontag} class='gallery-caption'>
+                               {$attachment->post_excerpt}
+                               </{$captiontag}>";
+               }
+               $output .= "</{$itemtag}>";
+               if ( $columns > 0 && ++$i % $columns == 0 )
+                       $output .= '<br style="clear: both" />';
+       }
+
+       $output .= "
+                       <br style='clear: both;' />
+               </div>\n";
+
+       return $output;
+}
+add_filter('post_gallery', 'cfct_post_gallery', 10, 2);
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/carrington.php b/theme-blog.xenproject.org/carrington-blog/loop/carrington.php
new file mode 100644 (file)
index 0000000..2479915
--- /dev/null
@@ -0,0 +1,106 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+//     ini_set('display_errors', '1');
+//     ini_set('error_reporting', E_ALL);
+
+define('CFCT_CORE_VERSION', '3.0');
+
+// Path to Carrington Core parent directory (usually the theme).
+if (!defined('CFCT_PATH')) {
+       define('CFCT_PATH', trailingslashit(TEMPLATEPATH));
+}
+
+load_theme_textdomain('carrington');
+
+$cfct_options[] = 'cfct_about_text';
+$cfct_options[] = 'cfct_credit';
+$cfct_options[] = 'cfct_wp_footer';
+
+include_once(CFCT_PATH.'carrington-core/admin.php');
+include_once(CFCT_PATH.'carrington-core/templates.php');
+include_once(CFCT_PATH.'carrington-core/utility.php');
+include_once(CFCT_PATH.'carrington-core/ajax-load.php');
+include_once(CFCT_PATH.'carrington-core/attachment.php');
+include_once(CFCT_PATH.'carrington-core/compatibility.php');
+
+cfct_load_plugins();
+
+function cfct_init() {
+       cfct_admin_request_handler();
+       if (cfct_get_option('cfct_ajax_load') == 'yes') {
+               cfct_ajax_load();
+       }
+}
+add_action('init', 'cfct_init');
+
+function cfct_wp_footer() {
+       echo get_option('cfct_wp_footer');
+}
+add_action('wp_footer', 'cfct_wp_footer');
+
+function cfct_about_text() {
+       $about_text = get_option('cfct_about_text');
+       if (!empty($about_text)) {
+               $about_text = cfct_basic_content_formatting($about_text);
+       }
+       else {
+               global $post, $wp_query;
+               $orig_post = $post;
+               isset($wp_query->query_vars['page']) ? $page = $wp_query->query_vars['page'] : $page = null;
+// temporary - resetting below
+               $wp_query->query_vars['page'] = null;
+               remove_filter('the_excerpt', 'st_add_widget');
+               $about_query = new WP_Query('pagename=about');
+               while ($about_query->have_posts()) {
+                       $about_query->the_post();
+                       $about_text = get_the_excerpt().sprintf(__('<a class="more" href="%s">more &rarr;</a>', 'carrington'), get_permalink());
+               }
+               $wp_query->query_vars['page'] = $page;
+               $post = $orig_post;
+               setup_postdata($post);
+       }
+       if (function_exists('st_add_widget')) {
+               add_filter('the_excerpt', 'st_add_widget');
+       }
+       return $about_text;
+}
+
+function cfct_get_custom_colors($type = 'option') {
+       global $cfct_color_options;
+       $colors = array();
+       foreach ($cfct_color_options as $option => $value) {
+               switch ($type) {
+                       case 'preview':
+                               !empty($_GET[$option]) ? $colors[$option] = strip_tags(stripslashes($_GET[$option])) : $colors[$option] = '';
+                               break;
+                       case 'option':
+                       default:
+                               $colors[$option] = cfct_get_option($option);
+                               break;
+               }
+       }
+       return $colors;
+}
+
+if (!defined('CFCT_DEBUG')) {
+       define('CFCT_DEBUG', false);
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/compatibility.php b/theme-blog.xenproject.org/carrington-blog/loop/compatibility.php
new file mode 100644 (file)
index 0000000..1d86f3c
--- /dev/null
@@ -0,0 +1,242 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+/**
+ * Outputs hidden fields for comment form with unique IDs, based on post ID, making it safe for AJAX pull.
+ */
+function cfct_comment_id_fields() {
+       global $id;
+
+       $replytoid = isset($_GET['replytocom']) ? (int) $_GET['replytocom'] : 0;
+       echo "<input type='hidden' name='comment_post_ID' value='$id' id='comment_post_ID_p$id' />\n";
+       echo "<input type='hidden' name='comment_parent' id='comment_parent_p$id' value='$replytoid' />\n";
+}
+
+/**
+ * Filter the comment reply link to add a unique unique ID, based on post ID, making it safe for AJAX pull.
+ */
+function cfct_get_cancel_comment_reply_link($reply_link, $link, $text) {
+       global $post;
+       
+       if ( !empty($text) ) { $text = __('Cancel', 'carrington'); }
+       
+       $style = '';
+       if (!isset($_GET['replytocom'])) {
+               $style = ' style="display:none;"';
+       }
+       
+       $reply_link = '<a rel="nofollow" id="cancel-comment-reply-link-p' . $post->ID . '" href="' . $link . '-p' . $post->ID . '"' . $style . '>' . $text . '</a>';
+       return $reply_link;
+}
+
+
+
+
+// ITEMS BELOW THIS LINE ARE DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE
+
+
+// Functions here without the cfct_ prefix are taken from WordPress 2.7 (GPL)
+
+if (!function_exists('is_sticky')) {
+       function is_sticky() {
+               return false;
+       }
+}
+
+/**
+ * Displays classes for post div
+ *
+ * @param string|array $class One or more classes to add to the class list.
+ * @param int $post_id An optional post ID.
+ */
+
+if (!function_exists('post_class')) {
+       function post_class( $class = '', $post_id = null ) {
+               // Separates classes with a single space, collates classes for post DIV
+               echo 'class="' . join( ' ', get_post_class( $class, $post_id ) ) . '"';
+       }
+}
+
+/**
+ * Retrieve the classes for the post div as an array.
+ *
+ * The class names are add are many. If the post is a sticky, then the 'sticky'
+ * class name. The class 'hentry' is always added to each post. For each
+ * category, the class will be added with 'category-' with category slug is
+ * added. The tags are the same way as the categories with 'tag-' before the tag
+ * slug. All classes are passed through the filter, 'post_class' with the list
+ * of classes, followed by $class parameter value, with the post ID as the last
+ * parameter.
+ *
+ * @param string|array $class One or more classes to add to the class list.
+ * @param int $post_id An optional post ID.
+ * @return array Array of classes.
+ */
+if (!function_exists('get_post_class')) {
+       function get_post_class( $class = '', $post_id = null ) {
+               $post = get_post($post_id);
+
+               $classes = array();
+
+               $classes[] = $post->post_type;
+
+               // sticky for Sticky Posts
+               if ( is_sticky($post->ID) && is_home())
+                       $classes[] = 'sticky';
+
+               // hentry for hAtom compliace
+               $classes[] = 'hentry';
+
+               // Categories
+               foreach ( (array) get_the_category($post->ID) as $cat ) {
+                       if ( empty($cat->slug ) )
+                               continue;
+                       $classes[] = 'category-' . $cat->slug;
+               }
+
+               // Tags
+               foreach ( (array) get_the_tags($post->ID) as $tag ) {
+                       if ( empty($tag->slug ) )
+                               continue;
+                       $classes[] = 'tag-' . $tag->slug;
+               }
+
+               if ( !empty($class) ) {
+                       if ( !is_array( $class ) )
+                               $class = preg_split('#\s+#', $class);
+                       $classes = array_merge($classes, $class);
+               }
+
+               return apply_filters('post_class', $classes, $class, $post_id);
+       }
+}
+
+/**
+ * Display "sticky" CSS class, if a post is sticky.
+ *
+ * @param int $post_id An optional post ID.
+ */
+if (!function_exists('sticky_class')) {
+       function sticky_class( $post_id = null ) {
+               if ( !is_sticky($post_id) )
+                       return;
+
+               echo " sticky";
+       }
+}
+
+/**
+ * Generates semantic classes for each comment element
+ *
+ * @param string|array $class One or more classes to add to the class list
+ * @param int $comment_id An optional comment ID
+ * @param int $post_id An optional post ID
+ * @param bool $echo Whether comment_class should echo or return
+ */
+if (!function_exists('comment_class')) {
+       function comment_class( $class = '', $comment_id = null, $post_id = null, $echo = true ) {
+               // Separates classes with a single space, collates classes for comment DIV
+               $class = 'class="' . join( ' ', get_comment_class( $class, $comment_id, $post_id ) ) . '"';
+               if ( $echo)
+                       echo $class;
+               else
+                       return $class;
+       }
+}
+
+/**
+ * Returns the classes for the comment div as an array
+ *
+ * @param string|array $class One or more classes to add to the class list
+ * @param int $comment_id An optional comment ID
+ * @param int $post_id An optional post ID
+ * @return array Array of classes
+ */
+if (!function_exists('get_comment_class')) {
+       function get_comment_class( $class = '', $comment_id = null, $post_id = null ) {
+               global $comment_alt, $comment_depth, $comment_thread_alt;
+
+               $comment = get_comment($comment_id);
+
+               $classes = array();
+
+               // Get the comment type (comment, trackback),
+               $classes[] = ( empty( $comment->comment_type ) ) ? 'comment' : $comment->comment_type;
+
+               // If the comment author has an id (registered), then print the log in name
+               if ( $comment->user_id > 0 && $user = get_userdata($comment->user_id) ) {
+                       // For all registered users, 'byuser'
+                       $classes[] = 'byuser comment-author-' . $user->user_nicename;
+                       // For comment authors who are the author of the post
+                       if ( $post = get_post($post_id) ) {
+                               if ( $comment->user_id === $post->post_author )
+                                       $classes[] = 'bypostauthor';
+                       }
+               }
+
+               if ( empty($comment_alt) )
+                       $comment_alt = 0;
+               if ( empty($comment_depth) )
+                       $comment_depth = 1;
+               if ( empty($comment_thread_alt) )
+                       $comment_thread_alt = 0;
+
+               if ( $comment_alt % 2 ) {
+                       $classes[] = 'odd';
+                       $classes[] = 'alt';
+               } else {
+                       $classes[] = 'even';
+               }
+
+               $comment_alt++;
+
+               // Alt for top-level comments
+               if ( 1 == $comment_depth ) {
+                       if ( $comment_thread_alt % 2 ) {
+                               $classes[] = 'thread-odd';
+                               $classes[] = 'thread-alt';
+                       } else {
+                               $classes[] = 'thread-even';
+                       }
+                       $comment_thread_alt++;
+               }
+
+               $classes[] = "depth-$comment_depth";
+
+               if ( !empty($class) ) {
+                       if ( !is_array( $class ) )
+                               $class = preg_split('#\s+#', $class);
+                       $classes = array_merge($classes, $class);
+               }
+
+               return apply_filters('comment_class', $classes, $class, $comment_id, $post_id);
+       }
+}
+
+
+// For meeting wordpress.org requirements
+
+/*
+get_avatar();
+the_tags();
+register_sidebar('none');
+bloginfo('description');
+wp_head();
+wp_footer();
+*/
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/css/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/loop/css/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..2b3dbee
--- /dev/null
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 40
+/svn/!svn/ver/502/framework/tags/3.0/css
+END
+colorpicker.css
+K 25
+svn:wc:ra_dav:version-url
+V 56
+/svn/!svn/ver/502/framework/tags/3.0/css/colorpicker.css
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/css/.svn/entries b/theme-blog.xenproject.org/carrington-blog/loop/css/.svn/entries
new file mode 100644 (file)
index 0000000..6332fbf
--- /dev/null
@@ -0,0 +1,62 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/css
+http://carrington.googlecode.com/svn
+
+
+
+2009-02-16T06:47:28.823363Z
+144
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+colorpicker.css
+file
+
+
+
+
+2010-08-02T15:33:18.451218Z
+4e5585c378bc646f057e8a31c4c3eab9
+2009-02-16T06:47:28.823363Z
+144
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3164
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/css/.svn/prop-base/colorpicker.css.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/css/.svn/prop-base/colorpicker.css.svn-base
new file mode 100644 (file)
index 0000000..869ac71
--- /dev/null
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/css/.svn/text-base/colorpicker.css.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/css/.svn/text-base/colorpicker.css.svn-base
new file mode 100644 (file)
index 0000000..2116e27
--- /dev/null
@@ -0,0 +1,161 @@
+.colorpicker {
+       width: 356px;
+       height: 176px;
+       overflow: hidden;
+       position: absolute;
+       background: url(../images/colorpicker/colorpicker_background.png);
+       font-family: Arial, Helvetica, sans-serif;
+       display: none;
+}
+.colorpicker_color {
+       width: 150px;
+       height: 150px;
+       left: 14px;
+       top: 13px;
+       position: absolute;
+       background: #f00;
+       overflow: hidden;
+       cursor: crosshair;
+}
+.colorpicker_color div {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 150px;
+       height: 150px;
+       background: url(../images/colorpicker/colorpicker_overlay.png);
+}
+.colorpicker_color div div {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 11px;
+       height: 11px;
+       overflow: hidden;
+       background: url(../images/colorpicker/colorpicker_select.gif);
+       margin: -5px 0 0 -5px;
+}
+.colorpicker_hue {
+       position: absolute;
+       top: 13px;
+       left: 171px;
+       width: 35px;
+       height: 150px;
+       cursor: n-resize;
+}
+.colorpicker_hue div {
+       position: absolute;
+       width: 35px;
+       height: 9px;
+       overflow: hidden;
+       background: url(../images/colorpicker/colorpicker_indic.gif) left top;
+       margin: -4px 0 0 0;
+       left: 0px;
+}
+.colorpicker_new_color {
+       position: absolute;
+       width: 60px;
+       height: 30px;
+       left: 213px;
+       top: 13px;
+       background: #f00;
+}
+.colorpicker_current_color {
+       position: absolute;
+       width: 60px;
+       height: 30px;
+       left: 283px;
+       top: 13px;
+       background: #f00;
+}
+.colorpicker input {
+       background-color: transparent;
+       border: 1px solid transparent;
+       position: absolute;
+       font-size: 10px;
+       font-family: Arial, Helvetica, sans-serif;
+       color: #898989;
+       top: 4px;
+       right: 11px;
+       text-align: right;
+       margin: 0;
+       padding: 0;
+       height: 11px;
+}
+.colorpicker_hex {
+       position: absolute;
+       width: 72px;
+       height: 22px;
+       background: url(../images/colorpicker/colorpicker_hex.png) top;
+       left: 212px;
+       top: 142px;
+}
+.colorpicker_hex input {
+       right: 6px;
+}
+.colorpicker_field {
+       height: 22px;
+       width: 62px;
+       background-position: top;
+       position: absolute;
+}
+.colorpicker_field span {
+       position: absolute;
+       width: 12px;
+       height: 22px;
+       overflow: hidden;
+       top: 0;
+       right: 0;
+       cursor: n-resize;
+}
+.colorpicker_rgb_r {
+       background-image: url(../images/colorpicker/colorpicker_rgb_r.png);
+       top: 52px;
+       left: 212px;
+}
+.colorpicker_rgb_g {
+       background-image: url(../images/colorpicker/colorpicker_rgb_g.png);
+       top: 82px;
+       left: 212px;
+}
+.colorpicker_rgb_b {
+       background-image: url(../images/colorpicker/colorpicker_rgb_b.png);
+       top: 112px;
+       left: 212px;
+}
+.colorpicker_hsb_h {
+       background-image: url(../images/colorpicker/colorpicker_hsb_h.png);
+       top: 52px;
+       left: 282px;
+}
+.colorpicker_hsb_s {
+       background-image: url(../images/colorpicker/colorpicker_hsb_s.png);
+       top: 82px;
+       left: 282px;
+}
+.colorpicker_hsb_b {
+       background-image: url(../images/colorpicker/colorpicker_hsb_b.png);
+       top: 112px;
+       left: 282px;
+}
+.colorpicker_submit {
+       position: absolute;
+       width: 22px;
+       height: 22px;
+       background: url(../images/colorpicker/colorpicker_submit.png) top;
+       left: 322px;
+       top: 142px;
+       overflow: hidden;
+}
+.colorpicker_focus {
+       background-position: center;
+}
+.colorpicker_hex.colorpicker_focus {
+       background-position: bottom;
+}
+.colorpicker_submit.colorpicker_focus {
+       background-position: bottom;
+}
+.colorpicker_slider {
+       background-position: bottom;
+}
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/css/colorpicker.css b/theme-blog.xenproject.org/carrington-blog/loop/css/colorpicker.css
new file mode 100644 (file)
index 0000000..2116e27
--- /dev/null
@@ -0,0 +1,161 @@
+.colorpicker {
+       width: 356px;
+       height: 176px;
+       overflow: hidden;
+       position: absolute;
+       background: url(../images/colorpicker/colorpicker_background.png);
+       font-family: Arial, Helvetica, sans-serif;
+       display: none;
+}
+.colorpicker_color {
+       width: 150px;
+       height: 150px;
+       left: 14px;
+       top: 13px;
+       position: absolute;
+       background: #f00;
+       overflow: hidden;
+       cursor: crosshair;
+}
+.colorpicker_color div {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 150px;
+       height: 150px;
+       background: url(../images/colorpicker/colorpicker_overlay.png);
+}
+.colorpicker_color div div {
+       position: absolute;
+       top: 0;
+       left: 0;
+       width: 11px;
+       height: 11px;
+       overflow: hidden;
+       background: url(../images/colorpicker/colorpicker_select.gif);
+       margin: -5px 0 0 -5px;
+}
+.colorpicker_hue {
+       position: absolute;
+       top: 13px;
+       left: 171px;
+       width: 35px;
+       height: 150px;
+       cursor: n-resize;
+}
+.colorpicker_hue div {
+       position: absolute;
+       width: 35px;
+       height: 9px;
+       overflow: hidden;
+       background: url(../images/colorpicker/colorpicker_indic.gif) left top;
+       margin: -4px 0 0 0;
+       left: 0px;
+}
+.colorpicker_new_color {
+       position: absolute;
+       width: 60px;
+       height: 30px;
+       left: 213px;
+       top: 13px;
+       background: #f00;
+}
+.colorpicker_current_color {
+       position: absolute;
+       width: 60px;
+       height: 30px;
+       left: 283px;
+       top: 13px;
+       background: #f00;
+}
+.colorpicker input {
+       background-color: transparent;
+       border: 1px solid transparent;
+       position: absolute;
+       font-size: 10px;
+       font-family: Arial, Helvetica, sans-serif;
+       color: #898989;
+       top: 4px;
+       right: 11px;
+       text-align: right;
+       margin: 0;
+       padding: 0;
+       height: 11px;
+}
+.colorpicker_hex {
+       position: absolute;
+       width: 72px;
+       height: 22px;
+       background: url(../images/colorpicker/colorpicker_hex.png) top;
+       left: 212px;
+       top: 142px;
+}
+.colorpicker_hex input {
+       right: 6px;
+}
+.colorpicker_field {
+       height: 22px;
+       width: 62px;
+       background-position: top;
+       position: absolute;
+}
+.colorpicker_field span {
+       position: absolute;
+       width: 12px;
+       height: 22px;
+       overflow: hidden;
+       top: 0;
+       right: 0;
+       cursor: n-resize;
+}
+.colorpicker_rgb_r {
+       background-image: url(../images/colorpicker/colorpicker_rgb_r.png);
+       top: 52px;
+       left: 212px;
+}
+.colorpicker_rgb_g {
+       background-image: url(../images/colorpicker/colorpicker_rgb_g.png);
+       top: 82px;
+       left: 212px;
+}
+.colorpicker_rgb_b {
+       background-image: url(../images/colorpicker/colorpicker_rgb_b.png);
+       top: 112px;
+       left: 212px;
+}
+.colorpicker_hsb_h {
+       background-image: url(../images/colorpicker/colorpicker_hsb_h.png);
+       top: 52px;
+       left: 282px;
+}
+.colorpicker_hsb_s {
+       background-image: url(../images/colorpicker/colorpicker_hsb_s.png);
+       top: 82px;
+       left: 282px;
+}
+.colorpicker_hsb_b {
+       background-image: url(../images/colorpicker/colorpicker_hsb_b.png);
+       top: 112px;
+       left: 282px;
+}
+.colorpicker_submit {
+       position: absolute;
+       width: 22px;
+       height: 22px;
+       background: url(../images/colorpicker/colorpicker_submit.png) top;
+       left: 322px;
+       top: 142px;
+       overflow: hidden;
+}
+.colorpicker_focus {
+       background-position: center;
+}
+.colorpicker_hex.colorpicker_focus {
+       background-position: bottom;
+}
+.colorpicker_submit.colorpicker_focus {
+       background-position: bottom;
+}
+.colorpicker_slider {
+       background-position: bottom;
+}
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/loop/images/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..0dd2439
--- /dev/null
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 43
+/svn/!svn/ver/502/framework/tags/3.0/images
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/.svn/entries b/theme-blog.xenproject.org/carrington-blog/loop/images/.svn/entries
new file mode 100644 (file)
index 0000000..f8e1233
--- /dev/null
@@ -0,0 +1,31 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/images
+http://carrington.googlecode.com/svn
+
+
+
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+colorpicker
+dir
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..3870f98
--- /dev/null
@@ -0,0 +1,161 @@
+K 25
+svn:wc:ra_dav:version-url
+V 55
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker
+END
+colorpicker_select.gif
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_select.gif
+END
+custom_submit.png
+K 25
+svn:wc:ra_dav:version-url
+V 73
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_submit.png
+END
+colorpicker_submit.png
+K 25
+svn:wc:ra_dav:version-url
+V 78
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_submit.png
+END
+select2.png
+K 25
+svn:wc:ra_dav:version-url
+V 67
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/select2.png
+END
+custom_indic.gif
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_indic.gif
+END
+colorpicker_indic.gif
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_indic.gif
+END
+custom_rgb_b.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_rgb_b.png
+END
+colorpicker_rgb_b.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_rgb_b.png
+END
+custom_hsb_b.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_hsb_b.png
+END
+blank.gif
+K 25
+svn:wc:ra_dav:version-url
+V 65
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/blank.gif
+END
+custom_background.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_background.png
+END
+colorpicker_hsb_b.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_hsb_b.png
+END
+custom_rgb_g.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_rgb_g.png
+END
+colorpicker_background.png
+K 25
+svn:wc:ra_dav:version-url
+V 82
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_background.png
+END
+colorpicker_rgb_g.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_rgb_g.png
+END
+custom_hsb_h.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_hsb_h.png
+END
+colorpicker_overlay.png
+K 25
+svn:wc:ra_dav:version-url
+V 79
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_overlay.png
+END
+custom_hex.png
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_hex.png
+END
+colorpicker_hsb_h.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_hsb_h.png
+END
+select.png
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/select.png
+END
+colorpicker_hex.png
+K 25
+svn:wc:ra_dav:version-url
+V 75
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_hex.png
+END
+slider.png
+K 25
+svn:wc:ra_dav:version-url
+V 66
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/slider.png
+END
+custom_rgb_r.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_rgb_r.png
+END
+colorpicker_rgb_r.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_rgb_r.png
+END
+custom_hsb_s.png
+K 25
+svn:wc:ra_dav:version-url
+V 72
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/custom_hsb_s.png
+END
+colorpicker_hsb_s.png
+K 25
+svn:wc:ra_dav:version-url
+V 77
+/svn/!svn/ver/502/framework/tags/3.0/images/colorpicker/colorpicker_hsb_s.png
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/entries b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/entries
new file mode 100644 (file)
index 0000000..0957eaa
--- /dev/null
@@ -0,0 +1,912 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/images/colorpicker
+http://carrington.googlecode.com/svn
+
+
+
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+colorpicker_select.gif
+file
+
+
+
+
+2010-08-02T15:33:18.375254Z
+cec464162af0cce10348e7bb7701ef86
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+78
+\f
+custom_submit.png
+file
+
+
+
+
+2010-08-02T15:33:18.379465Z
+35423f0f2538e507dec193b52f8d0327
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+997
+\f
+colorpicker_submit.png
+file
+
+
+
+
+2010-08-02T15:33:18.379465Z
+12d1746e6b52e007f1b78d772d9248ba
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+984
+\f
+select2.png
+file
+
+
+
+
+2010-08-02T15:33:18.379465Z
+c8d194d92dbad98615b2a9140b34ab48
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+518
+\f
+custom_indic.gif
+file
+
+
+
+
+2010-08-02T15:33:18.379465Z
+04660eb352eb259581a36a0fe8da2d4d
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+86
+\f
+colorpicker_indic.gif
+file
+
+
+
+
+2010-08-02T15:33:18.379465Z
+f485d07540a89502e36dc1a55cec05d0
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+86
+\f
+custom_rgb_b.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+f6e50cd567bd3059742d45ab224a413b
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1008
+\f
+colorpicker_rgb_b.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+2be4e81b4a5c98674abe6fc60b447e9a
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+970
+\f
+custom_hsb_b.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+b45588ca2fe9ba46673862300fcd3083
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1097
+\f
+blank.gif
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+56398e76be6355ad5999b262208a17c9
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+49
+\f
+custom_background.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+06c91f7ae1561ccd8f1c79119529600d
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1916
+\f
+colorpicker_hsb_b.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+2be4e81b4a5c98674abe6fc60b447e9a
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+970
+\f
+custom_rgb_g.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+b1e286e06692b3640862a3d07f636a80
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1069
+\f
+colorpicker_background.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+a79f1a2a81bfe3ed1c2ca4c41b8e1fbf
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1897
+\f
+colorpicker_rgb_g.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+dc17f953a6febbe174e92b54690586c3
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1069
+\f
+custom_hsb_h.png
+file
+
+
+
+
+2010-08-02T15:33:18.383223Z
+4a1afa5636421aae4c44471d2273496d
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+970
+\f
+colorpicker_overlay.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+c7a33805ffda0d32bd2a9904c8b02750
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+10355
+\f
+custom_hex.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+e27aaa92b15d9392d909f8b94e797524
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+562
+\f
+colorpicker_hsb_h.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+d47409a203bedc76b26dc60b71a69f6b
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1012
+\f
+select.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+7b086953a8c62d2685a65644979d5d04
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+506
+\f
+colorpicker_hex.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+16d6870c36e379c06fb26ebd2e16bf44
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+532
+\f
+slider.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+3a50b8078dea50b9811603a85ecef836
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+315
+\f
+custom_rgb_r.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+8ae4b3ef109ee66ec1022632470ddd0f
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1018
+\f
+colorpicker_rgb_r.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+87eeb205d093b713b68a341771f4ee27
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1066
+\f
+custom_hsb_s.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+83aa97407fb76615a7db5ed721681148
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1168
+\f
+colorpicker_hsb_s.png
+file
+
+
+
+
+2010-08-02T15:33:18.387463Z
+5ff5e43ab6b7b41b6123bfab692a9b19
+2009-01-18T05:10:19.287035Z
+66
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1171
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/blank.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/blank.gif.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_background.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_background.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hex.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hex.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hsb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hsb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hsb_h.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hsb_h.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hsb_s.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_hsb_s.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_indic.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_indic.gif.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_overlay.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_overlay.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_rgb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_rgb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_rgb_g.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_rgb_g.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_rgb_r.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_rgb_r.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_select.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_select.gif.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_submit.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/colorpicker_submit.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_background.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_background.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hex.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hex.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hsb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hsb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hsb_h.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hsb_h.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hsb_s.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_hsb_s.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_indic.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_indic.gif.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_rgb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_rgb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_rgb_g.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_rgb_g.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_rgb_r.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_rgb_r.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_submit.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/custom_submit.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/select.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/select.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/select2.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/select2.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/slider.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/prop-base/slider.png.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/blank.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/blank.gif.svn-base
new file mode 100644 (file)
index 0000000..75b945d
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/blank.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_background.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_background.png.svn-base
new file mode 100644 (file)
index 0000000..8401572
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_background.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hex.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hex.png.svn-base
new file mode 100644 (file)
index 0000000..4e532d7
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hex.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dfac595
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_b.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_h.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_h.png.svn-base
new file mode 100644 (file)
index 0000000..3977ed9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_h.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_s.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_s.png.svn-base
new file mode 100644 (file)
index 0000000..a2a6997
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_hsb_s.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_indic.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_indic.gif.svn-base
new file mode 100644 (file)
index 0000000..f9fa95e
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_indic.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_overlay.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_overlay.png.svn-base
new file mode 100644 (file)
index 0000000..561cdd9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_overlay.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_b.png.svn-base
new file mode 100644 (file)
index 0000000..dfac595
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_b.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_g.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_g.png.svn-base
new file mode 100644 (file)
index 0000000..72b3276
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_g.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_r.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_r.png.svn-base
new file mode 100644 (file)
index 0000000..4855fe0
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_rgb_r.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_select.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_select.gif.svn-base
new file mode 100644 (file)
index 0000000..599f7f1
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_select.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_submit.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_submit.png.svn-base
new file mode 100644 (file)
index 0000000..7f4c082
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/colorpicker_submit.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_background.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_background.png.svn-base
new file mode 100644 (file)
index 0000000..cf55ffd
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_background.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hex.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hex.png.svn-base
new file mode 100644 (file)
index 0000000..888f444
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hex.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_b.png.svn-base
new file mode 100644 (file)
index 0000000..2f99dae
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_b.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_h.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_h.png.svn-base
new file mode 100644 (file)
index 0000000..a217e92
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_h.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_s.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_s.png.svn-base
new file mode 100644 (file)
index 0000000..7826b41
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_hsb_s.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_indic.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_indic.gif.svn-base
new file mode 100644 (file)
index 0000000..222fb94
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_indic.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_b.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_b.png.svn-base
new file mode 100644 (file)
index 0000000..80764e5
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_b.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_g.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_g.png.svn-base
new file mode 100644 (file)
index 0000000..fc9778b
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_g.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_r.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_r.png.svn-base
new file mode 100644 (file)
index 0000000..91b0cd4
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_rgb_r.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_submit.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_submit.png.svn-base
new file mode 100644 (file)
index 0000000..cd202cd
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/custom_submit.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/select.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/select.png.svn-base
new file mode 100644 (file)
index 0000000..21213bf
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/select.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/select2.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/select2.png.svn-base
new file mode 100644 (file)
index 0000000..2cd2cab
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/select2.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/slider.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/slider.png.svn-base
new file mode 100644 (file)
index 0000000..8b03da9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/.svn/text-base/slider.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/blank.gif b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/blank.gif
new file mode 100644 (file)
index 0000000..75b945d
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/blank.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_background.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_background.png
new file mode 100644 (file)
index 0000000..8401572
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_background.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hex.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hex.png
new file mode 100644 (file)
index 0000000..4e532d7
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hex.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_b.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_b.png
new file mode 100644 (file)
index 0000000..dfac595
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_h.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_h.png
new file mode 100644 (file)
index 0000000..3977ed9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_h.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_s.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_s.png
new file mode 100644 (file)
index 0000000..a2a6997
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_hsb_s.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_indic.gif b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_indic.gif
new file mode 100644 (file)
index 0000000..f9fa95e
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_indic.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_overlay.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_overlay.png
new file mode 100644 (file)
index 0000000..561cdd9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_overlay.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_b.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_b.png
new file mode 100644 (file)
index 0000000..dfac595
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_g.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_g.png
new file mode 100644 (file)
index 0000000..72b3276
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_g.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_r.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_r.png
new file mode 100644 (file)
index 0000000..4855fe0
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_rgb_r.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_select.gif b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_select.gif
new file mode 100644 (file)
index 0000000..599f7f1
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_select.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_submit.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_submit.png
new file mode 100644 (file)
index 0000000..7f4c082
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/colorpicker_submit.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_background.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_background.png
new file mode 100644 (file)
index 0000000..cf55ffd
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_background.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hex.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hex.png
new file mode 100644 (file)
index 0000000..888f444
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hex.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_b.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_b.png
new file mode 100644 (file)
index 0000000..2f99dae
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_h.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_h.png
new file mode 100644 (file)
index 0000000..a217e92
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_h.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_s.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_s.png
new file mode 100644 (file)
index 0000000..7826b41
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_hsb_s.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_indic.gif b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_indic.gif
new file mode 100644 (file)
index 0000000..222fb94
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_indic.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_b.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_b.png
new file mode 100644 (file)
index 0000000..80764e5
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_b.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_g.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_g.png
new file mode 100644 (file)
index 0000000..fc9778b
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_g.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_r.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_r.png
new file mode 100644 (file)
index 0000000..91b0cd4
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_rgb_r.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_submit.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_submit.png
new file mode 100644 (file)
index 0000000..cd202cd
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/custom_submit.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/select.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/select.png
new file mode 100644 (file)
index 0000000..21213bf
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/select.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/select2.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/select2.png
new file mode 100644 (file)
index 0000000..2cd2cab
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/select2.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/slider.png b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/slider.png
new file mode 100644 (file)
index 0000000..8b03da9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/images/colorpicker/slider.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/js/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/loop/js/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..26339e0
--- /dev/null
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 39
+/svn/!svn/ver/502/framework/tags/3.0/js
+END
+colorpicker.js
+K 25
+svn:wc:ra_dav:version-url
+V 54
+/svn/!svn/ver/502/framework/tags/3.0/js/colorpicker.js
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/js/.svn/entries b/theme-blog.xenproject.org/carrington-blog/loop/js/.svn/entries
new file mode 100644 (file)
index 0000000..a6d6912
--- /dev/null
@@ -0,0 +1,62 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/js
+http://carrington.googlecode.com/svn
+
+
+
+2009-02-16T06:47:28.823363Z
+144
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+colorpicker.js
+file
+
+
+
+
+2010-08-02T15:33:18.459218Z
+dcfede901a53dc3484a47f7b2d98860b
+2009-02-16T06:47:28.823363Z
+144
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+17417
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/js/.svn/prop-base/colorpicker.js.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/js/.svn/prop-base/colorpicker.js.svn-base
new file mode 100644 (file)
index 0000000..869ac71
--- /dev/null
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/js/.svn/text-base/colorpicker.js.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/js/.svn/text-base/colorpicker.js.svn-base
new file mode 100644 (file)
index 0000000..e9dbd2e
--- /dev/null
@@ -0,0 +1,490 @@
+/**
+ *
+ * Color picker
+ * Author: Stefan Petre www.eyecon.ro
+ * 
+ */
+(function ($) {
+       var ColorPicker = function () {
+               var
+                       ids = {},
+                       inAction,
+                       charMin = 65,
+                       visible,
+                       tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
+                       defaults = {
+                               eventName: 'click',
+                               onShow: function () {},
+                               onBeforeShow: function(){},
+                               onHide: function () {},
+                               onChange: function () {},
+                               onSubmit: function () {},
+                               color: 'ff0000',
+                               livePreview: true,
+                               flat: false
+                       },
+                       fillRGBFields = function  (hsb, cal) {
+                               var rgb = HSBToRGB(hsb);
+                               $(cal).data('colorpicker').fields
+                                       .eq(1).val(rgb.r).end()
+                                       .eq(2).val(rgb.g).end()
+                                       .eq(3).val(rgb.b).end();
+                       },
+                       fillHSBFields = function  (hsb, cal) {
+                               $(cal).data('colorpicker').fields
+                                       .eq(4).val(hsb.h).end()
+                                       .eq(5).val(hsb.s).end()
+                                       .eq(6).val(hsb.b).end();
+                       },
+                       fillHexFields = function (hsb, cal) {
+                               $(cal).data('colorpicker').fields
+                                       .eq(0).val(HSBToHex(hsb)).end();
+                       },
+                       setSelector = function (hsb, cal) {
+                               $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
+                               $(cal).data('colorpicker').selectorIndic.css({
+                                       left: parseInt(150 * hsb.s/100, 10),
+                                       top: parseInt(150 * (100-hsb.b)/100, 10)
+                               });
+                       },
+                       setHue = function (hsb, cal) {
+                               $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
+                       },
+                       setCurrentColor = function (hsb, cal) {
+                               $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
+                       },
+                       setNewColor = function (hsb, cal) {
+                               $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
+                       },
+                       keyDown = function (ev) {
+                               var pressedKey = ev.charCode || ev.keyCode || -1;
+                               if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
+                                       return false;
+                               }
+                               var cal = $(this).parent().parent();
+                               if (cal.data('colorpicker').livePreview === true) {
+                                       change.apply(this);
+                               }
+                       },
+                       change = function (ev) {
+                               var cal = $(this).parent().parent(), col;
+                               if (this.parentNode.className.indexOf('_hex') > 0) {
+                                       cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
+                               } else if (this.parentNode.className.indexOf('_hsb') > 0) {
+                                       cal.data('colorpicker').color = col = fixHSB({
+                                               h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
+                                               s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
+                                               b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
+                                       });
+                               } else {
+                                       cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
+                                               r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
+                                               g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
+                                               b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
+                                       }));
+                               }
+                               if (ev) {
+                                       fillRGBFields(col, cal.get(0));
+                                       fillHexFields(col, cal.get(0));
+                                       fillHSBFields(col, cal.get(0));
+                               }
+                               setSelector(col, cal.get(0));
+                               setHue(col, cal.get(0));
+                               setNewColor(col, cal.get(0));
+                               cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
+                       },
+                       blur = function (ev) {
+                               var cal = $(this).parent().parent();
+                               cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus')
+                       },
+                       focus = function () {
+                               charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
+                               $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
+                               $(this).parent().addClass('colorpicker_focus');
+                       },
+                       downIncrement = function (ev) {
+                               var field = $(this).parent().find('input').focus();
+                               var current = {
+                                       el: $(this).parent().addClass('colorpicker_slider'),
+                                       max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
+                                       y: ev.pageY,
+                                       field: field,
+                                       val: parseInt(field.val(), 10),
+                                       preview: $(this).parent().parent().data('colorpicker').livePreview                                      
+                               };
+                               $(document).bind('mouseup', current, upIncrement);
+                               $(document).bind('mousemove', current, moveIncrement);
+                       },
+                       moveIncrement = function (ev) {
+                               ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
+                               if (ev.data.preview) {
+                                       change.apply(ev.data.field.get(0), [true]);
+                               }
+                               return false;
+                       },
+                       upIncrement = function (ev) {
+                               change.apply(ev.data.field.get(0), [true]);
+                               ev.data.el.removeClass('colorpicker_slider').find('input').focus();
+                               $(document).unbind('mouseup', upIncrement);
+                               $(document).unbind('mousemove', moveIncrement);
+                               return false;
+                       },
+                       downHue = function (ev) {
+                               var current = {
+                                       cal: $(this).parent(),
+                                       y: $(this).offset().top
+                               };
+                               current.preview = current.cal.data('colorpicker').livePreview;
+                               $(document).bind('mouseup', current, upHue);
+                               $(document).bind('mousemove', current, moveHue);
+                       },
+                       moveHue = function (ev) {
+                               change.apply(
+                                       ev.data.cal.data('colorpicker')
+                                               .fields
+                                               .eq(4)
+                                               .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
+                                               .get(0),
+                                       [ev.data.preview]
+                               );
+                               return false;
+                       },
+                       upHue = function (ev) {
+                               fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               $(document).unbind('mouseup', upHue);
+                               $(document).unbind('mousemove', moveHue);
+                               return false;
+                       },
+                       downSelector = function (ev) {
+                               var current = {
+                                       cal: $(this).parent(),
+                                       pos: $(this).offset()
+                               };
+                               current.preview = current.cal.data('colorpicker').livePreview;
+                               $(document).bind('mouseup', current, upSelector);
+                               $(document).bind('mousemove', current, moveSelector);
+                       },
+                       moveSelector = function (ev) {
+                               change.apply(
+                                       ev.data.cal.data('colorpicker')
+                                               .fields
+                                               .eq(6)
+                                               .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
+                                               .end()
+                                               .eq(5)
+                                               .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
+                                               .get(0),
+                                       [ev.data.preview]
+                               );
+                               return false;
+                       },
+                       upSelector = function (ev) {
+                               fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               $(document).unbind('mouseup', upSelector);
+                               $(document).unbind('mousemove', moveSelector);
+                               return false;
+                       },
+                       enterSubmit = function (ev) {
+                               $(this).addClass('colorpicker_focus');
+                       },
+                       leaveSubmit = function (ev) {
+                               $(this).removeClass('colorpicker_focus');
+                       },
+                       clickSubmit = function (ev) {
+                               var cal = $(this).parent();
+                               var col = cal.data('colorpicker').color;
+                               cal.data('colorpicker').origColor = col;
+                               setCurrentColor(col, cal.get(0));
+                               cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col));
+                       },
+                       show = function (ev) {
+                               var cal = $('#' + $(this).data('colorpickerId'));
+                               cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
+                               var pos = $(this).offset();
+                               var viewPort = getViewport();
+                               var top = pos.top + this.offsetHeight;
+                               var left = pos.left;
+                               if (top + 176 > viewPort.t + viewPort.h) {
+                                       top -= this.offsetHeight + 176;
+                               }
+                               if (left + 356 > viewPort.l + viewPort.w) {
+                                       left -= 356;
+                               }
+                               cal.css({left: left + 'px', top: top + 'px'});
+                               if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
+                                       cal.show();
+                               }
+                               $(document).bind('mousedown', {cal: cal}, hide);
+                               return false;
+                       },
+                       hide = function (ev) {
+                               if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
+                                       if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
+                                               ev.data.cal.hide();
+                                       }
+                                       $(document).unbind('mousedown', hide);
+                               }
+                       },
+                       isChildOf = function(parentEl, el, container) {
+                               if (parentEl == el) {
+                                       return true;
+                               }
+                               if (parentEl.contains) {
+                                       return parentEl.contains(el);
+                               }
+                               if ( parentEl.compareDocumentPosition ) {
+                                       return !!(parentEl.compareDocumentPosition(el) & 16);
+                               }
+                               var prEl = el.parentNode;
+                               while(prEl && prEl != container) {
+                                       if (prEl == parentEl)
+                                               return true;
+                                       prEl = prEl.parentNode;
+                               }
+                               return false;
+                       },
+                       getViewport = function () {
+                               var m = document.compatMode == 'CSS1Compat';
+                               return {
+                                       l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
+                                       t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
+                                       w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
+                                       h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
+                               };
+                       },
+                       fixHSB = function (hsb) {
+                               return {
+                                       h: Math.min(360, Math.max(0, hsb.h)),
+                                       s: Math.min(100, Math.max(0, hsb.s)),
+                                       b: Math.min(100, Math.max(0, hsb.b))
+                               };
+                       }, 
+                       fixRGB = function (rgb) {
+                               return {
+                                       r: Math.min(255, Math.max(0, rgb.r)),
+                                       g: Math.min(255, Math.max(0, rgb.g)),
+                                       b: Math.min(255, Math.max(0, rgb.b))
+                               };
+                       },
+                       fixHex = function (hex) {
+                               var len = 6 - hex.length;
+                               if (len > 0) {
+                                       var o = [];
+                                       for (var i=0; i<len; i++) {
+                                               o.push('0');
+                                       }
+                                       o.push(hex);
+                                       hex = o.join('');
+                               }
+                               return hex;
+                       }, 
+                       HexToRGB = function (hex) {
+                               var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
+                               return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
+                       },
+                       HexToHSB = function (hex) {
+                               return RGBToHSB(HexToRGB(hex));
+                       },
+                       RGBToHSB = function (rgb) {
+                               var hsb = {};
+                               hsb.b = Math.max(Math.max(rgb.r,rgb.g),rgb.b);
+                               hsb.s = (hsb.b <= 0) ? 0 : Math.round(100*(hsb.b - Math.min(Math.min(rgb.r,rgb.g),rgb.b))/hsb.b);
+                               hsb.b = Math.round((hsb.b /255)*100);
+                               if((rgb.r==rgb.g) && (rgb.g==rgb.b)) hsb.h = 0;
+                               else if(rgb.r>=rgb.g && rgb.g>=rgb.b) hsb.h = 60*(rgb.g-rgb.b)/(rgb.r-rgb.b);
+                               else if(rgb.g>=rgb.r && rgb.r>=rgb.b) hsb.h = 60  + 60*(rgb.g-rgb.r)/(rgb.g-rgb.b);
+                               else if(rgb.g>=rgb.b && rgb.b>=rgb.r) hsb.h = 120 + 60*(rgb.b-rgb.r)/(rgb.g-rgb.r);
+                               else if(rgb.b>=rgb.g && rgb.g>=rgb.r) hsb.h = 180 + 60*(rgb.b-rgb.g)/(rgb.b-rgb.r);
+                               else if(rgb.b>=rgb.r && rgb.r>=rgb.g) hsb.h = 240 + 60*(rgb.r-rgb.g)/(rgb.b-rgb.g);
+                               else if(rgb.r>=rgb.b && rgb.b>=rgb.g) hsb.h = 300 + 60*(rgb.r-rgb.b)/(rgb.r-rgb.g);
+                               else hsb.h = 0;
+                               hsb.h = Math.round(hsb.h);
+                               return hsb;
+                       },
+                       HSBToRGB = function (hsb) {
+                               var rgb = {};
+                               var h = Math.round(hsb.h);
+                               var s = Math.round(hsb.s*255/100);
+                               var v = Math.round(hsb.b*255/100);
+                               if(s == 0) {
+                                       rgb.r = rgb.g = rgb.b = v;
+                               } else {
+                                       var t1 = v;
+                                       var t2 = (255-s)*v/255;
+                                       var t3 = (t1-t2)*(h%60)/60;
+                                       if(h==360) h = 0;
+                                       if(h<60) {rgb.r=t1;     rgb.b=t2; rgb.g=t2+t3}
+                                       else if(h<120) {rgb.g=t1; rgb.b=t2;     rgb.r=t1-t3}
+                                       else if(h<180) {rgb.g=t1; rgb.r=t2;     rgb.b=t2+t3}
+                                       else if(h<240) {rgb.b=t1; rgb.r=t2;     rgb.g=t1-t3}
+                                       else if(h<300) {rgb.b=t1; rgb.g=t2;     rgb.r=t2+t3}
+                                       else if(h<360) {rgb.r=t1; rgb.g=t2;     rgb.b=t1-t3}
+                                       else {rgb.r=0; rgb.g=0; rgb.b=0}
+                               }
+                               return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
+                       },
+                       RGBToHex = function (rgb) {
+                               var hex = [
+                                       rgb.r.toString(16),
+                                       rgb.g.toString(16),
+                                       rgb.b.toString(16)
+                               ];
+                               $.each(hex, function (nr, val) {
+                                       if (val.length == 1) {
+                                               hex[nr] = '0' + val;
+                                       }
+                               });
+                               return hex.join('');
+                       },
+                       HSBToHex = function (hsb) {
+                               return RGBToHex(HSBToRGB(hsb));
+                       };
+               return {
+                       init: function (options) {
+                               options = $.extend({}, defaults, options||{});
+                               if (typeof options.color == 'string') {
+                                       options.color = HexToHSB(options.color);
+                               } else if (options.color.r != undefined && options.color.g != undefined && options.color.b != undefined) {
+                                       options.color = RGBToHSB(options.color);
+                               } else if (options.color.h != undefined && options.color.s != undefined && options.color.b != undefined) {
+                                       options.color = fixHSB(options.color);
+                               } else {
+                                       return this;
+                               }
+                               options.origColor = options.color;
+                               return this.each(function () {
+                                       if (!$(this).data('colorpickerId')) {
+                                               var id = 'collorpicker_' + parseInt(Math.random() * 1000);
+                                               $(this).data('colorpickerId', id);
+                                               var cal = $(tpl).attr('id', id);
+                                               if (options.flat) {
+                                                       cal.appendTo(this).show();
+                                               } else {
+                                                       cal.appendTo(document.body);
+                                               }
+                                               options.fields = cal
+                                                                                       .find('input')
+                                                                                               .bind('keydown', keyDown)
+                                                                                               .bind('change', change)
+                                                                                               .bind('blur', blur)
+                                                                                               .bind('focus', focus);
+                                               cal.find('span').bind('mousedown', downIncrement);
+                                               options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
+                                               options.selectorIndic = options.selector.find('div div');
+                                               options.hue = cal.find('div.colorpicker_hue div');
+                                               cal.find('div.colorpicker_hue').bind('mousedown', downHue);
+                                               options.newColor = cal.find('div.colorpicker_new_color');
+                                               options.currentColor = cal.find('div.colorpicker_current_color');
+                                               cal.data('colorpicker', options);
+                                               cal.find('div.colorpicker_submit')
+                                                       .bind('mouseenter', enterSubmit)
+                                                       .bind('mouseleave', leaveSubmit)
+                                                       .bind('click', clickSubmit);
+                                               fillRGBFields(options.color, cal.get(0));
+                                               fillHSBFields(options.color, cal.get(0));
+                                               fillHexFields(options.color, cal.get(0));
+                                               setHue(options.color, cal.get(0));
+                                               setSelector(options.color, cal.get(0));
+                                               setCurrentColor(options.color, cal.get(0));
+                                               setNewColor(options.color, cal.get(0));
+                                               if (options.flat) {
+                                                       cal.css({
+                                                               position: 'relative',
+                                                               display: 'block'
+                                                       });
+                                               } else {
+                                                       $(this).bind(options.eventName, show);
+                                               }
+                                       }
+                               });
+                       },
+                       showPicker: function() {
+                               return this.each( function () {
+                                       if ($(this).data('colorpickerId')) {
+                                               show.apply(this);
+                                       }
+                               });
+                       },
+                       hidePicker: function() {
+                               return this.each( function () {
+                                       if ($(this).data('colorpickerId')) {
+                                               $('#' + $(this).data('colorpickerId')).hide();
+                                       }
+                               });
+                       },
+                       setColor: function(col) {
+                               if (typeof col == 'string') {
+                                       col = HexToHSB(col);
+                               } else if (col.r != undefined && col.g != undefined && col.b != undefined) {
+                                       col = RGBToHSB(col);
+                               } else if (col.h != undefined && col.s != undefined && col.b != undefined) {
+                                       col = fixHSB(col);
+                               } else {
+                                       return this;
+                               }
+                               return this.each(function(){
+                                       if ($(this).data('colorpickerId')) {
+                                               var cal = $('#' + $(this).data('colorpickerId'));
+                                               cal.data('colorpicker').color = col;
+                                               cal.data('colorpicker').origColor = col;
+                                               fillRGBFields(col, cal.get(0));
+                                               fillHSBFields(col, cal.get(0));
+                                               fillHexFields(col, cal.get(0));
+                                               setHue(col, cal.get(0));
+                                               setSelector(col, cal.get(0));
+                                               setCurrentColor(col, cal.get(0));
+                                               setNewColor(col, cal.get(0));
+                                       }
+                               });
+                       }
+               };
+       }();
+       $.fn.extend({
+               ColorPicker: ColorPicker.init,
+               ColorPickerHide: ColorPicker.hide,
+               ColorPickerShow: ColorPicker.show,
+               ColorPickerSetColor: ColorPicker.setColor
+       });
+})(jQuery)
+
+// hex to decimal code found here and used with minor modification: http://www.telerik.com/community/forums/aspnet-ajax/colorpicker/calculate-color-contrast-in-javascript.aspx
+function getDec(hexChar) {
+       if (typeof hexChar == 'undefined') {
+               return 0;
+       }
+       switch(hexChar.toUpperCase()) {
+               case '0': return 0;
+               case '1': return 1;
+               case '2': return 2;
+               case '3': return 3;
+               case '4': return 4;
+               case '5': return 5;
+               case '6': return 6;
+               case '7': return 7;
+               case '8': return 8;
+               case '9': return 9;
+               case 'A': return 10;
+               case 'B': return 11;
+               case 'C': return 12;
+               case 'D': return 13;
+               case 'E': return 14;
+               case 'F': return 15;
+       };
+}
+function hexToDec(hex) {
+       var colorChars = hex.split('');
+       var dec = (getDec(colorChars[0]) * 16) + getDec(colorChars[1]);
+       return dec;
+}
+function getRGB(color) {
+       // remove the '#'
+       if (color.indexOf('#') != -1) {
+               color = color.substring(color.indexOf('#') + 1);
+       }
+       var r = hexToDec(color.substr(0, 2));
+       var g = hexToDec(color.substr(2, 2));
+       var b = hexToDec(color.substr(4, 2));
+       return { r: r, g: g, b: b};
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/js/colorpicker.js b/theme-blog.xenproject.org/carrington-blog/loop/js/colorpicker.js
new file mode 100644 (file)
index 0000000..e9dbd2e
--- /dev/null
@@ -0,0 +1,490 @@
+/**
+ *
+ * Color picker
+ * Author: Stefan Petre www.eyecon.ro
+ * 
+ */
+(function ($) {
+       var ColorPicker = function () {
+               var
+                       ids = {},
+                       inAction,
+                       charMin = 65,
+                       visible,
+                       tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
+                       defaults = {
+                               eventName: 'click',
+                               onShow: function () {},
+                               onBeforeShow: function(){},
+                               onHide: function () {},
+                               onChange: function () {},
+                               onSubmit: function () {},
+                               color: 'ff0000',
+                               livePreview: true,
+                               flat: false
+                       },
+                       fillRGBFields = function  (hsb, cal) {
+                               var rgb = HSBToRGB(hsb);
+                               $(cal).data('colorpicker').fields
+                                       .eq(1).val(rgb.r).end()
+                                       .eq(2).val(rgb.g).end()
+                                       .eq(3).val(rgb.b).end();
+                       },
+                       fillHSBFields = function  (hsb, cal) {
+                               $(cal).data('colorpicker').fields
+                                       .eq(4).val(hsb.h).end()
+                                       .eq(5).val(hsb.s).end()
+                                       .eq(6).val(hsb.b).end();
+                       },
+                       fillHexFields = function (hsb, cal) {
+                               $(cal).data('colorpicker').fields
+                                       .eq(0).val(HSBToHex(hsb)).end();
+                       },
+                       setSelector = function (hsb, cal) {
+                               $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
+                               $(cal).data('colorpicker').selectorIndic.css({
+                                       left: parseInt(150 * hsb.s/100, 10),
+                                       top: parseInt(150 * (100-hsb.b)/100, 10)
+                               });
+                       },
+                       setHue = function (hsb, cal) {
+                               $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
+                       },
+                       setCurrentColor = function (hsb, cal) {
+                               $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
+                       },
+                       setNewColor = function (hsb, cal) {
+                               $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
+                       },
+                       keyDown = function (ev) {
+                               var pressedKey = ev.charCode || ev.keyCode || -1;
+                               if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
+                                       return false;
+                               }
+                               var cal = $(this).parent().parent();
+                               if (cal.data('colorpicker').livePreview === true) {
+                                       change.apply(this);
+                               }
+                       },
+                       change = function (ev) {
+                               var cal = $(this).parent().parent(), col;
+                               if (this.parentNode.className.indexOf('_hex') > 0) {
+                                       cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
+                               } else if (this.parentNode.className.indexOf('_hsb') > 0) {
+                                       cal.data('colorpicker').color = col = fixHSB({
+                                               h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
+                                               s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
+                                               b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
+                                       });
+                               } else {
+                                       cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
+                                               r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
+                                               g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
+                                               b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
+                                       }));
+                               }
+                               if (ev) {
+                                       fillRGBFields(col, cal.get(0));
+                                       fillHexFields(col, cal.get(0));
+                                       fillHSBFields(col, cal.get(0));
+                               }
+                               setSelector(col, cal.get(0));
+                               setHue(col, cal.get(0));
+                               setNewColor(col, cal.get(0));
+                               cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
+                       },
+                       blur = function (ev) {
+                               var cal = $(this).parent().parent();
+                               cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus')
+                       },
+                       focus = function () {
+                               charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
+                               $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
+                               $(this).parent().addClass('colorpicker_focus');
+                       },
+                       downIncrement = function (ev) {
+                               var field = $(this).parent().find('input').focus();
+                               var current = {
+                                       el: $(this).parent().addClass('colorpicker_slider'),
+                                       max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
+                                       y: ev.pageY,
+                                       field: field,
+                                       val: parseInt(field.val(), 10),
+                                       preview: $(this).parent().parent().data('colorpicker').livePreview                                      
+                               };
+                               $(document).bind('mouseup', current, upIncrement);
+                               $(document).bind('mousemove', current, moveIncrement);
+                       },
+                       moveIncrement = function (ev) {
+                               ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
+                               if (ev.data.preview) {
+                                       change.apply(ev.data.field.get(0), [true]);
+                               }
+                               return false;
+                       },
+                       upIncrement = function (ev) {
+                               change.apply(ev.data.field.get(0), [true]);
+                               ev.data.el.removeClass('colorpicker_slider').find('input').focus();
+                               $(document).unbind('mouseup', upIncrement);
+                               $(document).unbind('mousemove', moveIncrement);
+                               return false;
+                       },
+                       downHue = function (ev) {
+                               var current = {
+                                       cal: $(this).parent(),
+                                       y: $(this).offset().top
+                               };
+                               current.preview = current.cal.data('colorpicker').livePreview;
+                               $(document).bind('mouseup', current, upHue);
+                               $(document).bind('mousemove', current, moveHue);
+                       },
+                       moveHue = function (ev) {
+                               change.apply(
+                                       ev.data.cal.data('colorpicker')
+                                               .fields
+                                               .eq(4)
+                                               .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
+                                               .get(0),
+                                       [ev.data.preview]
+                               );
+                               return false;
+                       },
+                       upHue = function (ev) {
+                               fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               $(document).unbind('mouseup', upHue);
+                               $(document).unbind('mousemove', moveHue);
+                               return false;
+                       },
+                       downSelector = function (ev) {
+                               var current = {
+                                       cal: $(this).parent(),
+                                       pos: $(this).offset()
+                               };
+                               current.preview = current.cal.data('colorpicker').livePreview;
+                               $(document).bind('mouseup', current, upSelector);
+                               $(document).bind('mousemove', current, moveSelector);
+                       },
+                       moveSelector = function (ev) {
+                               change.apply(
+                                       ev.data.cal.data('colorpicker')
+                                               .fields
+                                               .eq(6)
+                                               .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
+                                               .end()
+                                               .eq(5)
+                                               .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
+                                               .get(0),
+                                       [ev.data.preview]
+                               );
+                               return false;
+                       },
+                       upSelector = function (ev) {
+                               fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+                               $(document).unbind('mouseup', upSelector);
+                               $(document).unbind('mousemove', moveSelector);
+                               return false;
+                       },
+                       enterSubmit = function (ev) {
+                               $(this).addClass('colorpicker_focus');
+                       },
+                       leaveSubmit = function (ev) {
+                               $(this).removeClass('colorpicker_focus');
+                       },
+                       clickSubmit = function (ev) {
+                               var cal = $(this).parent();
+                               var col = cal.data('colorpicker').color;
+                               cal.data('colorpicker').origColor = col;
+                               setCurrentColor(col, cal.get(0));
+                               cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col));
+                       },
+                       show = function (ev) {
+                               var cal = $('#' + $(this).data('colorpickerId'));
+                               cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
+                               var pos = $(this).offset();
+                               var viewPort = getViewport();
+                               var top = pos.top + this.offsetHeight;
+                               var left = pos.left;
+                               if (top + 176 > viewPort.t + viewPort.h) {
+                                       top -= this.offsetHeight + 176;
+                               }
+                               if (left + 356 > viewPort.l + viewPort.w) {
+                                       left -= 356;
+                               }
+                               cal.css({left: left + 'px', top: top + 'px'});
+                               if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
+                                       cal.show();
+                               }
+                               $(document).bind('mousedown', {cal: cal}, hide);
+                               return false;
+                       },
+                       hide = function (ev) {
+                               if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
+                                       if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
+                                               ev.data.cal.hide();
+                                       }
+                                       $(document).unbind('mousedown', hide);
+                               }
+                       },
+                       isChildOf = function(parentEl, el, container) {
+                               if (parentEl == el) {
+                                       return true;
+                               }
+                               if (parentEl.contains) {
+                                       return parentEl.contains(el);
+                               }
+                               if ( parentEl.compareDocumentPosition ) {
+                                       return !!(parentEl.compareDocumentPosition(el) & 16);
+                               }
+                               var prEl = el.parentNode;
+                               while(prEl && prEl != container) {
+                                       if (prEl == parentEl)
+                                               return true;
+                                       prEl = prEl.parentNode;
+                               }
+                               return false;
+                       },
+                       getViewport = function () {
+                               var m = document.compatMode == 'CSS1Compat';
+                               return {
+                                       l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
+                                       t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
+                                       w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
+                                       h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
+                               };
+                       },
+                       fixHSB = function (hsb) {
+                               return {
+                                       h: Math.min(360, Math.max(0, hsb.h)),
+                                       s: Math.min(100, Math.max(0, hsb.s)),
+                                       b: Math.min(100, Math.max(0, hsb.b))
+                               };
+                       }, 
+                       fixRGB = function (rgb) {
+                               return {
+                                       r: Math.min(255, Math.max(0, rgb.r)),
+                                       g: Math.min(255, Math.max(0, rgb.g)),
+                                       b: Math.min(255, Math.max(0, rgb.b))
+                               };
+                       },
+                       fixHex = function (hex) {
+                               var len = 6 - hex.length;
+                               if (len > 0) {
+                                       var o = [];
+                                       for (var i=0; i<len; i++) {
+                                               o.push('0');
+                                       }
+                                       o.push(hex);
+                                       hex = o.join('');
+                               }
+                               return hex;
+                       }, 
+                       HexToRGB = function (hex) {
+                               var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
+                               return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
+                       },
+                       HexToHSB = function (hex) {
+                               return RGBToHSB(HexToRGB(hex));
+                       },
+                       RGBToHSB = function (rgb) {
+                               var hsb = {};
+                               hsb.b = Math.max(Math.max(rgb.r,rgb.g),rgb.b);
+                               hsb.s = (hsb.b <= 0) ? 0 : Math.round(100*(hsb.b - Math.min(Math.min(rgb.r,rgb.g),rgb.b))/hsb.b);
+                               hsb.b = Math.round((hsb.b /255)*100);
+                               if((rgb.r==rgb.g) && (rgb.g==rgb.b)) hsb.h = 0;
+                               else if(rgb.r>=rgb.g && rgb.g>=rgb.b) hsb.h = 60*(rgb.g-rgb.b)/(rgb.r-rgb.b);
+                               else if(rgb.g>=rgb.r && rgb.r>=rgb.b) hsb.h = 60  + 60*(rgb.g-rgb.r)/(rgb.g-rgb.b);
+                               else if(rgb.g>=rgb.b && rgb.b>=rgb.r) hsb.h = 120 + 60*(rgb.b-rgb.r)/(rgb.g-rgb.r);
+                               else if(rgb.b>=rgb.g && rgb.g>=rgb.r) hsb.h = 180 + 60*(rgb.b-rgb.g)/(rgb.b-rgb.r);
+                               else if(rgb.b>=rgb.r && rgb.r>=rgb.g) hsb.h = 240 + 60*(rgb.r-rgb.g)/(rgb.b-rgb.g);
+                               else if(rgb.r>=rgb.b && rgb.b>=rgb.g) hsb.h = 300 + 60*(rgb.r-rgb.b)/(rgb.r-rgb.g);
+                               else hsb.h = 0;
+                               hsb.h = Math.round(hsb.h);
+                               return hsb;
+                       },
+                       HSBToRGB = function (hsb) {
+                               var rgb = {};
+                               var h = Math.round(hsb.h);
+                               var s = Math.round(hsb.s*255/100);
+                               var v = Math.round(hsb.b*255/100);
+                               if(s == 0) {
+                                       rgb.r = rgb.g = rgb.b = v;
+                               } else {
+                                       var t1 = v;
+                                       var t2 = (255-s)*v/255;
+                                       var t3 = (t1-t2)*(h%60)/60;
+                                       if(h==360) h = 0;
+                                       if(h<60) {rgb.r=t1;     rgb.b=t2; rgb.g=t2+t3}
+                                       else if(h<120) {rgb.g=t1; rgb.b=t2;     rgb.r=t1-t3}
+                                       else if(h<180) {rgb.g=t1; rgb.r=t2;     rgb.b=t2+t3}
+                                       else if(h<240) {rgb.b=t1; rgb.r=t2;     rgb.g=t1-t3}
+                                       else if(h<300) {rgb.b=t1; rgb.g=t2;     rgb.r=t2+t3}
+                                       else if(h<360) {rgb.r=t1; rgb.g=t2;     rgb.b=t1-t3}
+                                       else {rgb.r=0; rgb.g=0; rgb.b=0}
+                               }
+                               return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
+                       },
+                       RGBToHex = function (rgb) {
+                               var hex = [
+                                       rgb.r.toString(16),
+                                       rgb.g.toString(16),
+                                       rgb.b.toString(16)
+                               ];
+                               $.each(hex, function (nr, val) {
+                                       if (val.length == 1) {
+                                               hex[nr] = '0' + val;
+                                       }
+                               });
+                               return hex.join('');
+                       },
+                       HSBToHex = function (hsb) {
+                               return RGBToHex(HSBToRGB(hsb));
+                       };
+               return {
+                       init: function (options) {
+                               options = $.extend({}, defaults, options||{});
+                               if (typeof options.color == 'string') {
+                                       options.color = HexToHSB(options.color);
+                               } else if (options.color.r != undefined && options.color.g != undefined && options.color.b != undefined) {
+                                       options.color = RGBToHSB(options.color);
+                               } else if (options.color.h != undefined && options.color.s != undefined && options.color.b != undefined) {
+                                       options.color = fixHSB(options.color);
+                               } else {
+                                       return this;
+                               }
+                               options.origColor = options.color;
+                               return this.each(function () {
+                                       if (!$(this).data('colorpickerId')) {
+                                               var id = 'collorpicker_' + parseInt(Math.random() * 1000);
+                                               $(this).data('colorpickerId', id);
+                                               var cal = $(tpl).attr('id', id);
+                                               if (options.flat) {
+                                                       cal.appendTo(this).show();
+                                               } else {
+                                                       cal.appendTo(document.body);
+                                               }
+                                               options.fields = cal
+                                                                                       .find('input')
+                                                                                               .bind('keydown', keyDown)
+                                                                                               .bind('change', change)
+                                                                                               .bind('blur', blur)
+                                                                                               .bind('focus', focus);
+                                               cal.find('span').bind('mousedown', downIncrement);
+                                               options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
+                                               options.selectorIndic = options.selector.find('div div');
+                                               options.hue = cal.find('div.colorpicker_hue div');
+                                               cal.find('div.colorpicker_hue').bind('mousedown', downHue);
+                                               options.newColor = cal.find('div.colorpicker_new_color');
+                                               options.currentColor = cal.find('div.colorpicker_current_color');
+                                               cal.data('colorpicker', options);
+                                               cal.find('div.colorpicker_submit')
+                                                       .bind('mouseenter', enterSubmit)
+                                                       .bind('mouseleave', leaveSubmit)
+                                                       .bind('click', clickSubmit);
+                                               fillRGBFields(options.color, cal.get(0));
+                                               fillHSBFields(options.color, cal.get(0));
+                                               fillHexFields(options.color, cal.get(0));
+                                               setHue(options.color, cal.get(0));
+                                               setSelector(options.color, cal.get(0));
+                                               setCurrentColor(options.color, cal.get(0));
+                                               setNewColor(options.color, cal.get(0));
+                                               if (options.flat) {
+                                                       cal.css({
+                                                               position: 'relative',
+                                                               display: 'block'
+                                                       });
+                                               } else {
+                                                       $(this).bind(options.eventName, show);
+                                               }
+                                       }
+                               });
+                       },
+                       showPicker: function() {
+                               return this.each( function () {
+                                       if ($(this).data('colorpickerId')) {
+                                               show.apply(this);
+                                       }
+                               });
+                       },
+                       hidePicker: function() {
+                               return this.each( function () {
+                                       if ($(this).data('colorpickerId')) {
+                                               $('#' + $(this).data('colorpickerId')).hide();
+                                       }
+                               });
+                       },
+                       setColor: function(col) {
+                               if (typeof col == 'string') {
+                                       col = HexToHSB(col);
+                               } else if (col.r != undefined && col.g != undefined && col.b != undefined) {
+                                       col = RGBToHSB(col);
+                               } else if (col.h != undefined && col.s != undefined && col.b != undefined) {
+                                       col = fixHSB(col);
+                               } else {
+                                       return this;
+                               }
+                               return this.each(function(){
+                                       if ($(this).data('colorpickerId')) {
+                                               var cal = $('#' + $(this).data('colorpickerId'));
+                                               cal.data('colorpicker').color = col;
+                                               cal.data('colorpicker').origColor = col;
+                                               fillRGBFields(col, cal.get(0));
+                                               fillHSBFields(col, cal.get(0));
+                                               fillHexFields(col, cal.get(0));
+                                               setHue(col, cal.get(0));
+                                               setSelector(col, cal.get(0));
+                                               setCurrentColor(col, cal.get(0));
+                                               setNewColor(col, cal.get(0));
+                                       }
+                               });
+                       }
+               };
+       }();
+       $.fn.extend({
+               ColorPicker: ColorPicker.init,
+               ColorPickerHide: ColorPicker.hide,
+               ColorPickerShow: ColorPicker.show,
+               ColorPickerSetColor: ColorPicker.setColor
+       });
+})(jQuery)
+
+// hex to decimal code found here and used with minor modification: http://www.telerik.com/community/forums/aspnet-ajax/colorpicker/calculate-color-contrast-in-javascript.aspx
+function getDec(hexChar) {
+       if (typeof hexChar == 'undefined') {
+               return 0;
+       }
+       switch(hexChar.toUpperCase()) {
+               case '0': return 0;
+               case '1': return 1;
+               case '2': return 2;
+               case '3': return 3;
+               case '4': return 4;
+               case '5': return 5;
+               case '6': return 6;
+               case '7': return 7;
+               case '8': return 8;
+               case '9': return 9;
+               case 'A': return 10;
+               case 'B': return 11;
+               case 'C': return 12;
+               case 'D': return 13;
+               case 'E': return 14;
+               case 'F': return 15;
+       };
+}
+function hexToDec(hex) {
+       var colorChars = hex.split('');
+       var dec = (getDec(colorChars[0]) * 16) + getDec(colorChars[1]);
+       return dec;
+}
+function getRGB(color) {
+       // remove the '#'
+       if (color.indexOf('#') != -1) {
+               color = color.substring(color.indexOf('#') + 1);
+       }
+       var r = hexToDec(color.substr(0, 2));
+       var g = hexToDec(color.substr(2, 2));
+       var b = hexToDec(color.substr(4, 2));
+       return { r: r, g: g, b: b};
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..9c78404
--- /dev/null
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 45
+/svn/!svn/ver/502/framework/tags/3.0/lightbox
+END
+LICENSE.txt
+K 25
+svn:wc:ra_dav:version-url
+V 57
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/LICENSE.txt
+END
+thickbox.js
+K 25
+svn:wc:ra_dav:version-url
+V 57
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/thickbox.js
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/entries b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/entries
new file mode 100644 (file)
index 0000000..be9fd4f
--- /dev/null
@@ -0,0 +1,102 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/lightbox
+http://carrington.googlecode.com/svn
+
+
+
+2009-06-29T22:33:58.876485Z
+396
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+LICENSE.txt
+file
+
+
+
+
+2010-08-02T15:33:18.267717Z
+d8a95e1630f5df805247342084051968
+2009-01-19T05:22:29.622691Z
+74
+alexkingorg
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1569
+\f
+thickbox.js
+file
+
+
+
+
+2010-08-02T15:33:18.267717Z
+a0688685fe1b9eb51abde68bd2623b10
+2009-06-29T22:33:58.876485Z
+396
+alexkingorg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+12484
+\f
+css
+dir
+\f
+img
+dir
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/prop-base/LICENSE.txt.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/prop-base/LICENSE.txt.svn-base
new file mode 100644 (file)
index 0000000..869ac71
--- /dev/null
@@ -0,0 +1,5 @@
+K 14
+svn:executable
+V 1
+*
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/text-base/LICENSE.txt.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/text-base/LICENSE.txt.svn-base
new file mode 100644 (file)
index 0000000..55a9d86
--- /dev/null
@@ -0,0 +1,30 @@
+Software License Agreement (BSD License)
+
+Copyright (c) 2008 Warren Krewenki
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, with or without modification, are
+permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of jQuery Lightbox nor the names of its
+  contributors may be used to endorse or promote products
+  derived from this software without specific prior
+  written permission of jQuery Lightbox.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/text-base/thickbox.js.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/.svn/text-base/thickbox.js.svn-base
new file mode 100644 (file)
index 0000000..cfd23b4
--- /dev/null
@@ -0,0 +1,332 @@
+/*
+ * Thickbox 3.1 - One Box To Rule Them All.
+ * By Cody Lindley (http://www.codylindley.com)
+ * Copyright (c) 2007 cody lindley
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
+*/
+                 
+var tb_pathToImage = "images/loadingAnimation.gif";
+
+/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
+
+//on page load call tb_init
+jQuery(document).ready(function(){   
+       tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
+       imgLoader = new Image();// preload image
+       imgLoader.src = tb_pathToImage;
+});
+
+//add thickbox to href & area elements that have a class of .thickbox
+function tb_init(domChunk){
+       jQuery(domChunk).click(function(){
+       var t = this.title || this.name || null;
+       var a = this.href || this.alt;
+       var g = this.rel || false;
+       tb_show(t,a,g);
+       this.blur();
+       return false;
+       });
+}
+
+function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link
+
+       try {
+               if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
+                       jQuery("body","html").css({height: "100%", width: "100%"});
+                       jQuery("html").css("overflow","hidden");
+                       if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
+                               jQuery("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
+                               jQuery("#TB_overlay").click(tb_remove);
+                       }
+               }else{//all others
+                       if(document.getElementById("TB_overlay") === null){
+                               jQuery("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
+                               jQuery("#TB_overlay").click(tb_remove);
+                       }
+               }
+               
+               if(tb_detectMacXFF()){
+                       jQuery("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
+               }else{
+                       jQuery("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
+               }
+               
+               if(caption===null){caption="";}
+               jQuery("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
+               jQuery('#TB_load').show();//show loader
+               
+               var baseURL;
+          if(url.indexOf("?")!==-1){ //ff there is a query string involved
+                       baseURL = url.substr(0, url.indexOf("?"));
+          }else{ 
+                       baseURL = url;
+          }
+          
+          var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
+          var urlType = baseURL.toLowerCase().match(urlString);
+
+               if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
+                               
+                       TB_PrevCaption = "";
+                       TB_PrevURL = "";
+                       TB_PrevHTML = "";
+                       TB_NextCaption = "";
+                       TB_NextURL = "";
+                       TB_NextHTML = "";
+                       TB_imageCount = "";
+                       TB_FoundURL = false;
+                       if(imageGroup){
+                               TB_TempArray = jQuery("a[rel="+imageGroup+"]").get();
+                               for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
+                                       var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
+                                               if (!(TB_TempArray[TB_Counter].href == url)) {                                          
+                                                       if (TB_FoundURL) {
+                                                               TB_NextCaption = TB_TempArray[TB_Counter].title;
+                                                               TB_NextURL = TB_TempArray[TB_Counter].href;
+                                                               TB_NextHTML = "<a id='TB_next' href='#'>Next &gt;</a>";
+                                                       } else {
+                                                               TB_PrevCaption = TB_TempArray[TB_Counter].title;
+                                                               TB_PrevURL = TB_TempArray[TB_Counter].href;
+                                                               TB_PrevHTML = "<a id='TB_prev' href='#'>&lt; Prev</a>";
+                                                       }
+                                               } else {
+                                                       TB_FoundURL = true;
+                                                       TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);                                                                                     
+                                               }
+                               }
+                       }
+
+                       imgPreloader = new Image();
+                       imgPreloader.onload = function(){               
+                       imgPreloader.onload = null;
+
+// preload patch from: http://drupal.org/files/issues/thickbox_preloadimage.patch
+prevImg = new Image();
+nextImg = new Image();
+var tb_links = jQuery('a[class="thickbox"]');
+var i = -1;
+tb_links.each(function(n) { if (this.href == imgPreloader.src) { i = n; } });
+if (i != -1) {
+       if (i > 0) { prevImg.src = tb_links[i-1].href; }
+       if (i+1 < tb_links.length) { nextImg.src = tb_links[i+1].href; }
+}
+
+
+                       // Resizing large images - orginal by Christian Montoya edited by me.
+                       var pagesize = tb_getPageSize();
+                       var x = pagesize[0] - 150;
+                       var y = pagesize[1] - 170;
+                       var imageWidth = imgPreloader.width;
+                       var imageHeight = imgPreloader.height;
+                       if (imageWidth > x) {
+                               imageHeight = imageHeight * (x / imageWidth); 
+                               imageWidth = x; 
+                               if (imageHeight > y) { 
+                                       imageWidth = imageWidth * (y / imageHeight); 
+                                       imageHeight = y; 
+                               }
+                       } else if (imageHeight > y) { 
+                               imageWidth = imageWidth * (y / imageHeight); 
+                               imageHeight = y; 
+                               if (imageWidth > x) { 
+                                       imageHeight = imageHeight * (x / imageWidth); 
+                                       imageWidth = x;
+                               }
+                       }
+                       // End Resizing
+                       
+                       
+                       /* TODO: auto-calculate heights based on jQuery.height() of elements */
+                       TB_WIDTH = imageWidth + 30;
+                       TB_HEIGHT = imageHeight + 130;
+                       jQuery("#TB_window").append("<div id='TB_title'><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><div id='TB_ImageWrapper' style='height:"+imageHeight+"px;width:"+imageWidth+"px;'><div id='TB_ImageHoverNav'>"+TB_PrevHTML+TB_NextHTML+"</div><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></div><div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + "</div></div>");
+                       jQuery("#TB_closeWindowButton").click(tb_remove);
+                       
+                       if (!(TB_PrevHTML === "")) {
+                               function goPrev(){
+                                       if(jQuery(document).unbind("click",goPrev)){jQuery(document).unbind("click",goPrev);}
+                                       jQuery("#TB_window").remove();
+                                       jQuery("body").append("<div id='TB_window'></div>");
+                                       tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
+                                       return false;   
+                               }
+                               jQuery("#TB_prev").click(goPrev);
+                       }
+                       
+                       if (!(TB_NextHTML === "")) {            
+                               function goNext(){
+                                       jQuery("#TB_window").remove();
+                                       jQuery("body").append("<div id='TB_window'></div>");
+                                       tb_show(TB_NextCaption, TB_NextURL, imageGroup);
+                                       return false;
+                               }
+                               jQuery("#TB_next").click(goNext);
+                               
+                       }
+
+                       document.onkeydown = function(e){       
+                               if (e == null) { // ie
+                                       keycode = event.keyCode;
+                               } else { // mozilla
+                                       keycode = e.which;
+                               }
+                               if(keycode == 27){ // close
+                                       tb_remove();
+                               } else if(keycode == 190 || keycode == 39){ // display next image
+                                       if(!(TB_NextHTML == "")){
+                                               document.onkeydown = "";
+                                               goNext();
+                                       }
+                               } else if(keycode == 188 || keycode == 37){ // display previous image
+                                       if(!(TB_PrevHTML == "")){
+                                               document.onkeydown = "";
+                                               goPrev();
+                                       }
+                               }       
+                       };
+                       
+                       tb_position();
+                       jQuery("#TB_load").remove();
+                       jQuery("#TB_ImageOff").click(tb_remove);
+                       jQuery("#TB_window").css({display:"block"}); //for safari using css instead of show
+                       };
+                       
+                       imgPreloader.src = url;
+               }else{//code to show html
+                       
+                       var queryString = url.replace(/^[^\?]+\??/,'');
+                       var params = tb_parseQuery( queryString );
+
+                       TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
+                       TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
+                       ajaxContentW = TB_WIDTH - 30;
+                       ajaxContentH = TB_HEIGHT - 45;
+                       
+                       if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window              
+                                       urlNoQuery = url.split('TB_');
+                                       jQuery("#TB_iframeContent").remove();
+                                       if(params['modal'] != "true"){//iframe no modal
+                                               jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
+                                       }else{//iframe modal
+                                       jQuery("#TB_overlay").unbind();
+                                               jQuery("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
+                                       }
+                       }else{// not an iframe, ajax
+                                       if(jQuery("#TB_window").css("display") != "block"){
+                                               if(params['modal'] != "true"){//ajax no modal
+                                               jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
+                                               }else{//ajax modal
+                                               jQuery("#TB_overlay").unbind();
+                                               jQuery("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");    
+                                               }
+                                       }else{//this means the window is already up, we are just loading new content via ajax
+                                               jQuery("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
+                                               jQuery("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
+                                               jQuery("#TB_ajaxContent")[0].scrollTop = 0;
+                                               jQuery("#TB_ajaxWindowTitle").html(caption);
+                                       }
+                       }
+                                       
+                       jQuery("#TB_closeWindowButton").click(tb_remove);
+                       
+                               if(url.indexOf('TB_inline') != -1){     
+                                       jQuery("#TB_ajaxContent").append(jQuery('#' + params['inlineId']).children());
+                                       jQuery("#TB_window").unload(function () {
+                                               jQuery('#' + params['inlineId']).append( jQuery("#TB_ajaxContent").children() ); // move elements back when you're finished
+                                       });
+                                       tb_position();
+                                       jQuery("#TB_load").remove();
+                                       jQuery("#TB_window").css({display:"block"}); 
+                               }else if(url.indexOf('TB_iframe') != -1){
+                                       tb_position();
+                                       if($.browser.safari){//safari needs help because it will not fire iframe onload
+                                               jQuery("#TB_load").remove();
+                                               jQuery("#TB_window").css({display:"block"});
+                                       }
+                               }else{
+                                       jQuery("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
+                                               tb_position();
+                                               jQuery("#TB_load").remove();
+                                               tb_init("#TB_ajaxContent a.thickbox");
+                                               jQuery("#TB_window").css({display:"block"});
+                                       });
+                               }
+                       
+               }
+
+               if(!params['modal']){
+                       document.onkeyup = function(e){         
+                               if (e == null) { // ie
+                                       keycode = event.keyCode;
+                               } else { // mozilla
+                                       keycode = e.which;
+                               }
+                               if(keycode == 27){ // close
+                                       tb_remove();
+                               }       
+                       };
+               }
+               
+       } catch(e) {
+               //nothing here
+       }
+}
+
+//helper functions below
+function tb_showIframe(){
+       jQuery("#TB_load").remove();
+       jQuery("#TB_window").css({display:"block"});
+}
+
+function tb_remove() {
+       jQuery("#TB_imageOff").unbind("click");
+       jQuery("#TB_closeWindowButton").unbind("click");
+       jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
+       jQuery("#TB_load").remove();
+       if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
+               jQuery("body","html").css({height: "auto", width: "auto"});
+               jQuery("html").css("overflow","");
+       }
+       document.onkeydown = "";
+       document.onkeyup = "";
+       return false;
+}
+
+function tb_position() {
+jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
+       if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
+               jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
+       }
+}
+
+function tb_parseQuery ( query ) {
+   var Params = {};
+   if ( ! query ) {return Params;}// return empty object
+   var Pairs = query.split(/[;&]/);
+   for ( var i = 0; i < Pairs.length; i++ ) {
+      var KeyVal = Pairs[i].split('=');
+      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
+      var key = unescape( KeyVal[0] );
+      var val = unescape( KeyVal[1] );
+      val = val.replace(/\+/g, ' ');
+      Params[key] = val;
+   }
+   return Params;
+}
+
+function tb_getPageSize(){
+       var de = document.documentElement;
+       var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
+       var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
+       arrayPageSize = [w,h];
+       return arrayPageSize;
+}
+
+function tb_detectMacXFF() {
+  var userAgent = navigator.userAgent.toLowerCase();
+  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
+    return true;
+  }
+}
+
+
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/LICENSE.txt b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/LICENSE.txt
new file mode 100644 (file)
index 0000000..55a9d86
--- /dev/null
@@ -0,0 +1,30 @@
+Software License Agreement (BSD License)
+
+Copyright (c) 2008 Warren Krewenki
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, with or without modification, are
+permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of jQuery Lightbox nor the names of its
+  contributors may be used to endorse or promote products
+  derived from this software without specific prior
+  written permission of jQuery Lightbox.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..d65b67e
--- /dev/null
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/css
+END
+thickbox.css
+K 25
+svn:wc:ra_dav:version-url
+V 62
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/css/thickbox.css
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/.svn/entries b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/.svn/entries
new file mode 100644 (file)
index 0000000..025d521
--- /dev/null
@@ -0,0 +1,62 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/lightbox/css
+http://carrington.googlecode.com/svn
+
+
+
+2009-02-23T22:20:48.406291Z
+205
+marlfoskr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+thickbox.css
+file
+
+
+
+
+2010-08-02T15:33:18.247714Z
+f629a77803bb1860d2b8351e95089db7
+2009-02-23T22:20:48.406291Z
+205
+marlfoskr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3115
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/.svn/text-base/thickbox.css.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/.svn/text-base/thickbox.css.svn-base
new file mode 100644 (file)
index 0000000..2586a5c
--- /dev/null
@@ -0,0 +1,157 @@
+/* ----------------------------------------------------------------------------------------------------------------*/
+/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
+/* ----------------------------------------------------------------------------------------------------------------*/
+#TB_overlay {
+       position: fixed;
+       z-index:100;
+       top: 0px;
+       left: 0px;
+       height:100%;
+       width:100%;
+}
+
+.TB_overlayMacFFBGHack {background: url(../img/macFFBgHack.png) repeat;}
+.TB_overlayBG {
+       background-color:#000;
+       filter:alpha(opacity=75);
+       -moz-opacity: 0.75;
+       opacity: 0.75;
+}
+
+* html #TB_overlay { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_window {
+       position: fixed;
+       background: #ffffff;
+       z-index: 102;
+       display:none;
+       border: 2px solid #ccc;
+       text-align:left;
+       top:50%;
+       left:50%;
+}
+
+* html #TB_window { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_window img#TB_Image {
+       display:block;
+}
+
+#TB_caption{
+       padding:7px 30px 10px 25px;
+       float:left;
+       overflow:hidden;
+       word-wrap: break-word;
+}
+
+#TB_closeWindow{
+       height:25px;
+       padding:11px 25px 10px 0;
+       float:right;
+}
+
+#TB_closeAjaxWindow{
+       float:right;
+       padding:5px 15px 5px 0;
+       margin-bottom:1px;
+       text-align:right;
+}
+
+#TB_ajaxWindowTitle{
+       float:left;
+       padding:5px 0 5px 15px;
+}
+
+#TB_title{
+       height:27px;
+}
+
+#TB_ImageWrapper {
+       margin:15px 15px 0;
+       position:relative;
+}
+#TB_ImageHoverNav {
+       height:100%;
+       top:0;
+       width: 100%;
+       position:absolute;
+       zoom:1;
+}
+a#TB_prev,
+a#TB_next {
+       background:transparent url(../img/blank.gif); /* IE6 hover area hack */
+       height:100%;
+       width: 49%;
+       text-indent:-32000px;
+}
+a#TB_prev {
+       float:left;
+}
+a#TB_next {
+       float:right;
+}
+
+#TB_ajaxContent{
+       clear:both;
+       padding:2px 15px 15px 15px;
+       overflow:auto;
+       text-align:left;
+       line-height:1.4em;
+}
+
+#TB_ajaxContent.TB_modal{
+       padding:15px;
+}
+
+#TB_ajaxContent p{
+       padding:5px 0px 5px 0px;
+}
+
+#TB_load{
+       position: fixed;
+       display:none;
+       height:13px;
+       width:208px;
+       z-index:103;
+       top: 50%;
+       left: 50%;
+       margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
+}
+
+* html #TB_load { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_HideSelect{
+       z-index:99;
+       position:fixed;
+       top: 0;
+       left: 0;
+       background-color:#fff;
+       border:none;
+       filter:alpha(opacity=0);
+       -moz-opacity: 0;
+       opacity: 0;
+       height:100%;
+       width:100%;
+}
+
+* html #TB_HideSelect { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_iframeContent{
+       clear:both;
+       border:none;
+       margin-bottom:-1px;
+       margin-top:1px;
+       _margin-bottom:1px;
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/thickbox.css b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/css/thickbox.css
new file mode 100644 (file)
index 0000000..2586a5c
--- /dev/null
@@ -0,0 +1,157 @@
+/* ----------------------------------------------------------------------------------------------------------------*/
+/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
+/* ----------------------------------------------------------------------------------------------------------------*/
+#TB_overlay {
+       position: fixed;
+       z-index:100;
+       top: 0px;
+       left: 0px;
+       height:100%;
+       width:100%;
+}
+
+.TB_overlayMacFFBGHack {background: url(../img/macFFBgHack.png) repeat;}
+.TB_overlayBG {
+       background-color:#000;
+       filter:alpha(opacity=75);
+       -moz-opacity: 0.75;
+       opacity: 0.75;
+}
+
+* html #TB_overlay { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_window {
+       position: fixed;
+       background: #ffffff;
+       z-index: 102;
+       display:none;
+       border: 2px solid #ccc;
+       text-align:left;
+       top:50%;
+       left:50%;
+}
+
+* html #TB_window { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_window img#TB_Image {
+       display:block;
+}
+
+#TB_caption{
+       padding:7px 30px 10px 25px;
+       float:left;
+       overflow:hidden;
+       word-wrap: break-word;
+}
+
+#TB_closeWindow{
+       height:25px;
+       padding:11px 25px 10px 0;
+       float:right;
+}
+
+#TB_closeAjaxWindow{
+       float:right;
+       padding:5px 15px 5px 0;
+       margin-bottom:1px;
+       text-align:right;
+}
+
+#TB_ajaxWindowTitle{
+       float:left;
+       padding:5px 0 5px 15px;
+}
+
+#TB_title{
+       height:27px;
+}
+
+#TB_ImageWrapper {
+       margin:15px 15px 0;
+       position:relative;
+}
+#TB_ImageHoverNav {
+       height:100%;
+       top:0;
+       width: 100%;
+       position:absolute;
+       zoom:1;
+}
+a#TB_prev,
+a#TB_next {
+       background:transparent url(../img/blank.gif); /* IE6 hover area hack */
+       height:100%;
+       width: 49%;
+       text-indent:-32000px;
+}
+a#TB_prev {
+       float:left;
+}
+a#TB_next {
+       float:right;
+}
+
+#TB_ajaxContent{
+       clear:both;
+       padding:2px 15px 15px 15px;
+       overflow:auto;
+       text-align:left;
+       line-height:1.4em;
+}
+
+#TB_ajaxContent.TB_modal{
+       padding:15px;
+}
+
+#TB_ajaxContent p{
+       padding:5px 0px 5px 0px;
+}
+
+#TB_load{
+       position: fixed;
+       display:none;
+       height:13px;
+       width:208px;
+       z-index:103;
+       top: 50%;
+       left: 50%;
+       margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
+}
+
+* html #TB_load { /* ie6 hack */
+position: absolute;
+margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
+}
+
+#TB_HideSelect{
+       z-index:99;
+       position:fixed;
+       top: 0;
+       left: 0;
+       background-color:#fff;
+       border:none;
+       filter:alpha(opacity=0);
+       -moz-opacity: 0;
+       opacity: 0;
+       height:100%;
+       width:100%;
+}
+
+* html #TB_HideSelect { /* ie6 hack */
+     position: absolute;
+     height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+#TB_iframeContent{
+       clear:both;
+       border:none;
+       margin-bottom:-1px;
+       margin-top:1px;
+       _margin-bottom:1px;
+}
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/all-wcprops b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/all-wcprops
new file mode 100644 (file)
index 0000000..3b3ce1f
--- /dev/null
@@ -0,0 +1,23 @@
+K 25
+svn:wc:ra_dav:version-url
+V 49
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/img
+END
+macFFBgHack.png
+K 25
+svn:wc:ra_dav:version-url
+V 65
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/img/macFFBgHack.png
+END
+loadingAnimation.gif
+K 25
+svn:wc:ra_dav:version-url
+V 70
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/img/loadingAnimation.gif
+END
+blank.gif
+K 25
+svn:wc:ra_dav:version-url
+V 59
+/svn/!svn/ver/502/framework/tags/3.0/lightbox/img/blank.gif
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/entries b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/entries
new file mode 100644 (file)
index 0000000..7b7a3a4
--- /dev/null
@@ -0,0 +1,130 @@
+10
+
+dir
+511
+http://carrington.googlecode.com/svn/framework/tags/3.0/lightbox/img
+http://carrington.googlecode.com/svn
+
+
+
+2009-02-23T22:08:47.808014Z
+203
+marlfoskr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+e2bd1680-98a1-11dd-bd51-a78b85c98fae
+\f
+macFFBgHack.png
+file
+
+
+
+
+2010-08-02T15:33:18.263717Z
+6e63d8058c61e28953cc285de8d5c37d
+2009-02-23T22:08:47.808014Z
+203
+marlfoskr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+207
+\f
+loadingAnimation.gif
+file
+
+
+
+
+2010-08-02T15:33:18.263717Z
+c33734a1bf58bec328ffa27872e96ae1
+2009-02-23T22:08:47.808014Z
+203
+marlfoskr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5886
+\f
+blank.gif
+file
+
+
+
+
+2010-08-02T15:33:18.267717Z
+fc94fb0c3ed8a8f909dbc7630a0987ff
+2009-02-23T22:08:47.808014Z
+203
+marlfoskr
+has-props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+43
+\f
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/prop-base/blank.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/prop-base/blank.gif.svn-base
new file mode 100644 (file)
index 0000000..dbc918b
--- /dev/null
@@ -0,0 +1,9 @@
+K 14
+svn:executable
+V 1
+*
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/prop-base/loadingAnimation.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/prop-base/loadingAnimation.gif.svn-base
new file mode 100644 (file)
index 0000000..5e9587e
--- /dev/null
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/prop-base/macFFBgHack.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/prop-base/macFFBgHack.png.svn-base
new file mode 100644 (file)
index 0000000..5e9587e
--- /dev/null
@@ -0,0 +1,5 @@
+K 13
+svn:mime-type
+V 24
+application/octet-stream
+END
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/blank.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/blank.gif.svn-base
new file mode 100644 (file)
index 0000000..1d11fa9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/blank.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/loadingAnimation.gif.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/loadingAnimation.gif.svn-base
new file mode 100644 (file)
index 0000000..82290f4
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/loadingAnimation.gif.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/macFFBgHack.png.svn-base b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/macFFBgHack.png.svn-base
new file mode 100644 (file)
index 0000000..c6473b3
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/.svn/text-base/macFFBgHack.png.svn-base differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/blank.gif b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/blank.gif
new file mode 100644 (file)
index 0000000..1d11fa9
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/blank.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/loadingAnimation.gif b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/loadingAnimation.gif
new file mode 100644 (file)
index 0000000..82290f4
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/loadingAnimation.gif differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/macFFBgHack.png b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/macFFBgHack.png
new file mode 100644 (file)
index 0000000..c6473b3
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/img/macFFBgHack.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/lightbox/thickbox.js b/theme-blog.xenproject.org/carrington-blog/loop/lightbox/thickbox.js
new file mode 100644 (file)
index 0000000..cfd23b4
--- /dev/null
@@ -0,0 +1,332 @@
+/*
+ * Thickbox 3.1 - One Box To Rule Them All.
+ * By Cody Lindley (http://www.codylindley.com)
+ * Copyright (c) 2007 cody lindley
+ * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
+*/
+                 
+var tb_pathToImage = "images/loadingAnimation.gif";
+
+/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
+
+//on page load call tb_init
+jQuery(document).ready(function(){   
+       tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
+       imgLoader = new Image();// preload image
+       imgLoader.src = tb_pathToImage;
+});
+
+//add thickbox to href & area elements that have a class of .thickbox
+function tb_init(domChunk){
+       jQuery(domChunk).click(function(){
+       var t = this.title || this.name || null;
+       var a = this.href || this.alt;
+       var g = this.rel || false;
+       tb_show(t,a,g);
+       this.blur();
+       return false;
+       });
+}
+
+function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link
+
+       try {
+               if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
+                       jQuery("body","html").css({height: "100%", width: "100%"});
+                       jQuery("html").css("overflow","hidden");
+                       if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
+                               jQuery("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
+                               jQuery("#TB_overlay").click(tb_remove);
+                       }
+               }else{//all others
+                       if(document.getElementById("TB_overlay") === null){
+                               jQuery("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
+                               jQuery("#TB_overlay").click(tb_remove);
+                       }
+               }
+               
+               if(tb_detectMacXFF()){
+                       jQuery("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
+               }else{
+                       jQuery("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
+               }
+               
+               if(caption===null){caption="";}
+               jQuery("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
+               jQuery('#TB_load').show();//show loader
+               
+               var baseURL;
+          if(url.indexOf("?")!==-1){ //ff there is a query string involved
+                       baseURL = url.substr(0, url.indexOf("?"));
+          }else{ 
+                       baseURL = url;
+          }
+          
+          var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
+          var urlType = baseURL.toLowerCase().match(urlString);
+
+               if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
+                               
+                       TB_PrevCaption = "";
+                       TB_PrevURL = "";
+                       TB_PrevHTML = "";
+                       TB_NextCaption = "";
+                       TB_NextURL = "";
+                       TB_NextHTML = "";
+                       TB_imageCount = "";
+                       TB_FoundURL = false;
+                       if(imageGroup){
+                               TB_TempArray = jQuery("a[rel="+imageGroup+"]").get();
+                               for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
+                                       var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
+                                               if (!(TB_TempArray[TB_Counter].href == url)) {                                          
+                                                       if (TB_FoundURL) {
+                                                               TB_NextCaption = TB_TempArray[TB_Counter].title;
+                                                               TB_NextURL = TB_TempArray[TB_Counter].href;
+                                                               TB_NextHTML = "<a id='TB_next' href='#'>Next &gt;</a>";
+                                                       } else {
+                                                               TB_PrevCaption = TB_TempArray[TB_Counter].title;
+                                                               TB_PrevURL = TB_TempArray[TB_Counter].href;
+                                                               TB_PrevHTML = "<a id='TB_prev' href='#'>&lt; Prev</a>";
+                                                       }
+                                               } else {
+                                                       TB_FoundURL = true;
+                                                       TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);                                                                                     
+                                               }
+                               }
+                       }
+
+                       imgPreloader = new Image();
+                       imgPreloader.onload = function(){               
+                       imgPreloader.onload = null;
+
+// preload patch from: http://drupal.org/files/issues/thickbox_preloadimage.patch
+prevImg = new Image();
+nextImg = new Image();
+var tb_links = jQuery('a[class="thickbox"]');
+var i = -1;
+tb_links.each(function(n) { if (this.href == imgPreloader.src) { i = n; } });
+if (i != -1) {
+       if (i > 0) { prevImg.src = tb_links[i-1].href; }
+       if (i+1 < tb_links.length) { nextImg.src = tb_links[i+1].href; }
+}
+
+
+                       // Resizing large images - orginal by Christian Montoya edited by me.
+                       var pagesize = tb_getPageSize();
+                       var x = pagesize[0] - 150;
+                       var y = pagesize[1] - 170;
+                       var imageWidth = imgPreloader.width;
+                       var imageHeight = imgPreloader.height;
+                       if (imageWidth > x) {
+                               imageHeight = imageHeight * (x / imageWidth); 
+                               imageWidth = x; 
+                               if (imageHeight > y) { 
+                                       imageWidth = imageWidth * (y / imageHeight); 
+                                       imageHeight = y; 
+                               }
+                       } else if (imageHeight > y) { 
+                               imageWidth = imageWidth * (y / imageHeight); 
+                               imageHeight = y; 
+                               if (imageWidth > x) { 
+                                       imageHeight = imageHeight * (x / imageWidth); 
+                                       imageWidth = x;
+                               }
+                       }
+                       // End Resizing
+                       
+                       
+                       /* TODO: auto-calculate heights based on jQuery.height() of elements */
+                       TB_WIDTH = imageWidth + 30;
+                       TB_HEIGHT = imageHeight + 130;
+                       jQuery("#TB_window").append("<div id='TB_title'><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><div id='TB_ImageWrapper' style='height:"+imageHeight+"px;width:"+imageWidth+"px;'><div id='TB_ImageHoverNav'>"+TB_PrevHTML+TB_NextHTML+"</div><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></div><div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + "</div></div>");
+                       jQuery("#TB_closeWindowButton").click(tb_remove);
+                       
+                       if (!(TB_PrevHTML === "")) {
+                               function goPrev(){
+                                       if(jQuery(document).unbind("click",goPrev)){jQuery(document).unbind("click",goPrev);}
+                                       jQuery("#TB_window").remove();
+                                       jQuery("body").append("<div id='TB_window'></div>");
+                                       tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
+                                       return false;   
+                               }
+                               jQuery("#TB_prev").click(goPrev);
+                       }
+                       
+                       if (!(TB_NextHTML === "")) {            
+                               function goNext(){
+                                       jQuery("#TB_window").remove();
+                                       jQuery("body").append("<div id='TB_window'></div>");
+                                       tb_show(TB_NextCaption, TB_NextURL, imageGroup);
+                                       return false;
+                               }
+                               jQuery("#TB_next").click(goNext);
+                               
+                       }
+
+                       document.onkeydown = function(e){       
+                               if (e == null) { // ie
+                                       keycode = event.keyCode;
+                               } else { // mozilla
+                                       keycode = e.which;
+                               }
+                               if(keycode == 27){ // close
+                                       tb_remove();
+                               } else if(keycode == 190 || keycode == 39){ // display next image
+                                       if(!(TB_NextHTML == "")){
+                                               document.onkeydown = "";
+                                               goNext();
+                                       }
+                               } else if(keycode == 188 || keycode == 37){ // display previous image
+                                       if(!(TB_PrevHTML == "")){
+                                               document.onkeydown = "";
+                                               goPrev();
+                                       }
+                               }       
+                       };
+                       
+                       tb_position();
+                       jQuery("#TB_load").remove();
+                       jQuery("#TB_ImageOff").click(tb_remove);
+                       jQuery("#TB_window").css({display:"block"}); //for safari using css instead of show
+                       };
+                       
+                       imgPreloader.src = url;
+               }else{//code to show html
+                       
+                       var queryString = url.replace(/^[^\?]+\??/,'');
+                       var params = tb_parseQuery( queryString );
+
+                       TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
+                       TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
+                       ajaxContentW = TB_WIDTH - 30;
+                       ajaxContentH = TB_HEIGHT - 45;
+                       
+                       if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window              
+                                       urlNoQuery = url.split('TB_');
+                                       jQuery("#TB_iframeContent").remove();
+                                       if(params['modal'] != "true"){//iframe no modal
+                                               jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
+                                       }else{//iframe modal
+                                       jQuery("#TB_overlay").unbind();
+                                               jQuery("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
+                                       }
+                       }else{// not an iframe, ajax
+                                       if(jQuery("#TB_window").css("display") != "block"){
+                                               if(params['modal'] != "true"){//ajax no modal
+                                               jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
+                                               }else{//ajax modal
+                                               jQuery("#TB_overlay").unbind();
+                                               jQuery("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");    
+                                               }
+                                       }else{//this means the window is already up, we are just loading new content via ajax
+                                               jQuery("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
+                                               jQuery("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
+                                               jQuery("#TB_ajaxContent")[0].scrollTop = 0;
+                                               jQuery("#TB_ajaxWindowTitle").html(caption);
+                                       }
+                       }
+                                       
+                       jQuery("#TB_closeWindowButton").click(tb_remove);
+                       
+                               if(url.indexOf('TB_inline') != -1){     
+                                       jQuery("#TB_ajaxContent").append(jQuery('#' + params['inlineId']).children());
+                                       jQuery("#TB_window").unload(function () {
+                                               jQuery('#' + params['inlineId']).append( jQuery("#TB_ajaxContent").children() ); // move elements back when you're finished
+                                       });
+                                       tb_position();
+                                       jQuery("#TB_load").remove();
+                                       jQuery("#TB_window").css({display:"block"}); 
+                               }else if(url.indexOf('TB_iframe') != -1){
+                                       tb_position();
+                                       if($.browser.safari){//safari needs help because it will not fire iframe onload
+                                               jQuery("#TB_load").remove();
+                                               jQuery("#TB_window").css({display:"block"});
+                                       }
+                               }else{
+                                       jQuery("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
+                                               tb_position();
+                                               jQuery("#TB_load").remove();
+                                               tb_init("#TB_ajaxContent a.thickbox");
+                                               jQuery("#TB_window").css({display:"block"});
+                                       });
+                               }
+                       
+               }
+
+               if(!params['modal']){
+                       document.onkeyup = function(e){         
+                               if (e == null) { // ie
+                                       keycode = event.keyCode;
+                               } else { // mozilla
+                                       keycode = e.which;
+                               }
+                               if(keycode == 27){ // close
+                                       tb_remove();
+                               }       
+                       };
+               }
+               
+       } catch(e) {
+               //nothing here
+       }
+}
+
+//helper functions below
+function tb_showIframe(){
+       jQuery("#TB_load").remove();
+       jQuery("#TB_window").css({display:"block"});
+}
+
+function tb_remove() {
+       jQuery("#TB_imageOff").unbind("click");
+       jQuery("#TB_closeWindowButton").unbind("click");
+       jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
+       jQuery("#TB_load").remove();
+       if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
+               jQuery("body","html").css({height: "auto", width: "auto"});
+               jQuery("html").css("overflow","");
+       }
+       document.onkeydown = "";
+       document.onkeyup = "";
+       return false;
+}
+
+function tb_position() {
+jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
+       if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
+               jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
+       }
+}
+
+function tb_parseQuery ( query ) {
+   var Params = {};
+   if ( ! query ) {return Params;}// return empty object
+   var Pairs = query.split(/[;&]/);
+   for ( var i = 0; i < Pairs.length; i++ ) {
+      var KeyVal = Pairs[i].split('=');
+      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
+      var key = unescape( KeyVal[0] );
+      var val = unescape( KeyVal[1] );
+      val = val.replace(/\+/g, ' ');
+      Params[key] = val;
+   }
+   return Params;
+}
+
+function tb_getPageSize(){
+       var de = document.documentElement;
+       var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
+       var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
+       arrayPageSize = [w,h];
+       return arrayPageSize;
+}
+
+function tb_detectMacXFF() {
+  var userAgent = navigator.userAgent.toLowerCase();
+  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
+    return true;
+  }
+}
+
+
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/loop-default.php b/theme-blog.xenproject.org/carrington-blog/loop/loop-default.php
new file mode 100644 (file)
index 0000000..15000ea
--- /dev/null
@@ -0,0 +1,31 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+if (have_posts()) {
+       while (have_posts()) {
+               the_post();
+               cfct_content();
+?>
+<div class="rule"><hr /></div>
+<?php
+       }
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/page.php b/theme-blog.xenproject.org/carrington-blog/loop/page.php
new file mode 100644 (file)
index 0000000..c4ce54f
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+cfct_template_file('loop', 'single');
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/search.php b/theme-blog.xenproject.org/carrington-blog/loop/search.php
new file mode 100644 (file)
index 0000000..97dda57
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+if (have_posts()) {
+       while (have_posts()) {
+               the_post();
+               cfct_template_file('excerpt','search');
+       }
+} else {
+       cfct_misc('no-results');
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/single.php b/theme-blog.xenproject.org/carrington-blog/loop/single.php
new file mode 100644 (file)
index 0000000..9b70a99
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+if (have_posts()) {
+       while (have_posts()) {
+               the_post();
+               cfct_content();
+       }
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/templates.php b/theme-blog.xenproject.org/carrington-blog/loop/templates.php
new file mode 100644 (file)
index 0000000..1fb0139
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_page($file = '') {
+       if (empty($file)) {
+               $file = cfct_default_file('pages');
+       }
+       cfct_template_file('pages', $file);
+}
+
+function cfct_header() {
+       $file = cfct_choose_general_template('header');
+       cfct_template_file('header', $file);
+}
+
+function cfct_footer() {
+       $file = cfct_choose_general_template('footer');
+       cfct_template_file('footer', $file);
+}
+
+function cfct_sidebar() {
+       $file = cfct_choose_general_template('sidebar');
+       cfct_template_file('sidebar', $file);
+}
+
+function cfct_posts() {
+       $file = cfct_choose_general_template('posts');
+       cfct_template_file('posts', $file);
+}
+
+function cfct_single() {
+       $file = cfct_choose_general_template('single');
+       cfct_template_file('single', $file);
+}
+
+function cfct_attachment() {
+       $file = cfct_choose_general_template('attachment');
+       cfct_template_file('attachment', $file);
+}
+
+function cfct_loop() {
+       $file = cfct_choose_general_template('loop');
+       cfct_template_file('loop', $file);
+}
+
+function cfct_content() {
+       $file = cfct_choose_content_template();
+       cfct_template_file('content', $file);
+}
+
+function cfct_excerpt() {
+       $file = cfct_choose_content_template('excerpt');
+       cfct_template_file('excerpt', $file);
+}
+
+function cfct_comments() {
+       $file = cfct_choose_general_template('comments');
+       cfct_template_file('comments', $file);
+}
+
+function cfct_comment($data = null) {
+       $file = cfct_choose_comment_template();
+       cfct_template_file('comment', $file, $data);
+}
+
+function cfct_threaded_comment($comment, $args = array(), $depth) {
+       $GLOBALS['comment'] = $comment;
+       $data = array(
+               'args' => $args,
+               'depth' => $depth,
+       );
+       cfct_template_file('comments', 'threaded', $data);
+}
+
+function cfct_form($name = '') {
+       $parts = cfct_leading_dir($name);
+       cfct_template_file('forms/'.$parts['dir'], $parts['file']);
+}
+
+function cfct_misc($name = '') {
+       $parts = cfct_leading_dir($name);
+       cfct_template_file('misc/'.$parts['dir'], $parts['file']);
+}
+
+function cfct_error($name = '') {
+       cfct_template_file('error', $name);
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/loop/utility.php b/theme-blog.xenproject.org/carrington-blog/loop/utility.php
new file mode 100644 (file)
index 0000000..5482cf2
--- /dev/null
@@ -0,0 +1,821 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_die($str = '') {
+       if (!empty($str)) {
+               if (file_exists(CFCT_PATH.'error/exit.php')) {
+                       include(CFCT_PATH.'error/exit.php');
+                       die();
+               }
+               else {
+                       wp_die($str);
+               }
+       }
+}
+
+function cfct_banner($str = '') {
+       if (!empty($str)) {
+               if (file_exists(CFCT_PATH.'misc/banner.php')) {
+                       include(CFCT_PATH.'misc/banner.php');
+               }
+               else {
+                       echo '<p>'.$str.'</p>';
+               }
+       }
+}
+
+function cfct_get_option($name) {
+       $defaults = array(
+               'cfct_credit' => 'yes',
+               'cfct_lightbox' => 'yes',
+               'cfct_header_image' => 0,
+       );
+       $defaults = apply_filters('cfct_option_defaults', $defaults);
+       $value = get_option($name);
+       if ($value == '' && isset($defaults[$name])) {
+               $value = $defaults[$name];
+       }
+       return $value;
+}
+
+function cfct_load_plugins() {
+       $files = cfct_files(CFCT_PATH.'plugins');
+       if (count($files)) {
+               foreach ($files as $file) {
+                       if (file_exists(CFCT_PATH.'plugins/'.$file)) {
+                               include_once(CFCT_PATH.'plugins/'.$file);
+                       }
+// child theme support
+                       if (file_exists(STYLESHEETPATH.'/plugins/'.$file)) {
+                               include_once(STYLESHEETPATH.'/plugins/'.$file);
+                       }
+               }
+       }
+}
+
+function cfct_default_file($dir) {
+       $fancy = $dir.'-default.php';
+       file_exists(CFCT_PATH.$dir.'/'.$fancy) ? $default = $fancy : $default = 'default.php';
+       return $default;
+}
+
+function cfct_context() {
+       $context = 'home';
+       if (is_home()) {
+               $context = 'home';
+       }
+       else if (is_page()) {
+               $context = 'page';
+       }
+       else if (is_single()) {
+               $context = 'single';
+       }
+       else if (is_category()) {
+               $context = 'category';
+       }
+       else if (is_tag()) {
+               $context = 'tag';
+       }
+       else if (is_author()) {
+               $context = 'author';
+       }
+       else if (is_archive()) {
+// possible future abstraction for:
+//     is_month()
+//     is_year()
+//     is_day()
+               $context = 'archive';
+       }
+       else if (is_search()) {
+               $context = 'search';
+       }
+       else if (is_404()) {
+               $context = '404';
+       }
+       return apply_filters('cfct_context', $context);
+}
+
+/**
+ * @param $template = folder name of file
+ * @param $type = file name of file
+ * @param $keys = keys that could be used for additional filename params
+ * returns false if file does not exist
+ *
+ */
+function cfct_filename($dir, $type = 'default', $keys = array()) {
+       switch ($type) {
+               case 'author':
+                       if (count($keys)) {
+                               $file = 'author-'.$keys[0];
+                       }
+                       else {
+                               $file = 'author';
+                       }
+                       break;
+               case 'category':
+                       if (count($keys)) {
+                               $file = 'cat-'.$keys[0];
+                       }
+                       else {
+                               $file = 'category';
+                       }
+                       break;
+               case 'tag':
+                       if (count($keys)) {
+                               $file = 'tag-'.$keys[0];
+                       }
+                       else {
+                               $file = 'tag';
+                       }
+                       break;
+               case 'meta':
+                       if (count($keys)) {
+                               foreach ($keys as $k => $v) {
+                                       if (!empty($v)) {
+                                               $file = 'meta-'.$k.'-'.$v;
+                                       }
+                                       else {
+                                               $file = 'meta-'.$k;
+                                       }
+                                       break;
+                               }
+                       }
+                       break;
+               case 'user':
+                       if (count($keys)) {
+                               $file = 'user-'.$keys[0];
+                       }
+                       break;
+               case 'role':
+                       if (count($keys)) {
+                               $file = 'role-'.$keys[0];
+                       }
+                       break;
+               case 'parent':
+                       if (count($keys)) {
+                               $file = 'parent-'.$keys[0];
+                       }
+                       break;
+               default:
+               // handles page, etc.
+                       $file = $type;
+       }
+       // fallback for category, author, tag, etc.
+       // child theme path
+       $path = STYLESHEETPATH.'/'.$dir.'/'.$file.'.php';
+       // check for child theme first
+       if (!file_exists($path)) {
+               // use parent theme if no child theme file found
+               $path = CFCT_PATH.$dir.'/'.$file.'.php';
+       }
+       if (!file_exists($path)) {
+               switch ($type) {
+                       case 'author':
+                       case 'category':
+                       case 'tag':
+                               // child theme path
+                               $path = STYLESHEETPATH.'/'.$dir.'/archive.php';
+                               if (!file_exists($path)) {
+                                       // use parent theme if no child theme file found
+                                       $path = CFCT_PATH.$dir.'/archive.php';
+                               }
+               }
+       }
+       $default = CFCT_PATH.$dir.'/'.cfct_default_file($dir);
+       if (file_exists($path)) {
+               $path = $path;
+       }
+       else if (file_exists($default)) {
+               $path = $default;
+       }
+       else {
+               $path = false;
+       }
+       return apply_filters('cfct_filename', $path);
+}
+
+function cfct_template($dir, $keys = array()) {
+       $context = cfct_context();
+       $file = cfct_filename($dir, $context, $keys);
+       if ($file) {
+               include($file);
+       }
+       else {
+               cfct_die('Error loading '.$dir.' '.__LINE__);
+       }
+}
+
+function cfct_template_file($dir, $file, $data = null) {
+       $path = '';
+       if (!empty($file)) {
+               $file = basename($file, '.php');
+               // child theme support
+               $path = STYLESHEETPATH.'/'.$dir.'/'.$file.'.php';
+               if (!file_exists($path)) {
+                       $path = CFCT_PATH.$dir.'/'.$file.'.php';
+               }
+       }
+       if (file_exists($path)) {
+               include($path);
+       }
+       else {
+               cfct_die('Error loading '.$file.' '.__LINE__);
+       }
+}
+
+function cfct_choose_general_template($dir) {
+       $exec_order = array(
+               'author',
+               'role',
+               'category',
+               'tag',
+               'single',
+               'default'
+       );
+       $exec_order = apply_filters('cfct_general_match_order', $exec_order);
+       $files = cfct_files(CFCT_PATH.$dir);
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_general_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($dir, $files);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_general_template', $filename, $dir);
+}
+
+function cfct_choose_general_template_author($dir, $files) {
+       $files = cfct_author_templates($dir, $files);
+       if (count($files)) {
+               $username = get_query_var('author_name');
+               if (empty($username)) {
+                       $user = new WP_User(get_query_var('author'));
+                       $username = $user->user_login;
+               }
+               $filename = 'author-'.$username.'.php';
+               if (in_array($filename, $files)) {
+                       $keys = array($username);
+                       return cfct_filename($dir, 'author', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_category($dir, $files) {
+       $files = cfct_cat_templates($dir, $files);
+       if (count($files)) {
+               global $cat;
+               $slug = cfct_cat_id_to_slug($cat);
+               if (in_array('cat-'.$slug.'.php', $files)) {
+                       $keys = array($slug);
+                       return cfct_filename($dir, 'category', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_tag($dir, $files) {
+       $files = cfct_tag_templates($dir, $files);
+       if (count($files)) {
+               $tag = get_query_var('tag');
+               if (in_array('tag-'.$tag.'.php', $files)) {
+                       $keys = array($tag);
+                       return cfct_filename($dir, 'tag', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_role($dir, $files) {
+       $files = cfct_role_templates($dir, $files);
+       if (count($files)) {
+               $username = get_query_var('author_name');
+               $user = new WP_User(cfct_username_to_id($username));
+               if (!empty($user->user_login)) {
+                       if (count($user->roles)) {
+                               foreach ($user->roles as $role) {
+                                       $role_file = 'role-'.$role.'.php';
+                                       if (in_array($role_file, $files)) {
+                                               return $role_file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_single($dir, $files) {
+       if (cfct_context() == 'single') {
+               $files = cfct_single_templates($dir, $files);
+               if (count($files)) {
+// check to see if we're in the loop.
+                       global $post;
+                       $orig_post = $post;
+                       while (have_posts()) {
+                               the_post();
+                               $filename = cfct_choose_single_template($files, 'single-*');
+                               if (!$filename) {
+                                       if (file_exists(CFCT_PATH.$dir.'/single.php')) {
+                                               $filename = 'single.php';
+                                       }
+                               }
+                       }
+                       rewind_posts();
+                       $post = $orig_post;
+                       return $filename;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_default($dir, $files) {
+       $context = cfct_context();
+       return cfct_filename($dir, $context);
+}
+
+function cfct_choose_single_template($files = array(), $filter = '*') {
+// must be called within the_loop - cfct_choose_general_template_single() approximates a loop for this reason.
+       $exec_order = array(
+               'author',
+               'meta',
+               'category',
+               'type',
+               'role',
+               'tag',
+               'parent', // for pages
+       );
+       $exec_order = apply_filters('cfct_single_match_order', $exec_order);
+       $filename = false;
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_single_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($dir, $files, $filter);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_single_template', $filename);
+}
+
+function cfct_choose_single_template_type($dir, $files, $filter) {
+       $type_files = cfct_type_templates('', $files);
+       if (count($type_files)) {
+               global $post;
+               $file = cfct_filename_filter('type-'.$post->post_type.'.php', $filter);
+               if (in_array($file, $type_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_author($dir, $files, $filter) {
+       $author_files = cfct_author_templates('', $files);
+       if (count($author_files)) {
+               $author = get_the_author_login();
+               $file = cfct_filename_filter('author-'.$author.'.php', $filter);
+               if (in_array($file, $author_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_meta($dir, $files, $filter) {
+       global $post;
+       $meta_files = cfct_meta_templates('', $files);
+       if (count($meta_files)) {
+               $meta = get_post_custom($post->ID);
+               if (count($meta)) {
+// check key, value matches first
+                       foreach ($meta as $k => $v) {
+                               $val = $v[0];
+                               $file = cfct_filename_filter('meta-'.$k.'-'.$val.'.php', $filter);
+                               if (in_array($file, $meta_files)) {
+                                       return $file;
+                               }
+                       }
+// check key matches only
+                       if (!$filename) {
+                               foreach ($meta as $k => $v) {
+                                       $file = cfct_filename_filter('meta-'.$k.'.php', $filter);
+                                       if (in_array($file, $meta_files)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_category($dir, $files, $filter) {
+       $cat_files = cfct_cat_templates($type, $files);
+       if (count($cat_files)) {
+               foreach ($cat_files as $file) {
+                       $file = cfct_filename_filter($file, $filter);
+                       $cat_id = cfct_cat_filename_to_id($file);
+                       if (in_category($cat_id)) {
+                               return $file;
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_role($dir, $files, $filter) {
+       $role_files = cfct_role_templates($type, $files);
+       if (count($role_files)) {
+               $user = new WP_User(get_the_author_meta('ID'));
+               if (count($user->roles)) {
+                       foreach ($role_files as $file) {
+                               $file = cfct_filename_filter($file, $filter);
+                               foreach ($user->roles as $role) {
+                                       if (cfct_role_filename_to_name($file) == $role) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_tag($dir, $files, $filter) {
+       global $post;
+       $tag_files = cfct_tag_templates($type, $files);
+       if (count($tag_files)) {
+               $tags = get_the_tags($post->ID);
+               if (is_array($tags) && count($tags)) {
+                       foreach ($tag_files as $file) {
+                               $file = cfct_filename_filter($file, $filter);
+                               foreach ($tags as $tag) {
+                                       if ($tag->slug == cfct_tag_filename_to_name($file)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_parent($dir, $files, $filter) {
+       global $post;
+       $parent_files = cfct_parent_templates($type, $files);
+       if (count($parent_files) && $post->post_parent > 0) {
+               $parent = cfct_post_id_to_slug($post->post_parent);
+               $file = cfct_filename_filter('parent-'.$parent.'.php', $filter);
+               if (in_array($file, $parent_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_content_template($type = 'content') {
+       $files = cfct_files(CFCT_PATH.$type);
+       $filename = cfct_choose_single_template($files);
+       if (!$filename && cfct_context() == 'page' && file_exists(CFCT_PATH.$type.'/page.php')) {
+               $filename = 'page.php';
+       }
+       if (!$filename) {
+               $filename = cfct_default_file($type);
+       }
+       return apply_filters('cfct_choose_content_template', $filename, $type);
+}
+
+function cfct_choose_comment_template() {
+       $exec_order = array(
+               'ping',
+               'author',
+               'user',
+               'meta',
+               'role',
+               'default',
+       );
+       $exec_order = apply_filters('cfct_comment_match_order', $exec_order);
+       $files = cfct_files(CFCT_PATH.'comment');
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_comment_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($files);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_comment_template', $filename);
+}
+
+function cfct_choose_comment_template_ping($files) {
+       global $comment;
+       if (in_array('ping.php', $files)) {
+               switch ($comment->comment_type) {
+                       case 'pingback':
+                       case 'trackback':
+                               return 'ping';
+                               break;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_meta($files) {
+       global $comment;
+       $meta_files = cfct_meta_templates('', $files);
+       if (count($meta_files)) {
+               $meta = get_metadata('comment', $comment->comment_ID);
+               if (count($meta)) {
+// check key, value matches first
+                       foreach ($meta as $k => $v) {
+                               $val = $v[0];
+                               $file = 'meta-'.$k.'-'.$val.'.php';
+                               if (in_array($file, $meta_files)) {
+                                       return $file;
+                               }
+                       }
+// check key matches only
+                       if (!$filename) {
+                               foreach ($meta as $k => $v) {
+                                       $file = 'meta-'.$k.'.php';
+                                       if (in_array($file, $meta_files)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_author($files) {
+       global $post, $comment;
+       if (!empty($comment->user_id) && $comment->user_id == $post->post_author && in_array('author.php', $files)) {
+               return 'author';
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_user($files) {
+       global $comment;
+       $files = cfct_comment_templates('user', $files);
+       if (count($files) && !empty($comment->user_id)) {
+               $user = new WP_User($comment->user_id);
+               if (!empty($user->user_login)) {
+                       $user_file = 'user-'.$user->user_login.'.php';
+                       if (in_array($user_file, $files)) {
+                               return $user_file;
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_role($files) {
+       global $comment;
+       $files = cfct_comment_templates('role', $files);
+       if (count($files) && !empty($comment->user_id)) {
+               $user = new WP_User($comment->user_id);
+               if (!empty($user->user_login)) {
+                       if (count($user->roles)) {
+                               foreach ($user->roles as $role) {
+                                       $role_file = 'role-'.$role.'.php';
+                                       if (in_array($role_file, $files)) {
+                                               return $role_file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_default($files) {
+       return cfct_default_file('comment');
+}
+
+function cfct_filename_filter($filename, $filter) {
+       // check for filter already appended
+       if (substr($filename, 0, strlen($filter) - 1) == str_replace('*', '', $filter)) {
+               return $filename;
+       }
+       return str_replace('*', $filename, $filter);
+}
+
+function cfct_files($path) {
+       $files = apply_filters('cfct_files_'.$path, false);
+       if ($files) {
+               return $files;
+       }
+       $files = wp_cache_get('cfct_files_'.$path, 'cfct');
+       if ($files) {
+               return $files;
+       }
+       $files = array();
+       $paths = array($path);
+       if (STYLESHEETPATH.'/' != CFCT_PATH) {
+               // load child theme files
+               $paths[] = STYLESHEETPATH.'/'.str_replace(CFCT_PATH, '', $path);
+       }
+       foreach ($paths as $path) {
+               if (is_dir($path) && $handle = opendir($path)) {
+                       while (false !== ($file = readdir($handle))) {
+                               $path = trailingslashit($path);
+                               if (is_file($path.$file) && strtolower(substr($file, -4, 4)) == ".php") {
+                                       $files[] = $file;
+                               }
+                       }
+                       closedir($handle);
+               }
+       }
+       $files = array_unique($files);
+       wp_cache_set('cfct_files_'.$path, $files, 'cfct', 3600);
+       return $files;
+}
+
+function cfct_filter_files($files = array(), $prefix = '') {
+       $matches = array();
+       if (count($files)) {
+               foreach ($files as $file) {
+                       if (strpos($file, $prefix) !== false) {
+                               $matches[] = $file;
+                       }
+               }
+       }
+       return $matches;
+}
+
+function cfct_meta_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'meta-');
+       return apply_filters('cfct_meta_templates', $matches);
+}
+
+function cfct_cat_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'cat-');
+       return apply_filters('cfct_cat_templates', $matches);
+}
+
+function cfct_tag_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'tag-');
+       return apply_filters('cfct_tag_templates', $matches);
+}
+
+function cfct_author_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'author-');
+       return apply_filters('cfct_author_templates', $matches);
+}
+
+function cfct_type_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'type-');
+       return apply_filters('cfct_type_templates', $matches);
+}
+
+function cfct_role_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'role-');
+       return apply_filters('cfct_role_templates', $matches);
+}
+
+function cfct_parent_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'parent-');
+       return apply_filters('cfct_parent_templates', $matches);
+}
+
+function cfct_single_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'single');
+       return apply_filters('cfct_single_templates', $matches);
+}
+
+function cfct_comment_templates($type, $files = false) {
+       if (!$files) {
+               $files = cfct_files(CFCT_PATH.'comment');
+       }
+       $matches = array();
+       switch ($type) {
+               case 'user':
+                       $matches = cfct_filter_files($files, 'user-');
+                       break;
+               case 'role':
+                       $matches = cfct_filter_files($files, 'role-');
+                       break;
+       }
+       return apply_filters('cfct_comment_templates', $matches);
+}
+
+function cfct_cat_filename_to_id($file) {
+       $cat = cfct_cat_filename_to_slug($file);
+       $cat = get_category_by_slug($cat);
+       return $cat->cat_ID;
+}
+
+function cfct_cat_filename_to_name($file) {
+       $cat = cfct_cat_filename_to_slug($file);
+       $cat = get_category_by_slug($cat);
+       return $cat->name;
+}
+
+function cfct_cat_filename_to_slug($file) {
+       return str_replace(array('single-cat-', 'cat-', '.php'), '', $file);
+}
+
+function cfct_cat_id_to_slug($id) {
+       $cat = &get_category($id);
+       return $cat->slug;
+}
+
+function cfct_username_to_id($username) {
+       return get_profile('ID', $username);
+}
+
+function cfct_tag_filename_to_name($file) {
+       return str_replace(array('single-tag-', 'tag-', '.php'), '', $file);
+}
+
+function cfct_author_filename_to_name($file) {
+       return str_replace(array('single-author-', 'author-', '.php'), '', $file);
+}
+
+function cfct_role_filename_to_name($file) {
+       return str_replace(array('single-role-', 'role-', '.php'), '', $file);
+}
+
+function cfct_post_id_to_slug($id) {
+       $post = get_post($id);
+       return $post->post_name;
+}
+
+function cfct_basic_content_formatting($str) {
+       $str = wptexturize($str);
+       $str = convert_smilies($str);
+       $str = convert_chars($str);
+       $str = wpautop($str);
+       return $str;
+}
+
+function cfct_leading_dir($path) {
+       $val = array(
+               'dir' => '',
+               'file' => ''
+       );
+       if (strpos($path, '/') !== false) {
+               $parts = explode('/', $path);
+               $val['file'] = $parts[count($parts) - 1];
+               $val['dir'] = implode('/', array_slice($parts, 0, count($parts) - 1));
+       }
+       else {
+               $val['file'] = $path;
+       }
+       return $val;
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/misc/README.txt b/theme-blog.xenproject.org/carrington-blog/misc/README.txt
new file mode 100644 (file)
index 0000000..aa1fdcc
--- /dev/null
@@ -0,0 +1,17 @@
+## misc/
+
+This directory holds page fragments and snippets that you may want to use across multiple template files.
+
+These files can be included in other theme files using the following code:
+
+       <?php cfct_misc('nav-posts'); ?>
+
+Where `nav-posts.php` is the name of the file in the _misc/_ directory that you want to include.
+
+
+### Example File Descriptions
+
+- *banner.php* - This is used by Carrington to display a message that is passed to it.
+- *nav-posts.php* - This is standard paging for posts pages.
+
+This directory is not used by the Carrington engine (template naming conventions are not supported), it is provided solely for convenience and for better organization of these files.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/misc/banner.php b/theme-blog.xenproject.org/carrington-blog/misc/banner.php
new file mode 100644 (file)
index 0000000..6b323ff
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+?>
+<div class="cfct_banner"><?php echo $str; ?></div>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/misc/nav-posts.php b/theme-blog.xenproject.org/carrington-blog/misc/nav-posts.php
new file mode 100644 (file)
index 0000000..d6efb93
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+?>
+<div class="pagination">
+       <span class="previous"><?php previous_posts_link(__('&laquo; Previous', 'carrington-blog')) ?></span>
+       <span class="next"><?php next_posts_link(__('Next &raquo;', 'carrington-blog')) ?></span>
+</div>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/misc/no-results.php b/theme-blog.xenproject.org/carrington-blog/misc/no-results.php
new file mode 100644 (file)
index 0000000..fd6fdb3
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+echo '<p>', _e('Sorry, we couldn\'t find any results that matched your request.', 'carrington-blog'), '</p>';
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/page.php b/theme-blog.xenproject.org/carrington-blog/page.php
new file mode 100644 (file)
index 0000000..43be9b2
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// NOTE: this file is here for compatibility reasons - active templates are in the pages/ dir 
+
+cfct_page();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/pages/README.txt b/theme-blog.xenproject.org/carrington-blog/pages/README.txt
new file mode 100644 (file)
index 0000000..68dc123
--- /dev/null
@@ -0,0 +1,39 @@
+## pages/
+
+WP doesn't support page templates in nested folders like this one, so page organization isn't as clean as we'd like.
+
+Create a page in the theme root:
+
+File name: page-example.php
+
+**Note:** We recommend prefixing all of your page files with 'page-' so that they are easily sorted together in your theme directory.
+
+File contents:
+
+       <?php
+       
+       /*
+       Template Name: Example Template
+       */
+       
+       if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+       if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+       
+       cfct_page('example');
+       
+       ?>
+
+This will then load 'example.php' from the _pages/_ directory, keeping all of your actual page code nicely organized in one spot.
+
+You can also add your page code to the page-example.php file you create in the theme root, but we're hoping to get support for pages in a sub-directory in a future version of WordPress so we are starting with what we consider to be a "proper" organization structure now.
+
+
+### Supported Filenames
+
+- pages-default.php (or default.php)
+
+
+### File Descriptions
+
+A "default" template is required. You can create other templates as desired.
+
diff --git a/theme-blog.xenproject.org/carrington-blog/pages/pages-default.php b/theme-blog.xenproject.org/carrington-blog/pages/pages-default.php
new file mode 100644 (file)
index 0000000..0fffb8f
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+get_header();
+
+?>
+
+<div id="content">
+<?php
+
+cfct_loop();
+
+?>
+       <div id="comments">
+<?php
+       comments_template();
+?>
+       </div><!--#comments-->
+</div><!--#content-->
+
+<?php 
+
+get_sidebar();
+get_footer();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/plugins/README.txt b/theme-blog.xenproject.org/carrington-blog/plugins/README.txt
new file mode 100644 (file)
index 0000000..295ee57
--- /dev/null
@@ -0,0 +1,9 @@
+## plugins/
+
+Carrington supports plugins in the same conceptual manner as WordPress. Carrington includes several hooks and filters so you can customize/override Carrington's default behavior.
+
+Any .php files placed in this directory will be auto-loaded and processed by Carrington.
+
+This is the recommended way to interact with the hooks and filters provided by Carrington so that they can be easily distributed with the theme.
+
+This directory is not used by the Carrington engine (template naming conventions are not supported), it is provided solely for convenience and for better organization of these files.
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/posts/README.txt b/theme-blog.xenproject.org/carrington-blog/posts/README.txt
new file mode 100644 (file)
index 0000000..a54470f
--- /dev/null
@@ -0,0 +1,50 @@
+## posts/
+
+The files in this directory are "top level" templates for pages in WordPress that show multiple posts at once. These files should call `the_header()`, `the_sidebar()`, `the_footer()` and `cfct_loop()` to include the other parts of the page.
+
+The file from this directory that will be used is chosen based on the current page context.
+
+You can explicitly decide which _loop/_ to use from these templates by passing it in as so:
+
+       cfct_template_file('loop', 'example');
+
+which would use _loop/example.php_ for the loop.
+
+
+## General Context
+
+When choosing a template to use in the General Context, the Carrington engine looks at the type of request is being fulfilled. It will identify the request as the home page, a category archive, and individual post, etc.
+
+There is additional checking done for single post requests. All options in the Content Context are supported here with a 'single-' prefix added to the file. See specifics below.
+
+A "default" template is required, and will be used when there are no other templates that match a given comment. This could be because no other templates have been created, or because the comment in question doesn't match the templates that are available.
+
+By default, conditions are checked in this order:
+
+1. author
+2. role
+3. category
+4. tag
+5. single
+6. default (home, search, archive, 404, etc.)
+
+This can be altered using the `cfct_general_match_order` hook.
+
+
+### Supported Templates (General Context)
+
+- *{dirname}-default.php* (or default.php) - Used when there are no other templates that match for a given page/post.
+- *archive.php* - Used for date archives or if there are no specific category, author or tag templates.
+- *author.php* - Used for author archive lists.
+- *author-{username}.php* - Used when the post/page is authored by a specific user. For example, a template with a file name of _author-jsmith.php_ would be used for a post/page by user _jsmith_. Any WordPress username can take the place of {username} in the file name.
+- *role-{rolename}.php - Used when the post author has a particular role. This might be the role of _contributor_, _author_, _editor_, etc. and use a file of _role-contributor.php_, _role_author.php_, etc. where the role name takes the place of the {rolename} in the file name.
+- *category.php* - Used for category archive lists.
+- *cat-{slug}.php* - Used fr displaying a given category. The category is matched by the "slug" - for example a post in category "General" (with a category slug of "general") could use a template of _cat-general.php_.
+- *home.php* - Used when on the home page.
+- *page.php* - Used for pages that do not match any other contextual templates.
+- *search.php* - Used when displaying search results.
+- *single.php* - Used for single post pages.
+- *single-{content context filenames}.php* - Used for single post pages.
+- *tag.php* - Used for tag archive lists.
+- *tag-{slug}.php* - Used for displaying a given tag. The tag is matched by the "slug" - for example a post in tag "News" (with a tag slug of "news") could use a template of _tag-news.php_.
+
diff --git a/theme-blog.xenproject.org/carrington-blog/posts/author.php b/theme-blog.xenproject.org/carrington-blog/posts/author.php
new file mode 100644 (file)
index 0000000..01d365e
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+global $authordata;
+
+get_header();
+?>
+<div id="content">
+<?php
+
+if (have_posts()) {
+       while (have_posts()) {
+               the_post();
+?>
+
+<?php
+               if (!empty($authordata->description)) {
+?>
+                               
+                <h2><?php printf(__('About %s', 'carrington-blog'), get_author_name($authordata->ID)); ?></h2>
+
+<!-- Some layout problem
+                <div id="author-avatar">
+<?php              echo get_avatar( get_the_author_meta( 'user_email' ), apply_filters( 'twentyeleven_author_bio_avatar_size', 60 ) ); ?>
+               </div>
+-->
+
+<?php           echo cfct_basic_content_formatting(get_the_author_description());  ?>
+
+<?php
+               }
+               break;
+       }
+} ?>
+
+       <h1 class="page-title"><?php printf(__('Posts by: <a href="%s">%s</a>', 'carrington-blog'), get_author_posts_url($authordata->ID), get_author_name($authordata->ID)); ?></h1>
+
+<?php 
+rewind_posts();
+
+cfct_loop();
+cfct_misc('nav-posts');
+?>
+
+</div><!--#content-->
+<?php
+
+get_sidebar();
+
+get_footer();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/posts/category.php b/theme-blog.xenproject.org/carrington-blog/posts/category.php
new file mode 100644 (file)
index 0000000..d9f93a7
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+get_header();
+
+$cat_title = '<a href="'.get_category_link(intval(get_query_var('cat'))).'">'.single_cat_title('', false).'</a>';
+
+?>
+
+<div id="content">
+       <h1 class="page-title"><?php printf(__('Category Archives: %s', 'carrington-blog'), $cat_title); ?></h1>
+
+       <div class="description"><?php echo category_description(); ?></div>
+
+<?php
+       cfct_loop();
+       cfct_misc('nav-posts');
+?>
+</div>
+<?php 
+get_sidebar();
+
+get_footer();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/posts/home.php b/theme-blog.xenproject.org/carrington-blog/posts/home.php
new file mode 100644 (file)
index 0000000..b665aaf
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+get_header();
+
+?>
+
+<div id="content">
+<?php
+       cfct_loop();
+       cfct_misc('nav-posts');
+?>
+</div><!--#content-->
+
+<?php 
+
+get_sidebar();
+
+get_footer();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/posts/posts-default.php b/theme-blog.xenproject.org/carrington-blog/posts/posts-default.php
new file mode 100644 (file)
index 0000000..3acbfe9
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+get_header();
+
+?>
+
+<div id="content">
+<?php
+       cfct_loop();
+       cfct_misc('nav-posts');
+?>
+</div><!--#content-->
+
+<?php
+
+get_sidebar();
+
+get_footer();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/posts/search.php b/theme-blog.xenproject.org/carrington-blog/posts/search.php
new file mode 100644 (file)
index 0000000..a7f536d
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+get_header();
+
+$s = get_query_var('s');
+
+if (get_option('permalink_structure') != '') {
+       $search_title = '<a href="'.trailingslashit(get_bloginfo('url')).'search/'.urlencode($s).'">'.htmlspecialchars($s).'</a>';
+}
+else {
+       $search_title = '<a href="'.trailingslashit(get_bloginfo('url')).'?s='.urlencode($s).'">'.htmlspecialchars($s).'</a>';
+}
+
+?>
+
+<div id="content">
+       <h1 class="page-title"><?php printf(__('Search Results for: %s', 'carrington-blog'), $search_title); ?></h1>
+<?php
+       cfct_loop();
+       cfct_misc('nav-posts');
+?>
+</div><!--#content-->
+
+<?php
+
+get_sidebar();
+
+get_footer();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/posts/tag.php b/theme-blog.xenproject.org/carrington-blog/posts/tag.php
new file mode 100644 (file)
index 0000000..aa4e8e7
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+get_header();
+
+$tag_title = '<a href="'.get_tag_link(intval(get_query_var('tag_id'))).'">'.single_tag_title('', false).'</a>';
+
+
+?>
+
+<div id="content">
+       <h1 class="page-title"><?php printf(__('Tag Archives: %s', 'carrington-blog'), $tag_title); ?></h1>
+
+<?php
+       cfct_loop();
+       cfct_misc('nav-posts');
+?>
+</div><!--#content-->
+<?php 
+get_sidebar();
+
+get_footer();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/screenshot.png b/theme-blog.xenproject.org/carrington-blog/screenshot.png
new file mode 100644 (file)
index 0000000..970a9d1
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/screenshot.png differ
diff --git a/theme-blog.xenproject.org/carrington-blog/search.php b/theme-blog.xenproject.org/carrington-blog/search.php
new file mode 100644 (file)
index 0000000..9a96363
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// NOTE: this file is here for compatibility reasons - active templates are in the posts/ dir 
+
+cfct_posts();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/sidebar.php b/theme-blog.xenproject.org/carrington-blog/sidebar.php
new file mode 100644 (file)
index 0000000..bc174c0
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// NOTE: this file is here for compatibility reasons - active templates are in the sidebar/ dir 
+
+cfct_sidebar();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/sidebar/README.txt b/theme-blog.xenproject.org/carrington-blog/sidebar/README.txt
new file mode 100644 (file)
index 0000000..d8d38ab
--- /dev/null
@@ -0,0 +1,42 @@
+## sidebar/
+
+This directory holds the sidebar files for the theme. The file from this directory that will be used is chosen based on the current page context.
+
+
+## General Context
+
+When choosing a template to use in the General Context, the Carrington engine looks at the type of request is being fulfilled. It will identify the request as the home page, a category archive, and individual post, etc.
+
+There is additional checking done for single post requests. All options in the Content Context are supported here with a 'single-' prefix added to the file. See specifics below.
+
+A "default" template is required, and will be used when there are no other templates that match a given comment. This could be because no other templates have been created, or because the comment in question doesn't match the templates that are available.
+
+By default, conditions are checked in this order:
+
+1. author
+2. role
+3. category
+4. tag
+5. single
+6. default (home, search, archive, 404, etc.)
+
+This can be altered using the `cfct_general_match_order` hook.
+
+
+### Supported Templates (General Context)
+
+- *{dirname}-default.php* (or default.php) - Used when there are no other templates that match for a given page/post.
+- *archive.php* - Used for date archives or if there are no specific category, author or tag templates.
+- *author.php* - Used for author archive lists.
+- *author-{username}.php* - Used when the post/page is authored by a specific user. For example, a template with a file name of _author-jsmith.php_ would be used for a post/page by user _jsmith_. Any WordPress username can take the place of {username} in the file name.
+- *role-{rolename}.php - Used when the post author has a particular role. This might be the role of _contributor_, _author_, _editor_, etc. and use a file of _role-contributor.php_, _role_author.php_, etc. where the role name takes the place of the {rolename} in the file name.
+- *category.php* - Used for category archive lists.
+- *cat-{slug}.php* - Used fr displaying a given category. The category is matched by the "slug" - for example a post in category "General" (with a category slug of "general") could use a template of _cat-general.php_.
+- *home.php* - Used when on the home page.
+- *page.php* - Used for pages that do not match any other contextual templates.
+- *search.php* - Used when displaying search results.
+- *single.php* - Used for single post pages.
+- *single-{content context filenames}.php* - Used for single post pages.
+- *tag.php* - Used for tag archive lists.
+- *tag-{slug}.php* - Used for displaying a given tag. The tag is matched by the "slug" - for example a post in tag "News" (with a tag slug of "news") could use a template of _tag-news.php_.
+
diff --git a/theme-blog.xenproject.org/carrington-blog/sidebar/sidebar-default.php b/theme-blog.xenproject.org/carrington-blog/sidebar/sidebar-default.php
new file mode 100644 (file)
index 0000000..cd3a80a
--- /dev/null
@@ -0,0 +1,78 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+global $post;
+$orig_post = $post;
+
+?>
+<hr class="lofi" />
+<div id="sidebar">
+       <div id="carrington-subscribe" class="widget">
+               <h2 class="widget-title"><?php _e('Subscribe', 'carrington-blog'); ?></h2>
+               <a class="feed alignright" title="RSS 2.0 feed for posts" rel="alternate" href="<?php bloginfo('rss2_url') ?>">
+                       <img src="<?php bloginfo('template_directory'); ?>/img/rss-button.gif" alt="<?php printf( __( '%s latest posts', 'carrington' ), wp_specialchars( get_bloginfo('name'), 1 ) ) ?>" title="<?php printf( __( '%s latest posts', 'carrington' ), wp_specialchars( get_bloginfo('name'), 1 ) ) ?>" />
+               </a>
+       </div><!--.widget-->
+<?php
+$about_text = cfct_about_text();
+if (!empty($about_text)) {
+?>
+       <div id="carrington-about" class="widget">
+               <div class="about">
+                       <h2 class="widget-title"><?php printf(__('About %s', 'carrington-blog'), get_bloginfo('name')); ?></h2>
+<?php
+       echo $about_text;
+?>
+               </div>
+       </div><!--.widget-->
+<?php
+}
+?>
+
+       <div id="primary-sidebar">
+<?php
+$post = $orig_post;
+if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Primary Sidebar') ) {
+?>
+               <div id="carrington-archives" class="widget">
+                       <h2 class="widget-title">Archives</h2>
+                       <ul>
+                               <?php wp_get_archives(); ?>
+                       </ul>
+               </div><!--.widget-->
+<?php
+}
+?>
+       </div><!--#primary-sidebar-->
+       <div id="secondary-sidebar">
+<?php
+$post = $orig_post;
+if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('Secondary Sidebar') ) { 
+?>
+               <div id="carrington-tags" class="widget">
+                       <h2 class="widget-title">Tags</h2>
+                       <?php wp_tag_cloud('smallest=10&largest=18&unit=px'); ?>
+               </div><!--.widget-->
+<?php
+}
+?>
+       </div><!--#secondary-sidebar-->
+       <div class="clear"></div>
+</div><!--#sidebar-->
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/single.php b/theme-blog.xenproject.org/carrington-blog/single.php
new file mode 100644 (file)
index 0000000..de5f26c
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+// NOTE: this file is here for compatibility reasons - active templates are in the single/ dir 
+
+cfct_single();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/single/README.txt b/theme-blog.xenproject.org/carrington-blog/single/README.txt
new file mode 100644 (file)
index 0000000..483faf0
--- /dev/null
@@ -0,0 +1,44 @@
+## single/
+
+This directory holds top level templates for "single" post pages. These files should call `the_header()`, `the_sidebar()`, `the_footer()`, `cfct_loop()` and `cfct_comments()` to include the other parts of the page.
+
+All General Context template filenames apply here, but in reality only single.php and single-{Post Context}.php files will be used as the General Context must fall to "single" to look for templates here.
+
+
+## General Context
+
+When choosing a template to use in the General Context, the Carrington engine looks at the type of request is being fulfilled. It will identify the request as the home page, a category archive, and individual post, etc.
+
+There is additional checking done for single post requests. All options in the Content Context are supported here with a 'single-' prefix added to the file. See specifics below.
+
+A "default" template is required, and will be used when there are no other templates that match a given comment. This could be because no other templates have been created, or because the comment in question doesn't match the templates that are available.
+
+By default, conditions are checked in this order:
+
+1. author
+2. role
+3. category
+4. tag
+5. single
+6. default (home, search, archive, 404, etc.)
+
+This can be altered using the `cfct_general_match_order` hook.
+
+
+### Supported Templates (General Context)
+
+- *{dirname}-default.php* (or default.php) - Used when there are no other templates that match for a given page/post.
+- *archive.php* - Used for date archives or if there are no specific category, author or tag templates.
+- *author.php* - Used for author archive lists.
+- *author-{username}.php* - Used when the post/page is authored by a specific user. For example, a template with a file name of _author-jsmith.php_ would be used for a post/page by user _jsmith_. Any WordPress username can take the place of {username} in the file name.
+- *role-{rolename}.php - Used when the post author has a particular role. This might be the role of _contributor_, _author_, _editor_, etc. and use a file of _role-contributor.php_, _role_author.php_, etc. where the role name takes the place of the {rolename} in the file name.
+- *category.php* - Used for category archive lists.
+- *cat-{slug}.php* - Used fr displaying a given category. The category is matched by the "slug" - for example a post in category "General" (with a category slug of "general") could use a template of _cat-general.php_.
+- *home.php* - Used when on the home page.
+- *page.php* - Used for pages that do not match any other contextual templates.
+- *search.php* - Used when displaying search results.
+- *single.php* - Used for single post pages.
+- *single-{content context filenames}.php* - Used for single post pages.
+- *tag.php* - Used for tag archive lists.
+- *tag-{slug}.php* - Used for displaying a given tag. The tag is matched by the "slug" - for example a post in tag "News" (with a tag slug of "news") could use a template of _tag-news.php_.
+
diff --git a/theme-blog.xenproject.org/carrington-blog/single/single-default.php b/theme-blog.xenproject.org/carrington-blog/single/single-default.php
new file mode 100644 (file)
index 0000000..ac50ad9
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+if (CFCT_DEBUG) { cfct_banner(__FILE__); }
+
+get_header();
+
+?>
+
+<div id="content">
+<?php
+cfct_loop();
+?>
+       <div id="comments">
+<?php
+comments_template();
+?>
+       </div><!--#comments-->
+
+       <div class="pagination-single">
+               <span class="previous"><?php previous_post_link() ?></span>
+               <span class="next"><?php next_post_link() ?></span>
+       </div>
+
+</div><!--#content-->
+
+<?php
+
+get_sidebar();
+
+get_footer();
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/style.css b/theme-blog.xenproject.org/carrington-blog/style.css
new file mode 100644 (file)
index 0000000..61627a0
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+
+Theme Name: Carrington Blog
+Theme URI: http://carringtontheme.com
+Description: A rich blogger friendly theme with customizable header, colors and AJAX options; and developer friendly theme with atomic templates and an elegant override hierarchy.
+Version: 2.2
+Author: Crowd Favorite
+Author URI: http://crowdfavorite.com
+Tags: red, silver, white, dark, light, two-columns, three-columns, right-sidebar, fixed-width, custom-colors, custom-header, theme-options, threaded-comments, microformats
+
+
+// This file is part of the Carrington Blog Theme for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+NOTE: This file is not used in this theme but is included for WordPress theme expected format compatibility - see the css/ dir for actual theme CSS
+
+*/
+
+/* including for compatibility */
+
+.alignleft {
+       float:left;
+       margin-right:1em;
+       margin-bottom:1em;
+}
+.alignright {
+       float:right;
+       margin-left:1em;
+       margin-bottom:1em;
+}
+.aligncenter {
+       display: block;
+       margin-left: auto;
+       margin-right: auto;
+}
+.wp-caption {
+       border: 1px solid #ddd;
+       text-align: center;
+       background-color: #f3f3f3;
+       padding-top: 4px;
+       margin: 10px;
+       /* optional rounded corners for browsers that support it */
+       -moz-border-radius: 3px;
+       -khtml-border-radius: 3px;
+       -webkit-border-radius: 3px;
+       border-radius: 3px;
+}
+.wp-caption img {
+       margin: 0;
+       padding: 0;
+       border: 0 none;
+}
+.wp-caption p.wp-caption-text {
+       font-size: 11px;
+       line-height: 17px;
+       padding: 0 4px 5px;
+       margin: 0;
+}
diff --git a/theme-blog.xenproject.org/carrington-blog/templates.php b/theme-blog.xenproject.org/carrington-blog/templates.php
new file mode 100644 (file)
index 0000000..1fb0139
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_page($file = '') {
+       if (empty($file)) {
+               $file = cfct_default_file('pages');
+       }
+       cfct_template_file('pages', $file);
+}
+
+function cfct_header() {
+       $file = cfct_choose_general_template('header');
+       cfct_template_file('header', $file);
+}
+
+function cfct_footer() {
+       $file = cfct_choose_general_template('footer');
+       cfct_template_file('footer', $file);
+}
+
+function cfct_sidebar() {
+       $file = cfct_choose_general_template('sidebar');
+       cfct_template_file('sidebar', $file);
+}
+
+function cfct_posts() {
+       $file = cfct_choose_general_template('posts');
+       cfct_template_file('posts', $file);
+}
+
+function cfct_single() {
+       $file = cfct_choose_general_template('single');
+       cfct_template_file('single', $file);
+}
+
+function cfct_attachment() {
+       $file = cfct_choose_general_template('attachment');
+       cfct_template_file('attachment', $file);
+}
+
+function cfct_loop() {
+       $file = cfct_choose_general_template('loop');
+       cfct_template_file('loop', $file);
+}
+
+function cfct_content() {
+       $file = cfct_choose_content_template();
+       cfct_template_file('content', $file);
+}
+
+function cfct_excerpt() {
+       $file = cfct_choose_content_template('excerpt');
+       cfct_template_file('excerpt', $file);
+}
+
+function cfct_comments() {
+       $file = cfct_choose_general_template('comments');
+       cfct_template_file('comments', $file);
+}
+
+function cfct_comment($data = null) {
+       $file = cfct_choose_comment_template();
+       cfct_template_file('comment', $file, $data);
+}
+
+function cfct_threaded_comment($comment, $args = array(), $depth) {
+       $GLOBALS['comment'] = $comment;
+       $data = array(
+               'args' => $args,
+               'depth' => $depth,
+       );
+       cfct_template_file('comments', 'threaded', $data);
+}
+
+function cfct_form($name = '') {
+       $parts = cfct_leading_dir($name);
+       cfct_template_file('forms/'.$parts['dir'], $parts['file']);
+}
+
+function cfct_misc($name = '') {
+       $parts = cfct_leading_dir($name);
+       cfct_template_file('misc/'.$parts['dir'], $parts['file']);
+}
+
+function cfct_error($name = '') {
+       cfct_template_file('error', $name);
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/utility.php b/theme-blog.xenproject.org/carrington-blog/utility.php
new file mode 100644 (file)
index 0000000..5482cf2
--- /dev/null
@@ -0,0 +1,821 @@
+<?php
+
+// This file is part of the Carrington Theme Framework for WordPress
+// http://carringtontheme.com
+//
+// Copyright (c) 2008-2010 Crowd Favorite, Ltd. All rights reserved.
+// http://crowdfavorite.com
+//
+// Released under the GPL license
+// http://www.opensource.org/licenses/gpl-license.php
+//
+// **********************************************************************
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+// **********************************************************************
+
+if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
+
+function cfct_die($str = '') {
+       if (!empty($str)) {
+               if (file_exists(CFCT_PATH.'error/exit.php')) {
+                       include(CFCT_PATH.'error/exit.php');
+                       die();
+               }
+               else {
+                       wp_die($str);
+               }
+       }
+}
+
+function cfct_banner($str = '') {
+       if (!empty($str)) {
+               if (file_exists(CFCT_PATH.'misc/banner.php')) {
+                       include(CFCT_PATH.'misc/banner.php');
+               }
+               else {
+                       echo '<p>'.$str.'</p>';
+               }
+       }
+}
+
+function cfct_get_option($name) {
+       $defaults = array(
+               'cfct_credit' => 'yes',
+               'cfct_lightbox' => 'yes',
+               'cfct_header_image' => 0,
+       );
+       $defaults = apply_filters('cfct_option_defaults', $defaults);
+       $value = get_option($name);
+       if ($value == '' && isset($defaults[$name])) {
+               $value = $defaults[$name];
+       }
+       return $value;
+}
+
+function cfct_load_plugins() {
+       $files = cfct_files(CFCT_PATH.'plugins');
+       if (count($files)) {
+               foreach ($files as $file) {
+                       if (file_exists(CFCT_PATH.'plugins/'.$file)) {
+                               include_once(CFCT_PATH.'plugins/'.$file);
+                       }
+// child theme support
+                       if (file_exists(STYLESHEETPATH.'/plugins/'.$file)) {
+                               include_once(STYLESHEETPATH.'/plugins/'.$file);
+                       }
+               }
+       }
+}
+
+function cfct_default_file($dir) {
+       $fancy = $dir.'-default.php';
+       file_exists(CFCT_PATH.$dir.'/'.$fancy) ? $default = $fancy : $default = 'default.php';
+       return $default;
+}
+
+function cfct_context() {
+       $context = 'home';
+       if (is_home()) {
+               $context = 'home';
+       }
+       else if (is_page()) {
+               $context = 'page';
+       }
+       else if (is_single()) {
+               $context = 'single';
+       }
+       else if (is_category()) {
+               $context = 'category';
+       }
+       else if (is_tag()) {
+               $context = 'tag';
+       }
+       else if (is_author()) {
+               $context = 'author';
+       }
+       else if (is_archive()) {
+// possible future abstraction for:
+//     is_month()
+//     is_year()
+//     is_day()
+               $context = 'archive';
+       }
+       else if (is_search()) {
+               $context = 'search';
+       }
+       else if (is_404()) {
+               $context = '404';
+       }
+       return apply_filters('cfct_context', $context);
+}
+
+/**
+ * @param $template = folder name of file
+ * @param $type = file name of file
+ * @param $keys = keys that could be used for additional filename params
+ * returns false if file does not exist
+ *
+ */
+function cfct_filename($dir, $type = 'default', $keys = array()) {
+       switch ($type) {
+               case 'author':
+                       if (count($keys)) {
+                               $file = 'author-'.$keys[0];
+                       }
+                       else {
+                               $file = 'author';
+                       }
+                       break;
+               case 'category':
+                       if (count($keys)) {
+                               $file = 'cat-'.$keys[0];
+                       }
+                       else {
+                               $file = 'category';
+                       }
+                       break;
+               case 'tag':
+                       if (count($keys)) {
+                               $file = 'tag-'.$keys[0];
+                       }
+                       else {
+                               $file = 'tag';
+                       }
+                       break;
+               case 'meta':
+                       if (count($keys)) {
+                               foreach ($keys as $k => $v) {
+                                       if (!empty($v)) {
+                                               $file = 'meta-'.$k.'-'.$v;
+                                       }
+                                       else {
+                                               $file = 'meta-'.$k;
+                                       }
+                                       break;
+                               }
+                       }
+                       break;
+               case 'user':
+                       if (count($keys)) {
+                               $file = 'user-'.$keys[0];
+                       }
+                       break;
+               case 'role':
+                       if (count($keys)) {
+                               $file = 'role-'.$keys[0];
+                       }
+                       break;
+               case 'parent':
+                       if (count($keys)) {
+                               $file = 'parent-'.$keys[0];
+                       }
+                       break;
+               default:
+               // handles page, etc.
+                       $file = $type;
+       }
+       // fallback for category, author, tag, etc.
+       // child theme path
+       $path = STYLESHEETPATH.'/'.$dir.'/'.$file.'.php';
+       // check for child theme first
+       if (!file_exists($path)) {
+               // use parent theme if no child theme file found
+               $path = CFCT_PATH.$dir.'/'.$file.'.php';
+       }
+       if (!file_exists($path)) {
+               switch ($type) {
+                       case 'author':
+                       case 'category':
+                       case 'tag':
+                               // child theme path
+                               $path = STYLESHEETPATH.'/'.$dir.'/archive.php';
+                               if (!file_exists($path)) {
+                                       // use parent theme if no child theme file found
+                                       $path = CFCT_PATH.$dir.'/archive.php';
+                               }
+               }
+       }
+       $default = CFCT_PATH.$dir.'/'.cfct_default_file($dir);
+       if (file_exists($path)) {
+               $path = $path;
+       }
+       else if (file_exists($default)) {
+               $path = $default;
+       }
+       else {
+               $path = false;
+       }
+       return apply_filters('cfct_filename', $path);
+}
+
+function cfct_template($dir, $keys = array()) {
+       $context = cfct_context();
+       $file = cfct_filename($dir, $context, $keys);
+       if ($file) {
+               include($file);
+       }
+       else {
+               cfct_die('Error loading '.$dir.' '.__LINE__);
+       }
+}
+
+function cfct_template_file($dir, $file, $data = null) {
+       $path = '';
+       if (!empty($file)) {
+               $file = basename($file, '.php');
+               // child theme support
+               $path = STYLESHEETPATH.'/'.$dir.'/'.$file.'.php';
+               if (!file_exists($path)) {
+                       $path = CFCT_PATH.$dir.'/'.$file.'.php';
+               }
+       }
+       if (file_exists($path)) {
+               include($path);
+       }
+       else {
+               cfct_die('Error loading '.$file.' '.__LINE__);
+       }
+}
+
+function cfct_choose_general_template($dir) {
+       $exec_order = array(
+               'author',
+               'role',
+               'category',
+               'tag',
+               'single',
+               'default'
+       );
+       $exec_order = apply_filters('cfct_general_match_order', $exec_order);
+       $files = cfct_files(CFCT_PATH.$dir);
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_general_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($dir, $files);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_general_template', $filename, $dir);
+}
+
+function cfct_choose_general_template_author($dir, $files) {
+       $files = cfct_author_templates($dir, $files);
+       if (count($files)) {
+               $username = get_query_var('author_name');
+               if (empty($username)) {
+                       $user = new WP_User(get_query_var('author'));
+                       $username = $user->user_login;
+               }
+               $filename = 'author-'.$username.'.php';
+               if (in_array($filename, $files)) {
+                       $keys = array($username);
+                       return cfct_filename($dir, 'author', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_category($dir, $files) {
+       $files = cfct_cat_templates($dir, $files);
+       if (count($files)) {
+               global $cat;
+               $slug = cfct_cat_id_to_slug($cat);
+               if (in_array('cat-'.$slug.'.php', $files)) {
+                       $keys = array($slug);
+                       return cfct_filename($dir, 'category', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_tag($dir, $files) {
+       $files = cfct_tag_templates($dir, $files);
+       if (count($files)) {
+               $tag = get_query_var('tag');
+               if (in_array('tag-'.$tag.'.php', $files)) {
+                       $keys = array($tag);
+                       return cfct_filename($dir, 'tag', $keys);
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_role($dir, $files) {
+       $files = cfct_role_templates($dir, $files);
+       if (count($files)) {
+               $username = get_query_var('author_name');
+               $user = new WP_User(cfct_username_to_id($username));
+               if (!empty($user->user_login)) {
+                       if (count($user->roles)) {
+                               foreach ($user->roles as $role) {
+                                       $role_file = 'role-'.$role.'.php';
+                                       if (in_array($role_file, $files)) {
+                                               return $role_file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_single($dir, $files) {
+       if (cfct_context() == 'single') {
+               $files = cfct_single_templates($dir, $files);
+               if (count($files)) {
+// check to see if we're in the loop.
+                       global $post;
+                       $orig_post = $post;
+                       while (have_posts()) {
+                               the_post();
+                               $filename = cfct_choose_single_template($files, 'single-*');
+                               if (!$filename) {
+                                       if (file_exists(CFCT_PATH.$dir.'/single.php')) {
+                                               $filename = 'single.php';
+                                       }
+                               }
+                       }
+                       rewind_posts();
+                       $post = $orig_post;
+                       return $filename;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_general_template_default($dir, $files) {
+       $context = cfct_context();
+       return cfct_filename($dir, $context);
+}
+
+function cfct_choose_single_template($files = array(), $filter = '*') {
+// must be called within the_loop - cfct_choose_general_template_single() approximates a loop for this reason.
+       $exec_order = array(
+               'author',
+               'meta',
+               'category',
+               'type',
+               'role',
+               'tag',
+               'parent', // for pages
+       );
+       $exec_order = apply_filters('cfct_single_match_order', $exec_order);
+       $filename = false;
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_single_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($dir, $files, $filter);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_single_template', $filename);
+}
+
+function cfct_choose_single_template_type($dir, $files, $filter) {
+       $type_files = cfct_type_templates('', $files);
+       if (count($type_files)) {
+               global $post;
+               $file = cfct_filename_filter('type-'.$post->post_type.'.php', $filter);
+               if (in_array($file, $type_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_author($dir, $files, $filter) {
+       $author_files = cfct_author_templates('', $files);
+       if (count($author_files)) {
+               $author = get_the_author_login();
+               $file = cfct_filename_filter('author-'.$author.'.php', $filter);
+               if (in_array($file, $author_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_meta($dir, $files, $filter) {
+       global $post;
+       $meta_files = cfct_meta_templates('', $files);
+       if (count($meta_files)) {
+               $meta = get_post_custom($post->ID);
+               if (count($meta)) {
+// check key, value matches first
+                       foreach ($meta as $k => $v) {
+                               $val = $v[0];
+                               $file = cfct_filename_filter('meta-'.$k.'-'.$val.'.php', $filter);
+                               if (in_array($file, $meta_files)) {
+                                       return $file;
+                               }
+                       }
+// check key matches only
+                       if (!$filename) {
+                               foreach ($meta as $k => $v) {
+                                       $file = cfct_filename_filter('meta-'.$k.'.php', $filter);
+                                       if (in_array($file, $meta_files)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_category($dir, $files, $filter) {
+       $cat_files = cfct_cat_templates($type, $files);
+       if (count($cat_files)) {
+               foreach ($cat_files as $file) {
+                       $file = cfct_filename_filter($file, $filter);
+                       $cat_id = cfct_cat_filename_to_id($file);
+                       if (in_category($cat_id)) {
+                               return $file;
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_role($dir, $files, $filter) {
+       $role_files = cfct_role_templates($type, $files);
+       if (count($role_files)) {
+               $user = new WP_User(get_the_author_meta('ID'));
+               if (count($user->roles)) {
+                       foreach ($role_files as $file) {
+                               $file = cfct_filename_filter($file, $filter);
+                               foreach ($user->roles as $role) {
+                                       if (cfct_role_filename_to_name($file) == $role) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_tag($dir, $files, $filter) {
+       global $post;
+       $tag_files = cfct_tag_templates($type, $files);
+       if (count($tag_files)) {
+               $tags = get_the_tags($post->ID);
+               if (is_array($tags) && count($tags)) {
+                       foreach ($tag_files as $file) {
+                               $file = cfct_filename_filter($file, $filter);
+                               foreach ($tags as $tag) {
+                                       if ($tag->slug == cfct_tag_filename_to_name($file)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_single_template_parent($dir, $files, $filter) {
+       global $post;
+       $parent_files = cfct_parent_templates($type, $files);
+       if (count($parent_files) && $post->post_parent > 0) {
+               $parent = cfct_post_id_to_slug($post->post_parent);
+               $file = cfct_filename_filter('parent-'.$parent.'.php', $filter);
+               if (in_array($file, $parent_files)) {
+                       return $file;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_content_template($type = 'content') {
+       $files = cfct_files(CFCT_PATH.$type);
+       $filename = cfct_choose_single_template($files);
+       if (!$filename && cfct_context() == 'page' && file_exists(CFCT_PATH.$type.'/page.php')) {
+               $filename = 'page.php';
+       }
+       if (!$filename) {
+               $filename = cfct_default_file($type);
+       }
+       return apply_filters('cfct_choose_content_template', $filename, $type);
+}
+
+function cfct_choose_comment_template() {
+       $exec_order = array(
+               'ping',
+               'author',
+               'user',
+               'meta',
+               'role',
+               'default',
+       );
+       $exec_order = apply_filters('cfct_comment_match_order', $exec_order);
+       $files = cfct_files(CFCT_PATH.'comment');
+       foreach ($exec_order as $func_name) {
+               if (!function_exists($func_name)) {
+                       $func_name = 'cfct_choose_comment_template_'.$func_name;
+               }
+               if (function_exists($func_name)) {
+                       $filename = $func_name($files);
+                       if ($filename != false) {
+                               break;
+                       }
+               }
+       }
+       return apply_filters('cfct_choose_comment_template', $filename);
+}
+
+function cfct_choose_comment_template_ping($files) {
+       global $comment;
+       if (in_array('ping.php', $files)) {
+               switch ($comment->comment_type) {
+                       case 'pingback':
+                       case 'trackback':
+                               return 'ping';
+                               break;
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_meta($files) {
+       global $comment;
+       $meta_files = cfct_meta_templates('', $files);
+       if (count($meta_files)) {
+               $meta = get_metadata('comment', $comment->comment_ID);
+               if (count($meta)) {
+// check key, value matches first
+                       foreach ($meta as $k => $v) {
+                               $val = $v[0];
+                               $file = 'meta-'.$k.'-'.$val.'.php';
+                               if (in_array($file, $meta_files)) {
+                                       return $file;
+                               }
+                       }
+// check key matches only
+                       if (!$filename) {
+                               foreach ($meta as $k => $v) {
+                                       $file = 'meta-'.$k.'.php';
+                                       if (in_array($file, $meta_files)) {
+                                               return $file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_author($files) {
+       global $post, $comment;
+       if (!empty($comment->user_id) && $comment->user_id == $post->post_author && in_array('author.php', $files)) {
+               return 'author';
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_user($files) {
+       global $comment;
+       $files = cfct_comment_templates('user', $files);
+       if (count($files) && !empty($comment->user_id)) {
+               $user = new WP_User($comment->user_id);
+               if (!empty($user->user_login)) {
+                       $user_file = 'user-'.$user->user_login.'.php';
+                       if (in_array($user_file, $files)) {
+                               return $user_file;
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_role($files) {
+       global $comment;
+       $files = cfct_comment_templates('role', $files);
+       if (count($files) && !empty($comment->user_id)) {
+               $user = new WP_User($comment->user_id);
+               if (!empty($user->user_login)) {
+                       if (count($user->roles)) {
+                               foreach ($user->roles as $role) {
+                                       $role_file = 'role-'.$role.'.php';
+                                       if (in_array($role_file, $files)) {
+                                               return $role_file;
+                                       }
+                               }
+                       }
+               }
+       }
+       return false;
+}
+
+function cfct_choose_comment_template_default($files) {
+       return cfct_default_file('comment');
+}
+
+function cfct_filename_filter($filename, $filter) {
+       // check for filter already appended
+       if (substr($filename, 0, strlen($filter) - 1) == str_replace('*', '', $filter)) {
+               return $filename;
+       }
+       return str_replace('*', $filename, $filter);
+}
+
+function cfct_files($path) {
+       $files = apply_filters('cfct_files_'.$path, false);
+       if ($files) {
+               return $files;
+       }
+       $files = wp_cache_get('cfct_files_'.$path, 'cfct');
+       if ($files) {
+               return $files;
+       }
+       $files = array();
+       $paths = array($path);
+       if (STYLESHEETPATH.'/' != CFCT_PATH) {
+               // load child theme files
+               $paths[] = STYLESHEETPATH.'/'.str_replace(CFCT_PATH, '', $path);
+       }
+       foreach ($paths as $path) {
+               if (is_dir($path) && $handle = opendir($path)) {
+                       while (false !== ($file = readdir($handle))) {
+                               $path = trailingslashit($path);
+                               if (is_file($path.$file) && strtolower(substr($file, -4, 4)) == ".php") {
+                                       $files[] = $file;
+                               }
+                       }
+                       closedir($handle);
+               }
+       }
+       $files = array_unique($files);
+       wp_cache_set('cfct_files_'.$path, $files, 'cfct', 3600);
+       return $files;
+}
+
+function cfct_filter_files($files = array(), $prefix = '') {
+       $matches = array();
+       if (count($files)) {
+               foreach ($files as $file) {
+                       if (strpos($file, $prefix) !== false) {
+                               $matches[] = $file;
+                       }
+               }
+       }
+       return $matches;
+}
+
+function cfct_meta_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'meta-');
+       return apply_filters('cfct_meta_templates', $matches);
+}
+
+function cfct_cat_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'cat-');
+       return apply_filters('cfct_cat_templates', $matches);
+}
+
+function cfct_tag_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'tag-');
+       return apply_filters('cfct_tag_templates', $matches);
+}
+
+function cfct_author_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'author-');
+       return apply_filters('cfct_author_templates', $matches);
+}
+
+function cfct_type_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'type-');
+       return apply_filters('cfct_type_templates', $matches);
+}
+
+function cfct_role_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'role-');
+       return apply_filters('cfct_role_templates', $matches);
+}
+
+function cfct_parent_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'parent-');
+       return apply_filters('cfct_parent_templates', $matches);
+}
+
+function cfct_single_templates($dir, $files = null) {
+       if (is_null($files)) {
+               $files = cfct_files(CFCT_PATH.$dir);
+       }
+       $matches = cfct_filter_files($files, 'single');
+       return apply_filters('cfct_single_templates', $matches);
+}
+
+function cfct_comment_templates($type, $files = false) {
+       if (!$files) {
+               $files = cfct_files(CFCT_PATH.'comment');
+       }
+       $matches = array();
+       switch ($type) {
+               case 'user':
+                       $matches = cfct_filter_files($files, 'user-');
+                       break;
+               case 'role':
+                       $matches = cfct_filter_files($files, 'role-');
+                       break;
+       }
+       return apply_filters('cfct_comment_templates', $matches);
+}
+
+function cfct_cat_filename_to_id($file) {
+       $cat = cfct_cat_filename_to_slug($file);
+       $cat = get_category_by_slug($cat);
+       return $cat->cat_ID;
+}
+
+function cfct_cat_filename_to_name($file) {
+       $cat = cfct_cat_filename_to_slug($file);
+       $cat = get_category_by_slug($cat);
+       return $cat->name;
+}
+
+function cfct_cat_filename_to_slug($file) {
+       return str_replace(array('single-cat-', 'cat-', '.php'), '', $file);
+}
+
+function cfct_cat_id_to_slug($id) {
+       $cat = &get_category($id);
+       return $cat->slug;
+}
+
+function cfct_username_to_id($username) {
+       return get_profile('ID', $username);
+}
+
+function cfct_tag_filename_to_name($file) {
+       return str_replace(array('single-tag-', 'tag-', '.php'), '', $file);
+}
+
+function cfct_author_filename_to_name($file) {
+       return str_replace(array('single-author-', 'author-', '.php'), '', $file);
+}
+
+function cfct_role_filename_to_name($file) {
+       return str_replace(array('single-role-', 'role-', '.php'), '', $file);
+}
+
+function cfct_post_id_to_slug($id) {
+       $post = get_post($id);
+       return $post->post_name;
+}
+
+function cfct_basic_content_formatting($str) {
+       $str = wptexturize($str);
+       $str = convert_smilies($str);
+       $str = convert_chars($str);
+       $str = wpautop($str);
+       return $str;
+}
+
+function cfct_leading_dir($path) {
+       $val = array(
+               'dir' => '',
+               'file' => ''
+       );
+       if (strpos($path, '/') !== false) {
+               $parts = explode('/', $path);
+               $val['file'] = $parts[count($parts) - 1];
+               $val['dir'] = implode('/', array_slice($parts, 0, count($parts) - 1));
+       }
+       else {
+               $val['file'] = $path;
+       }
+       return $val;
+}
+
+?>
\ No newline at end of file
diff --git a/theme-blog.xenproject.org/carrington-blog/xen_logo_trans.gif b/theme-blog.xenproject.org/carrington-blog/xen_logo_trans.gif
new file mode 100644 (file)
index 0000000..1269e81
Binary files /dev/null and b/theme-blog.xenproject.org/carrington-blog/xen_logo_trans.gif differ