/**
 * jQuery jqGalScroll Plugin
 * Examples and documentation at: http://benjaminsterling.com/jquery-jqgalscroll-photo-gallery/
 *
 * @author: Benjamin Sterling
 * @version: 2.1
 * @copyright (c) 2007 Benjamin Sterling, KenzoMedia
 * @extendThanks Koesmanto Bong http://www.koesbong.com/
 *    Koes put a fire under my butt to improve this plugin
 *    and when I took too long he took what I had and added
 *    the horizontal scroll and in turn I ripped it from his
 *    hands and made it better :)
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *   
 * @requires jQuery v1.2.1 or later
 * @optional jQuery Easing v1.2
 *
 * @name jqGalScroll
 * @example $('ul').jqGalScroll();
 * 
 * @Semantic requirements:
 *        The structure fairly simple; the structure should consist
 *        of a ul > li > img structure.
 * 
 *  <ul>
 *    <li><img src="common/img/dsc_0003.thumbnail.JPG"/></li>
 *    <li><img src="common/img/dsc_0012.thumbnail.JPG"/></li>
 *  </ul>
 *
 * @param String ease
 *          refer to http://gsgd.co.uk/sandbox/jquery.easing.php for values
 * 
 * @example $('#gallery').jqGalScroll({speed:1000});
 
 * @param String speed
 *          fast, slow, 1000, ext..
 * 
 * @example $('#gallery').jqGalScroll({speed:1000});
 * 
 * @param String height
 *          the default height of your wrapper
 * 
 * @example $('#gallery').jqGalScroll({height:490});
 * 
 * @param String titleOpacity
 *          the opacity of your title bar (if present)
 * 
 * @example $('#gallery').jqGalScroll({titleOpacity:.70});
 * 
 * @param String direction 
 *          vertical horizontal diagonal
 * 
 * @example $('#gallery').jqGalScroll({direction:'vertical'});
 *      
 */
(function($) {
  $.fn.jqGalScroll = function(options, imgArray, imgArrayOn, callBack){
    return this.each(function(i){    	
      var el = this
      el.curImage = 0;

      el.opts = $.extend({}, jqGalScroll, options);
      //if ( el.opts.position != "XX" ) {
    	  el.jqthis = $(this).css({position:'relative'});
      //} else {
    //	  el.jqthis = $(this);
     // }
      el.jqchildren = el.jqthis.children();

      el.index = i;
      el.totalChildren = el.jqchildren.size();
      var width,height;
      switch(el.opts.direction){
        case 'horizontal':
          width = el.totalChildren *el.opts.width;
          height = el.opts.height;
          break;
        case 'vertical':
          width = el.opts.width;
          height = el.totalChildren *el.opts.height;
          break;
        default:
          width = el.totalChildren *el.opts.width;
          height = el.totalChildren *el.opts.height;
          break;
      };
      
      el.container = $('<div id="jqGS'+i+'" class="jqGSContainer">').css({position:el.opts.position});
      el.ImgContainer = $('<div class="jqGSImgContainer" style="height:'+el.opts.height+'px;position:relative;overflow:hidden">')
                .css({height:el.opts.height,width:el.opts.width,position:'relative',overflow:'hidden'});
      el.jqthis.css({height:height,width:width});
      
      el.jqthis.wrap(el.container);
      el.jqthis.wrap(el.ImgContainer);
      el.pagination = $('<div class="jqGSPagination">');
      el.jqthis.parent().parent().append(el.pagination);
      var jqul = $('<ul>').appendTo(el.pagination);
      var pos = {x:0,y:0};
      
      el.jqchildren
      .each(function(j){    	  
        var selected = '';
        if(j == 0) selected = 'selected';
        
        var $a = $('<a href="#'+(j)+'" class="'+selected+'">'+imgArray[j]+'</a>').click(function(){
          var href = this.index;//href.replace(/^.*#/, '');
          el.pagination.find('.selected').removeClass('selected');
          $(this).addClass('selected');
          var params = {};
          if( el.opts.direction == 'diagonal'){
            params = {right:(el.opts.width*href),bottom:(el.opts.height*href)}
          }
          else if( el.opts.direction == 'vertical'){
            params = {bottom:(el.opts.height*href)}
          }
          else if( el.opts.direction == 'horizontal'){
            params = {right:(el.opts.width*href)}
          };
          
          el.jqthis.stop().animate(params,el.opts.speed, el.opts.ease);
          index = href;

          el.pagination.find('a').each( function() { $(this).html(imgArray[$(this).attr("href").replace(/^.*#/, '')]); });
          
          $(this).html(imgArrayOn[j]);
          
          return false;
        });

        var n = $a.get(0);

        n.index = j;

        $('<li>').appendTo(jqul).append($a);

        if( el.opts.direction == 'diagonal'){
          pos.x = j * el.opts.width;
          pos.y = j * el.opts.height;
        }
        else if( el.opts.direction == 'horizontal'){
          pos.x = j * el.opts.width;
        }
        else if( el.opts.direction == 'vertical'){
          pos.y = j * el.opts.height;
        };

        var jqchild = $(this).css({height:el.opts.height,width:el.opts.width,position:'absolute',left:pos.x, top:pos.y});

        var jqimg = jqchild.find('img').hide()
        
        if(jqimg.parent().is('a')){
          var p = jqimg.parent();
          jqimg.get(0).linkHref = p.attr('href');
          if (p.attr('href').indexOf("http") > -1 ) {
        	  p.attr("target", "new");
          }
          //p.remove();
          //jqimg.appendTo(jqchild);
        };

        jqimg.click(function(){
          /*
          var next = n.index + 1;
          if((n.index + 1) == el.totalChildren ){
            el.pagination.find('[href$=#0]').click();
          }
          else{
            el.pagination.find('[href$=#'+next+']').click();
          }
          */
        });

        var $loader = $('<div class="jqGSLoader">').appendTo(jqchild);
        var $titleHolder = $('<div class="jqGSTitle">').appendTo(jqchild).css({opacity:el.opts.titleOpacity}).hide();
        var image = new Image();
        image.onload = function(){
          image.onload = null;
          $loader.fadeOut();
          //jqimg.css({marginLeft:-image.width*.5,marginTop:-image.height*.5,position:'absolute',left:'50%',top:'50%'}).fadeIn();
          jqimg.css({marginLeft:-el.opts.width*.5,marginTop:-el.opts.height*.5,position:'absolute',left:'50%',top:'50%'}).fadeIn();
          var alt = jqimg.attr('alt');
          if(typeof alt != 'undefined'){
            $titleHolder.text(alt).fadeIn();
          }
        };
        image.src = jqimg.attr('src');
      });
      $(".jqGSPagination>ul>li:nth-child(1)>a").click();
      timer1();
    } ); // end : this.each(function()

  };  // end : $.fn.jqGalScroll

  jqGalScroll = {
    ease: null,
    speed:1000,
    height: 'auto',
    width: 'auto',
    titleOpacity : .0, // title을 사용할 것이라면 .60정도로 준다.
    direction : 'horizontal', // vertical horizontal diagonal
    position : 'relative'	
  };

})(jQuery);

//var iOrder = 2;
	function cl() {
		if ( $(".selected").attr("href") ) {
			var iOrder = $(".selected").attr("href").replace(/^.*#/, '');
			
			if ( parseInt(iOrder) + 2 > $(".jqGSPagination>ul>li").length ) {
				iOrder = -1;
			} 
			$(".jqGSPagination>ul>li:nth-child("+(parseInt(iOrder)+2)+")>a").click();
		}
	}     
	function timer1() {
	  	setInterval("cl()", 5000);
	}