//ticker
function tickerRotation() {
 // options
 var scrollType = 'vertical'; // 'horizontal', 'vertical', 'none';

 // private
 var currentNumber = 0;
 var objWrap = null;
 var objContentBox = null;
 var objWrapLIs = null;
 var cellWidth = 0;
 var cellHeight = 0;
 this.GoodsSetTime = null;

 // scroll animation variables.
 var scroll = {time:1, start:0, change:0, duration:25, timer:null};
 var originaltime = scroll.time;

 this.setScrollType = function (type) {
     switch (type) {
         case 'vertical':
         case 'horizontal':
         case 'none':
             scrollType = type;
             break;
         default:
             alert('!');
             break;
     }
 }
 // constructor
 this.initialize = function () {
     objWrap = document.getElementById(this.wrapId);
     objContentBox = document.getElementById(this.listId);
     objWrapLIs = objWrap.getElementsByTagName('li');
     cellWidth = objWrapLIs[0].offsetWidth;
     cellHeight= objWrapLIs[0].offsetHeight;

     objWrap.style.overflow = 'hidden'; //

     switch (scrollType) {
         case 'vertical':
             this.objWrapSize = cellHeight * this.listNum;
             this.objSize = objWrapLIs.length * cellHeight;
             break;
         case 'none':
             this.objWrapSize = cellWidth * this.listNum;
             this.objSize = objWrapLIs.length * cellWidth;
             break;
         default:
             this.objWrapSize = cellWidth * this.listNum;
             this.objSize = objWrapLIs.length * cellWidth;
             break;
     }
     if (this.objWrapSize < this.objSize) {

         if (objWrapLIs.length > 0) {
             switch (scrollType) {
                 case 'vertical':
                     objContentBox.style.height = objWrapLIs.length * cellHeight + 'px';
                     objWrap.style.height = this.listNum * cellHeight + 'px';
                     break;
                 case 'none':
                     objContentBox.style.width = objWrapLIs.length * cellWidth + 'px';
                     objWrap.style.width = this.listNum * cellWidth + 'px';
                     break;
                 default:
                     objContentBox.style.width = objWrapLIs.length * cellWidth + 'px';
                     objWrap.style.width = this.listNum * cellWidth + 'px';
                     break;
             }
         }
       /*  if (this.btnPrev)
             document.getElementById(this.btnPrev).href = "javascript:" + this.objName + ".prev();";
         if (this.btnNext)
             document.getElementById(this.btnNext).href = "javascript:" + this.objName + ".next();";
         if (this.btnStop)
             document.getElementById(this.btnStop).href = "javascript:" + this.objName + ".stop();";
             */


         if (this.autoScroll == 'none') {
         } else {
             if (this.scrollDirection == 'direction') {
                 this.GoodsSetTime = setInterval(this.objName + ".next()", this.scrollGap);
             } else {
                 this.GoodsSetTime = setInterval(this.objName + ".prev()", this.scrollGap);
             }
         }
     }
 }

 this.next = function () {
     if (currentNumber == 0) {
         var objLastNode = objContentBox.removeChild(objContentBox.getElementsByTagName('li').item(objWrapLIs.length - 1));
         objContentBox.insertBefore(objLastNode, objContentBox.getElementsByTagName('li').item(0));
         switch (scrollType) {
             case 'vertical':
                 objWrap.scrollTop += cellHeight;
                 break;
             case 'none':
                 objWrap.scrollLeft += cellWidth;
                 break;
             default:
                 objWrap.scrollLeft += cellWidth;
                 break;
         }
         currentNumber++;
     }

     //objWrap.scrollLeft -= cellWidth;
     var position = getActionPoint('indirect');
     startScroll(position.start, position.end);

     currentNumber = currentNumber - 1;

     if (currentNumber > 0)
         currentNumber = 0;
     if (this.autoScroll == 'none') {
         // do nothing.
     } else {
         this.scrollDirection = 'direction';
         clearInterval(this.GoodsSetTime);
         this.GoodsSetTime = setInterval(this.objName + ".next()", this.scrollGap);
     }
 }

 this.prev = function () {
     if (currentNumber == objWrapLIs.length - 1) {
         var objLastNode = objContentBox.removeChild(objContentBox.getElementsByTagName('li').item(0));
         objContentBox.appendChild(objLastNode);
         switch (scrollType) {
             case 'vertical':
                 objWrap.scrollTop -= cellHeight;
                 break;
             case 'none':
                 objWrap.scrollLeft -= cellWidth;
                 break;
             default:
                 objWrap.scrollLeft -= cellWidth;
                 break;
         }
         currentNumber--;
     }

     //objWrap.scrollLeft += cellWidth;
     var position = getActionPoint('direct');
     startScroll(position.start, position.end);

     currentNumber = currentNumber + 1;

     if (currentNumber < objWrapLIs.length - 1)
         currentNumber = objWrapLIs.length - 1;
 
     if (this.autoScroll == 'none') {
         // do nothing.
     } else {
         this.scrollDirection = 'indirection';
         clearInterval(this.GoodsSetTime);
         this.GoodsSetTime = setInterval(this.objName + ".prev()", this.scrollGap);
     }
 }

 this.stop = function () {
     clearInterval(this.GoodsSetTime);
 }

 var startScroll = function (start, end) {
     if (scroll.timer != null) {
         clearInterval(scroll.timer);
         scroll.timer = null;
     }

     scroll.start = start;
     scroll.change = end - start;

     switch (scrollType) {
         case 'vertical':
             scroll.timer = setInterval(scrollVertical, 15);
             break;
         case 'none':
             objWrap.scrollLeft = end;
             break;
         default:
             scroll.timer = setInterval(scrollHorizontal, 15);
             break;
     }
 }

 var scrollVertical = function () {
     if (scroll.time > scroll.duration) {
         clearInterval(scroll.timer);
         scroll.time = originaltime;
         scroll.timer = null;
     } else {
         objWrap.scrollTop = sineInOut(scroll.time, scroll.start, scroll.change, scroll.duration);
         scroll.time++;
     }
 }

 var scrollHorizontal = function () {
     if (scroll.time > scroll.duration) {
         clearInterval(scroll.timer);
         scroll.time = originaltime;
         scroll.timer = null;
     } else {
         objWrap.scrollLeft = sineInOut(scroll.time, scroll.start, scroll.change, scroll.duration);
         scroll.time++;
     }
 }

 var getActionPoint = function (dir) {
     if (dir == 'direct') {
         var position = findElementPos(objWrap.getElementsByTagName('li').item(currentNumber + 1)); // target image.
         var offsetPos = findElementPos(objWrap.getElementsByTagName('li').item(currentNumber)); // first image.
     } else {
         var position = findElementPos(objWrap.getElementsByTagName('li').item(currentNumber - 1)); // target image.
         var offsetPos = findElementPos(objWrap.getElementsByTagName('li').item(currentNumber)); // first image.
     }

     switch (scrollType) {
         case 'vertical':
             var start = objWrap.scrollTop;
             var end = position[1] - offsetPos[1];
             break;
         case 'none':
             // do nothing.
             break;
         default:
             var start =  objWrap.scrollLeft;
             var end = position[0] - offsetPos[0];
             break;
     }

     var position = {start:0, end:0};
     position.start = start;
     position.end = end;

     return position;
 }

 var sineInOut = function (t, b, c, d) {
     return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
 }

 var findElementPos = function (elemFind) {
     var elemX = 0;
     var elemY = 0;
     do {
         elemX += elemFind.offsetLeft;
         elemY += elemFind.offsetTop;
     } while (elemFind = elemFind.offsetParent)

     return Array(elemX, elemY);
 }
}

