/*----------------------------------------------------------------------
  iconMover.js
  ------------
  機能 : アイコンのクラス名から移動先を判別し移動する
  備考 : jQuery必須
  ----------------------------------------------------------------------*/
jQuery(function(){
      /*--------------------------------------------------
        初期設定
        --------------------------------------------------*/
        var sResultsClassName = "search-result-list";//{{{
        var sIconClassName = "icon";
        var sTmpIconClassName = "tmp_icon";

        var sTmpDivArray = new Array("title_area",
                                     "body_area",
                                     "uri_area",
                                     "image_area",
                                     "date_area");//}}}

      /*--------------------------------------------------
        そのままinsertAfter / prependTo すると位置が
        入れ変わってしまうので、アイコン一時保存場所作成
        --------------------------------------------------*/
        var sTmpDivHtml = '<div class="'+sTmpIconClassName+'">';//{{{
        for (var i=0; i<sTmpDivArray.length; i++) {
            sTmpDivHtml += '<div class="tmp_'+ sTmpDivArray[i] +'_top"></div>';
            sTmpDivHtml += '<div class="tmp_'+ sTmpDivArray[i] +'_bottom"></div>';
            sTmpDivHtml += '<div class="tmp_'+ sTmpDivArray[i] +'_left"></div>';
            sTmpDivHtml += '<div class="tmp_'+ sTmpDivArray[i] +'_right"></div>';
        }
        sTmpDivHtml += '</div>';

        // 一時保存場所を設置
        jQuery("."+ sResultsClassName).each(function(){
            this.innerHTML += sTmpDivHtml;
        });//}}}

      /*--------------------------------------------------
        アイコンを一時保存場所に移動
        --------------------------------------------------*/
        jQuery("."+ sIconClassName +" div").each(function(){//{{{
            // class名から移動先取得
            var sThisClass = jQuery(this).attr("class");
            var sTempArray   = sThisClass.match(/^([^_]+_[^_]+)_([^_]*)$/);
            var sTargetClass = sTempArray[1];
            var sTargetPosition = sTempArray[2];

            // 一時保存場所に移動
            if (sTargetPosition == "top" || sTargetPosition == "right") {
                jQuery(this).appendTo(jQuery(this).parent().siblings().filter("div."+ sTmpIconClassName).children(".tmp_" + sThisClass));
            } else {
                jQuery(this).prependTo(jQuery(this).parent().siblings().filter("div."+ sTmpIconClassName).children(".tmp_" + sThisClass));
            }
        });//}}}

      /*--------------------------------------------------
        一時保存場所から移動
        --------------------------------------------------*/
        jQuery("."+ sTmpIconClassName +" > div").each(function(){//{{{
                var sThisClass = jQuery(this).attr("class");
                var sTempArray   = sThisClass.match(/^tmp_([^_]+_[^_]+)_([^_]*)$/);
                var sTargetClass = sTempArray[1];
                /*
                if        (sTargetClass = "title_area") {
                    sTargetClass = "search-result-title";
                } else if (sTargetClass = "body_area") {
                    sTargetClass = "search-result-txt";
                } else if (sTargetClass = "uri_area") {
                    sTargetClass = "search-result-link";
                } else if (sTargetClass = "image_area") {
                    sTargetClass = "search-result-thum";
                }
                */
                var sTargetPosition = sTempArray[2];

                if (sTargetPosition == "top") {
                    jQuery(this).children("div").insertBefore(jQuery(this).parent().siblings("." + sTargetClass)).addClass("target_style");
                } else if (sTargetPosition == "bottom") {
                    jQuery(this).children("div").insertAfter(jQuery(this).parent().siblings(".search-result-txt")).addClass("search-result-txt");
                } else if (sTargetPosition == "right") {
                    jQuery(this).children("div").appendTo(jQuery(this).parent().siblings(".search-result-title")).addClass("target_style").css("display","inline");
                } else if (sTargetPosition == "left") {
                    jQuery(this).children("div").prependTo(jQuery(this).parent().siblings("." + sTargetClass)).addClass("target_style");
                }
        });//}}}

      /*--------------------------------------------------
        不要div削除
        --------------------------------------------------*/
        // アイコン格納div削除//{{{
        jQuery("."+ sIconClassName).remove();

        // アイコン一時保存場所削除
        jQuery("."+ sTmpIconClassName).remove();//}}}
 });
// vim: set syntax=javascript fdm=marker:

