
var base = {
  preventDefault: function(e){
    if(e.preventDefault){
      e.preventDefault();
    }
    else if(window.event){
	  window.event.returnValue = false;
	  
    }
  },
  addevent: function(node,evt,func){
	if(node.addEventListener){
		node.addEventListener(evt,func,false);	
	} else if(node.attachEvent){
		node.attachEvent("on"+evt,func);	
	}
  },
  bind: function(){
	var args=[];
    if(arguments){
      for(var i=0,n=arguments.length;i<n;i++){
        args.push(arguments[i]);
      }
    }

    var object=args.shift();
    var func=args.shift();

    return function(event) {
      return func.apply(object,[event||window.event].concat(args));
    }
  }
};

var Imagechange = function(elm){
  this.elm = elm;
  this.imgelm = this.getnode(this.elm,"DIV","gallery_wrapper");
  this.imgnodes = this.getnode(this.imgelm[0],"IMG","allnode");
  this.linknodes = this.getnode(this.imgelm[0],"A","thickbox");  
  this.nodes = this.getnode(this.elm,"UL","gallery");
  this.anodes = this.getnode(this.nodes[0],"A","allnode");
  this.smallimgnodes = this.getnode(this.nodes[0],"IMG","allnode");
  this.txtnode = this.getnode(this.elm,"P","imgcaption");
};

Imagechange.prototype = {
  changing: function(){
  for(var j=0,n=this.anodes.length;j<n;j++){
	  base.addevent(this.anodes[j],"click",base.bind(this,this.eventfunc,j));
    }
  },
  
  getnode: function(parent,tag,classname){
    var arr = [];
	var node = parent.getElementsByTagName(tag);

	if(classname == "allnode"){ return node };

	for(var i=0,n=node.length;i<n;i++){
	  var cname = node[i].className.split(" ");
	  if(cname[0] == classname){
          arr.push(node[i]);
      }
    }
	return arr;
  },
  
  eventfunc: function(e,num){
    this.txtchange(this.txtnode[0],this.anodes[num].title);
	this.attchange(num);
	base.preventDefault(e);
  },
  
  attchange: function(nodenum){
    var srcvalue = this.smallimgnodes[nodenum].src;
	srcvalue = srcvalue.split("/");
	srcvalue = srcvalue[srcvalue.length-1].split(".");

	//this.imgnodes[0].src = "image/" + srcvalue[0] + "a.jpg";
	this.imgnodes[1].src = "image/" + srcvalue[0] + "b.jpg";

	this.linknodes[0].title = this.anodes[nodenum].title;
	this.linknodes[0].href = "image/" + srcvalue[0] + "bb.jpg";
  },
  
  txtchange: function(node,txt){
	node.innerHTML = txt;
  }
};

(function(){
  base.addevent(window,"load",
    function(){
	  for(var i=1;i<4;i++){
	    var node = document.getElementById("gallery-"+i);
		if(node){
	      var imagechange = new Imagechange(node);
          imagechange.changing();
		} else {
		  break;
		}
	  }
	}
  );
})();