try {document.execCommand('BackgroundImageCache', false, true);} catch(e) {} 


//photo
function changeImage(obj) {   
    var mainImage = document.getElementById("mainImage");
    mainImage.src = obj.src;  
} 

function initView(el_id, view_item_count, style) {     
    var menu = document.getElementById(el_id);     
    var menu_list = menu.getElementsByTagName('li');     
    var menu_count = menu_list.length;     
    style = (typeof(style) != 'undefined') ? style : 'block';      
    for(var i=0;i<menu_count;i++){         
        if(i<view_item_count) menu_list[i].style.display = style;         
        else menu_list[i].style.display = 'none';     
        } 
    }  

function moveList(direction, el_id, view_item_count, scroll_count, style) {
     var menu = document.getElementById(el_id);     
     var menu_list = menu.getElementsByTagName('li');     
     var menu_count = menu_list.length;     
     var start_no = 0;      
     style = (typeof(style) != 'undefined') ? style : 'block';      

     for(var i=0;i<menu_count;i++){         
        if(menu_list[i].style.display == style){             
            start_no = i;             
            break;         
        }     
    }          

    if(direction == 'next'){  
        if(menu_list[menu_count-1].style.display == style) return false;      
        else{            
            for(var i=0;i<menu_count;i++){ 
                if(i>=start_no + scroll_count && i<start_no + scroll_count + view_item_count){   
                    menu_list[i].style.display = style;                 
                }else{          
                    menu_list[i].style.display = 'none';      
                }             
            }        
        }     
    }else if(direction == 'prev'){
        if(menu_list[0].style.display == style) return false;
        else{             
            for(var i=0;i<menu_count;i++){ 
                if(i>=start_no - scroll_count && i<start_no - scroll_count + view_item_count){ 
                    menu_list[i].style.display = style;
                }else{
                    menu_list[i].style.display = 'none'; 
                    }
                }         
            }     
        }
} 



