var ads = {
	crawl : function() {
		jQuery("div[class=banner]").each(function(i, elm) {
			(function(obj) {
					jQuery.ajax({
						dataType:'json', 
						url:"/site/ad/index.php",
						data:{
							'id':jQuery(obj).attr('rel')
						},
						success:function(json) {
							switch (json['category']) {
							case 'flash':
							case 'image':
								json['codebase'] = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0';
								json['src'] = '/site/ad/ads';
								json['wmode'] = 'transparent';
								json['scale'] = 'noscale';
								json['quality'] = 'best';
								json['pluginspage'] = 'http://www.macromedia.com/go/getflashplayer';
								json['movie'] = '/site/ad/ads';
								var ret = ads.getArgs(
									json, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",
									"application/x-shockwave-flash"
								);
								jQuery(obj).html(ads.generate(ret.objAttrs, ret.params, ret.embedAttrs));
								jQuery(obj)
									.height(json['height']+'px')
									.css("background", "#000");
								
								break;
								
							case 'text':
								jQuery(obj).html(json['html']);
								
								break;
							}
						}
					});
			})(elm);
		});
	},
	
	getArgs : function(args, ext, srcParamName, classid, mimeType) {
		var ret = new Object();
		ret.embedAttrs = new Object();
		ret.params = new Object();
		ret.objAttrs = new Object();
		jQuery.each(args, function(key, value) {
			var currArg = key.toLowerCase();

			switch (currArg){	
				case "classid":
					break;
				case "pluginspage":
					ret.embedAttrs[key] = value;
					break;
				case "src":
				case "movie":	
					value = AC_AddExtension(value, ext);
					ret.embedAttrs["src"] = value;
					ret.params[srcParamName] = value;
					break;
				case "onafterupdate":
				case "onbeforeupdate":
				case "onblur":
				case "oncellchange":
				case "onclick":
				case "ondblClick":
				case "ondrag":
				case "ondragend":
				case "ondragenter":
				case "ondragleave":
				case "ondragover":
				case "ondrop":
				case "onfinish":
				case "onfocus":
				case "onhelp":
				case "onmousedown":
				case "onmouseup":
				case "onmouseover":
				case "onmousemove":
				case "onmouseout":
				case "onkeypress":
				case "onkeydown":
				case "onkeyup":
				case "onload":
				case "onlosecapture":
				case "onpropertychange":
				case "onreadystatechange":
				case "onrowsdelete":
				case "onrowenter":
				case "onrowexit":
				case "onrowsinserted":
				case "onstart":
				case "onscroll":
				case "onbeforeeditfocus":
				case "onactivate":
				case "onbeforedeactivate":
				case "ondeactivate":
				case "type":
				case "codebase":
					ret.objAttrs[key] = value;
					break;
				case "width":
				case "height":
				case "align":
				case "vspace": 
				case "hspace":
				case "class":
				case "title":
				case "accesskey":
				case "name":
				case "id":
				case "tabindex":
					ret.embedAttrs[key] = ret.objAttrs[key] = value;
					break;
				default:
					ret.embedAttrs[key] = ret.params[key] = value;
			}
		});
		ret.objAttrs["classid"] = classid;
		if (mimeType) ret.embedAttrs["type"] = mimeType;
		return ret;
	},
	
	generate : function(objAttrs, params, embedAttrs) { 
		var str = '<object ';
		for (var i in objAttrs)
			str += i + '="' + objAttrs[i] + '" ';
		str += '>';
		for (var i in params)
			str += '<param name="' + i + '" value="' + params[i] + '" /> ';
		str += '<embed ';
		for (var i in embedAttrs)
			str += i + '="' + embedAttrs[i] + '" ';
		str += ' ></embed></object>';
		
		return str;
	}
};
jQuery(document).ready(function() {
	ads.crawl();
});
