
//namespace
YAHOO.namespace ("yjkids_cat");

//zoom
//YAHOO.util.Event.addListener(window,"load",YAHOO.yjkids_cat.setup);

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

//var imgObj;
//var zoomElem;
//var move_counter=0;

YAHOO.yjkids_cat.imgObj = null;
YAHOO.yjkids_cat.zoomElem = null;
YAHOO.yjkids_cat.move_counter = 0;

YAHOO.yjkids_cat.setup = function(){

    //get element
    var elemList = YAHOO.util.Dom.getElementsByClassName('thumbnail','img');

    for(var cnt=0;cnt<elemList.length;cnt++){
        var elem = elemList[cnt];
        elem.newsrc = elem.src.replace('_70.jpg','_200.jpg');
        YAHOO.util.Event.addListener(elem,'mouseover',YAHOO.yjkids_cat.mouseOver);
        YAHOO.util.Event.addListener(elem,'mouseout',YAHOO.yjkids_cat.mouseOut);
        YAHOO.util.Event.addListener(elem,'mousemove',YAHOO.yjkids_cat.mouseMove);
    }
    YAHOO.yjkids_cat.zoomElem = YAHOO.util.Dom.get('zoom');

}

YAHOO.yjkids_cat.mouseMoveZoom = function(e){

    if(YAHOO.yjkids_cat.imgObj == null){
        return;
    }

    YAHOO.yjkids_cat.mouseMove(e);

    //imgObjの位置内か調べる。
    var zoomElem   = YAHOO.util.Event.getTarget(e);
    var region = YAHOO.util.Dom.getRegion(YAHOO.yjkids_cat.imgObj);

    var now_x = YAHOO.util.Event.getPageX(e);
    var now_y = YAHOO.util.Event.getPageY(e);

    if( (now_x > region.left && now_x < region.right) && ( now_y > region.top && now_y < region.bottom )){
        return;
    }else{
        YAHOO.util.Event.addListener(YAHOO.yjkids_cat.imgObj,'mouseover',YAHOO.yjkids_cat.mouseOver);
        YAHOO.util.Dom.get('zoom').innerHTML='';
        YAHOO.util.Dom.setStyle('zoom','visibility','hidden');
        YAHOO.yjkids_cat.imgObj = null;
    }
}

// zoomを表示
YAHOO.yjkids_cat.mouseOver = function(e){

    //イベントの対象になっているオブジェクトを取得する
    var elem = YAHOO.util.Event.getTarget(e);
    YAHOO.yjkids_cat.imgObj = elem;

    ////var zoomElem = YAHOO.util.Dom.get('zoom');

    YAHOO.util.Event.removeListener(elem,'mouseover',YAHOO.yjkids_cat.mouseOver);

    YAHOO.util.Dom.setStyle(YAHOO.yjkids_cat.zoomElem,'width','224');
    YAHOO.util.Dom.setStyle(YAHOO.yjkids_cat.zoomElem,'height','254');

    //if(YAHOO.yjkids_cat.opacity_flag == 1){
    //    YAHOO.util.Dom.setStyle(YAHOO.yjkids_cat.zoomElem,'opacity','0.3');
    //}

    YAHOO.yjkids_cat.zoomElem.innerHTML='<div id="thumb_bg"><img id="large_thumb_img" src="'+elem.newsrc+'" border="0"></div>';
    YAHOO.util.Event.addListener('large_thumb_img','load',YAHOO.yjkids_cat.onLoadImg);
    YAHOO.util.Dom.setStyle(YAHOO.yjkids_cat.zoomElem,'visibility','visible');
    YAHOO.util.Event.addListener(YAHOO.yjkids_cat.zoomElem,'mousemove',YAHOO.yjkids_cat.mouseMoveZoom);

    //if(YAHOO.yjkids_cat.opacity_flag == 1){
    //    boxObj = new YAHOO.util.Anim(YAHOO.yjkids_cat.zoomElem,{opacity:{from:0.3,to:1}},0.3);
    //    boxObj.animate();
    //}
    YAHOO.yjkids_cat.mouseMove2(e);

}

YAHOO.yjkids_cat.onLoadImg = function(e){
    YAHOO.util.Dom.setStyle("large_thumb_img","z-index","200");
}


// zoomを消す
YAHOO.yjkids_cat.mouseOut = function(e){

//    mouseMove(e);

    var elem   = YAHOO.util.Event.getTarget(e);
    var region = YAHOO.util.Dom.getRegion(elem);

    var targetElem = YAHOO.util.Event.getRelatedTarget(e);

    var now_x = YAHOO.util.Event.getPageX(e);
    var now_y = YAHOO.util.Event.getPageY(e);

    if( (now_x > region.left && now_x < region.right) && ( now_y > region.top && now_y < region.bottom )){
//        mouseMove(e);
        return;
    }

    YAHOO.util.Event.addListener(elem,'mouseover',YAHOO.yjkids_cat.mouseOver);

    //var zoomElem = YAHOO.util.Dom.get('zoom');
    YAHOO.yjkids_cat.zoomElem.innerHTML='';
    YAHOO.util.Dom.setStyle(YAHOO.yjkids_cat.zoomElem,'visibility','hidden');
    YAHOO.util.Event.addListener(elem,'mouseover',YAHOO.yjkids_cat.mouseOver);

    YAHOO.yjkids_cat.imgObj = null;
}

YAHOO.yjkids_cat.mouseMove = function(e){

    if(YAHOO.yjkids_cat.move_counter < 5){
        YAHOO.yjkids_cat.move_counter++;
        return;
    }else{
        YAHOO.yjkids_cat.move_counter=0;
    }
    YAHOO.yjkids_cat.mouseMove2(e);
}

// zoomの移動
YAHOO.yjkids_cat.mouseMove2 = function(e){
 
    //zoomが空だったらmouseOverイベントの発生
    //var zoomElem = YAHOO.util.Dom.get('zoom');
    if( YAHOO.yjkids_cat.zoomElem.innerHTML == ''){
        YAHOO.yjkids_cat.mouseOver(e);
        return;
    }


    var newX = YAHOO.util.Event.getPageX(e) -222 ;
    var newY = YAHOO.util.Event.getPageY(e) -258 ;

    YAHOO.util.Dom.setX(YAHOO.yjkids_cat.zoomElem,newX);
    YAHOO.util.Dom.setY(YAHOO.yjkids_cat.zoomElem,newY);
}

//zoom
YAHOO.util.Event.addListener(window,"load",YAHOO.yjkids_cat.setup);


