// JavaScript Document

var $av = {};

$av.section = function(){
		
		
		 var _sections = [
				['homepage',1],
				['business',2],
				['education',3],
				['employment',4],
				['food',5],
				['leisure',6],
				['property',7],
				['shopping',8],
				['tourism',9],
				['voluntary',10],
				['traffic',11],
				['events',12],
				['aylesbury',13],
				['buckingham',14],
				['leighton',15],
				['risborough',16],
				['thame',17],
				['tring',18],
				['wendover',19],
				['search',20]
			
		
		];
		
		function _getSection(){
			if(arguments.length===0) return;
			var input = arguments[0];
			var dimToTest = 0;
			if(typeof input === 'number') dimToTest = 1;
			if(dimToTest===0)input=input.toLowerCase();		
			
			for(var i=0;i<_sections.length;i++){
				if(input===_sections[i][dimToTest]){
					return {id: _sections[i][1], name:_sections[i][0]}	
				}
			}	
		}
		
		function _getById(){
			var id = arguments[0];
			for(var i=0;i<_sections.length;i++){
				if(id===_sections[i][1]){
					return {id: _sections[i][1], name:_sections[i][0]}	
				}
			}
		}
		
		function _getByName(){
			var name = arguments[0];
			for(var i=0;i<_sections.length;i++){
				if(name.toLowerCase()===_sections[i][0]){
					return {id: _sections[i][1], name:_sections[i][0]}	
				}
			}
		}
		
		return {	getByName : _getByName,
					getById : _getById,
					getSection : _getSection
				};
	
	}();


$av.adEngine = function(){
		
		var adList = [];
		
		var defaultOptions = {url:'getAds.asp',async:true, data: {}}
		
		
		var _getSiteBanners = function(){
			
			defaultOptions.data.type = 1; //Site Banners
			defaultOptions.success = function(data){
				$('siteBanners').append(_renderSiteBanners(data));
			}
		
			function _renderSiteBanners(data){
				var output = $('<div id=\'adsSiteBanners\'></div>');
				var _ads = eval(data);
				var _adList = [];
				for(var i=0;i<_ads.length;i++){
					output.append(new Advert(_ads[i]).render());
				}
				return output;
			
			}
		
		}
		
		
		var _getPageBanners = function(){
			
			defaultOptions.data.type = 2; //Page Banners
			defaultOptions.success = function(data){
				$('pageBanners').append(_renderPageBanners(data));
			}
			function _renderPageBanners(data){
				var output = $('<div id=\'adsPageBanners\'></div>');
				var _ads = eval(data);
				var _adList = [];
				for(var i=0;i<_ads.length;i++){
					output.append(new Advert(_ads[i]).render());
				}
				return output;
			}
			
		}
		
		
		//return random ad
		var _getBoxBanners = function(){
					
			defaultOptions.data.type = 2; //Page Banners
			defaultOptions.success = function(data){
				$('#right').append(_renderBoxBanners(data));
			}
			$.ajax(defaultOptions);
			
			function _renderBoxBanners(data){
				//var _adList = eval(data);
				var _adList = [];
				_adList.push(new Advert({id: 101 ,client: 545 , sectionId: 3 , altText: '' , type: '' , url: "http://www.aylesburyvale.net/side_banners/brillcomputers.gif" , position:'' }));
				_adList.push(new Advert({id: 102 ,client: 123 , sectionId:  3, altText: '' , type:'', url: "http://www.aylesburyvale.net/bans/ontimesys1.gif" , position:'' }));
				_adList.push(new Advert({id:  103 ,client: 874 , sectionId:3  , altText: '' , type:''  , url: "http://www.aylesburyvale.net/side_banners/smart_office_services_banner.gif" , position: ''}));
				_adList.push(new Advert({id: 104 ,client: 998 , sectionId: 3 , altText: '' , type:'', url: "http://www.aylesburyvale.net/side_banners/brillcomputers.gif" , position: ''}));
				_adList.push(new Advert({id: 105 ,client: 1001 , sectionId: 3 , altText: '' , type:''  , url: "http://www.aylesburyvale.net/bans/ontimesys1.gif" , position: ''}));
				
				var output = $('<div id=\'adsBoxBanners\'></div>');
				for(var i=0;i<_adList.length;i++){
					output.append(new Advert(_adList[i]).render());
				}
				return output;
			}
				
		}
		
		function _renderBoxBanners(data){
				//var _adList = eval(data);
				var _adList = [];
				_adList.push(new Advert({id: 101 ,client: 545 , sectionId: 3 , altText: '' , type: '' , url: "http://www.aylesburyvale.net/side_banners/brillcomputers.gif" , position:'' }));
				_adList.push(new Advert({id: 102 ,client: 123 , sectionId:  3, altText: '' , type:'', url: "http://www.aylesburyvale.net/bans/ontimesys1.gif" , position:'' }));
				_adList.push(new Advert({id:  103 ,client: 874 , sectionId:3  , altText: '' , type:''  , url: "http://www.aylesburyvale.net/side_banners/smart_office_services_banner.gif" , position: ''}));
				_adList.push(new Advert({id: 104 ,client: 998 , sectionId: 3 , altText: '' , type:'', url: "http://www.aylesburyvale.net/side_banners/brillcomputers.gif" , position: ''}));
				_adList.push(new Advert({id: 105 ,client: 1001 , sectionId: 3 , altText: '' , type:''  , url: "http://www.aylesburyvale.net/bans/ontimesys1.gif" , position: ''}));
				
				var output = $('<div id=\'adsBoxBanners\'></div>');
				for(var i=0;i<_adList.length;i++){
					output.append(new Advert(_adList[i]).render());
				}
				return output;
			}	
		
		return {
				
				getSiteBanners : _getSiteBanners,
				
				getPageBanners : _getPageBanners,
				
				getBoxBanners : _renderBoxBanners//_getBoxBanners
			
				}
	
	
	}();
	

