/**
 * file:	class.Banner.js
 * class:	Banner
 * date:	01.01.2009
 *
 * @author beNNo
 * @copyright © 2009 All rights reserved.
 * @version 1.0.0
 */

if(typeof object == 'undefined') var object = new Object();

object.Banner = function() {
	this.data = [{ img:false, url:false, txt:false }]
	this.opts = { border:true, cols:4, margin:6, src:'./images/'}
}

object.Banner.prototype = {

	initialize:function(){
		for(var i=0,length=arguments.length; i<length; ++i)
			if(typeof arguments[i] == 'object')
				for(var key in arguments[i])
					if(key in this.opts)eval('this.opts.'+key+'=arguments[i].'+key);
			else
				for(var j=0,len=arguments[i].length; j<len; ++j)
					this.data[j] = arguments[i][j];
		this.preload();
	},

	create:function(){
		var count = this.data.length, counter = 0;

		if(count>0){
			var result = Math.ceil(count/this.opts.cols);
			var code  = '<div style="text-align: center;">';
				code += '<table cellspacing="'+this.opts.margin+'" cellpadding="0" style="width:auto;border:0;border-collapse:separate;border-spacing:'+this.opts.margin+'px;text-align:center;">';
			for(var i=1; i<=result; ++i){
				code += '<tr>';
				if(i<result)
					for(var j=1; j<=this.opts.cols; ++j){code += this.generate(counter);counter++;}
				else
					for(var j=1,l=(count-((result-1)*this.opts.cols)); j<=l; ++j){code += this.generate(counter);counter++;}
				code += '</tr>';
			}
			code += '</table>';
			code += '</div>';
			document.write(code);
		}
	},

	generate:function(){
		var data = this.data[arguments[0]];
		var code  = '<td style="padding:0;text-align:center;">';
			code += this.opts.border ?'<div style="border: 2px solid #999;" onmouseover="this.style.borderColor = \'#333\';" onmouseout="this.style.borderColor = \'#999\';">':'<div>';
			code += '<a href="'+data.url+'" title="'+data.txt+'" style="color:#000;background-color:transparent;text-decoration:none;" target="_blank">';
			code += '<img src="'+this.opts.src+data.img+'" alt="'+data.txt+'" title="'+data.txt+'" style="display:block;width:177px;height:189px;border:0;" />';
			code += '</a></div></td>';
		return code;
	},

	preload:function(){
		for(var i=0,l=this.data.length; i<l; ++i) {
			var image = new Image();
			image.src = this.opts.src+this.data[i].img;
		}
	}
}

var Banner = new object.Banner();