var Ads = new Class({
	
	options: {
		ads_type:		'wdjz',
		ads_num:		3,
		ads_packages:	[1,2],
		ads_text:		'Ads by Wonen-Doe-Je-Zo.nl',
		ads_class:		'',
		ads_max_width:	'',
		ads_img_width:	102,
		ads_regio:		0,
		ads_show_links: true,
		onShow:			Class.empty,
		onZero:			Class.empty
	},
	
	initialize: function(element, options){
		this.setOptions(options);
		
		this.ads	= {};
		this.count	= 0;
		
		if(this.check_options()){
			document.write('<div id="' + element + '" class="wdjz_ads"></div>');
			
			window.addEvent('load', function(){
				this.element = $(element);
				
				this.load_css();
			}.bind(this));
		}
	},
	
	check_options: function(){
		return ($type(this.options.ads_type)!==false && $type(this.options.ads_num)!==false && $type(this.options.ads_packages)!==false?true:false);
	},
	
	load_css: function(){
		if(!$E('link[href$=ads.css]')){
			new Asset.css('http://www.starcq.nl/modules/ads/css/ads.css', {
				type: 'text/css',
				rel: 'stylesheet',
				media: 'all'
			});
		}
		
		this.request_ads();
	},
	
	request_ads: function(){
		var get_ads = new XHR({
			method: 'post',
			onSuccess: function(responseText){
				this.ads = Json.evaluate(responseText);
				
				if(this.ads.length>0){
					this.handle_ads();
				}else{
					this.fireEvent('onZero');
				}
			}.bind(this)
		}).send('http://www.starcq.nl/modules/ads/requests/' + this.options.ads_type + '.php', 'pakketten=' + this.options.ads_packages.join() + 
																							   '&limiet=' + (this.options.ads_num*2) + 
																							   '&regio=' + this.options.ads_regio);
		get_ads = null;
	},
	
	handle_ads: function(){
		var wdjz_ad = new Element('div', {
			'class': 'wdjz_ad'
		});
		if(this.options.ads_class!==''){
			wdjz_ad.addClass(this.options.ads_class);
		}
		var wdjz_spacer = new Element('div', {
			'class': 'wdjz_spacer'
		})
		var wdjz_image = new Element('div', {
			'class': 'wdjz_image'
		});
		var wdjz_text = new Element('div', {
			'class': 'wdjz_text'
		});
		var wdjz_clear = new Element('div', {
			'class': 'wdjz_clear'
		});
		
		this.ads.each(function(ad){
			if(this.count<this.options.ads_num){
				if(this.options.ads_packages.contains(ad.ad_package.toInt())){
					if(this.options.ads_type=='zoekeenadvocaat'||this.options.ads_type=='testnet'){
						this.count++;
						
						if(this.count==1 && this.options.ads_text!==''){
							new Element('h1').setText(this.options.ads_text).injectInside(this.element);
						}
						
						var ahref = new Element('a', {
							href: (/^http:\/\//i.test(ad.ad_url_hidden)?ad.ad_url_hidden:'/url/' + ad.ad_url_hidden),
							target: '_blank'
						});
						
						var ad_tmp = wdjz_ad.clone().injectInside(this.element);
						
						if(ad.ad_image!==''){
							var ahref_tmp = ahref.clone().injectInside(ad_tmp);
							
							var img = new Element('img', {
								src: ad.ad_image,
								alt: ad.ad_title
							}).injectInside(ahref_tmp);
							
							if(this.options.ads_max_width!==''){
								img.setStyles({
									'width': this.options.ads_max_width+'px'
								});
							}
						}
						
						wdjz_clear.clone().injectAfter(img);
						
						ahref = null;
						ad_tmp = null;
						ahref_tmp = null;
						img = null;
						
					}else{
						// normaal
						if(ad.ad_title!=='' || ad.ad_line_1!=='' || ad.ad_line_2!==''){
							this.count++;
							
							if(this.count==1 && this.options.ads_text!==''){
								if(this.options.ads_class=='hypotheek'){
									new Element('h1').setText(this.options.ads_text).injectInside(this.element);
								}else{
									new Element('small').setText(this.options.ads_text).injectInside(this.element);
								}
							}
							
							var ahref = new Element('a', {
								href: (/^http:\/\//i.test(ad.ad_url_hidden)?ad.ad_url_hidden:'/url/' + ad.ad_url_hidden),
								target: '_blank'
							});
							
							var ad_tmp = wdjz_ad.clone().injectInside(this.element);
							var im_tmp = wdjz_image.clone().injectInside(ad_tmp);
							
							if(ad.ad_image!==''){
								var ahref_tmp = (this.options.ads_show_links?ahref.clone().injectInside(im_tmp):im_tmp);
								
								var img = new Element('img', {
									src: ad.ad_image,
									alt: ad.ad_title
								}).injectInside(ahref_tmp);
							}
							
							if(this.options.ads_show_links){
								var tx_tmp = wdjz_text.clone().setHTML('<h3><a href="' + (/^http:\/\//i.test(ad.ad_url_hidden)?ad.ad_url_hidden:'/url/' + ad.ad_url_hidden) + '" target="_blank">' + ad.ad_title + '</a></h3>' + 
																	   (ad.ad_line_1!==''?ad.ad_line_1 + '<br/>':'') + 
																	   (ad.ad_line_2!==''?ad.ad_line_2 + '<br/>':'') + 
																	   '<cite>' + ad.ad_url_visible + '</cite>').injectInside(ad_tmp);
							}else{
								var tx_tmp = wdjz_text.clone().setHTML('<h3>' + ad.ad_title + '</h3>' + 
																	   (ad.ad_line_1!==''?ad.ad_line_1 + '<br/>':'') + 
																	   (ad.ad_line_2!==''?ad.ad_line_2 + '<br/>':'')).injectInside(ad_tmp);
							}
							wdjz_clear.clone().injectAfter(tx_tmp);
							
							ahref = null;
							ad_tmp = null;
							im_tmp = null;
							ahref_tmp = null;
							img = null;
							tx_tmp = null;
						}
					}
				}
			}
		}.bind(this));
		
		wdjz_clear.clone().injectInside(this.element);
		
		
		// afmetingen instellen
		this.ads_width = (this.options.ads_max_width==''?this.element.getSize().size.x.toInt():this.options.ads_max_width);
		this.element.getElements('div.wdjz_text').setStyle('width', (this.ads_width-this.options.ads_img_width) + 'px');// 88px img width + 2px padding + 2px border + 10px margin
		
		this.fireEvent('onShow');
		
		wdjz_ad	= null;
		wdjz_image = null;
		wdjz_text = null;
		wdjz_clear = null;
	}
	
});
Ads.implement(new Options);
Ads.implement(new Events);