//Signature List
//
function Advert(){
	var self = this;
	var obj = arguments[0];
	/*this.id = arguments[0];
	this.client = arguments[1];
	this.SectionId = arguments[2];
	this.altText = arguments[3];
	this.type = arguments[4]; //Only supports Image at the moment.  Could support flash or movies in the future.;
	this.url = arguments[5];
	this.position = arguments[6];*/
	
	for(p in obj){
		this[p] = obj[p];	
	}
	
	
	this.onShow = function(){
			//TODO save the view to the database;	
			/*var options = {};
			options.async = true;
			options.url = 'adview.asp';
			options.data = {advertId: self.id,sectionId: av.section.getSection()};
			options.success = function(){
					
			};
			options.error = function(XMLHttpRequest, textStatus, errorThrown){
				
			};
			$.ajax(options);*/
			$('#output').append(self.url+'<br />');
	}
	
	this.onClick = function(){
			//TODO save the click to the database;	
			/*var options = {};
			options.async = true;
			options.url = 'adclick.asp';
			options.data = {advertId: self.id,sectionId: av.section.getSection()};
			options.success = function(){
					
			};
			options.error = function(XMLHttpRequest, textStatus, errorThrown){
				
			};
			$.ajax(options);*/
			alert(self.url+ ' has been clicked');
	}
	
	this.render = function(){
		
		var $advert = $('<div id=\'adId'+ self.id + '\'></div>');
		var $img = $('<img src=\''+self.url+'\' target=\'_blank\' alt=\''+self.altText+'\' class=\'adImage\' />');
		
		$img.bind('click',function(){
			self.onClick();
		});
		
		$advert.append($img);
		
		self.onShow();
		if(arguments.length>0){
			$(arguments[0]).append($advert)
		}else{
			return $advert		
		}
		
		
	}
	
}
