
window.addEvent('domready', function() 
{ 
	CONTROLLER = new Controller();
});


var Controller = new Class({

	initialize: function()
	{
		$$('body .ttfLink').each(function(e){new ttfLink(e)});
		$$('body .ttfText').each(function(e){new ttfText(e)});	
		
		LB = new lb($('lb'), PATH.root + PATH.site + 'lb/');

		$$('#content .makeTip').each(function(element,index) 
		{  
			var content = element.get('title').split('::');  
			element.store('tip:title', content[0]);  
			element.store('tip:text', content[1]);  
			var t =  new Tips(element,{className: 'doTip', fixed: false, hideDelay:0, showDelay: 500 });  
		}
		);    
		
		var obj = new Swiff(PATH.root + PATH.site + 'flash/logo.swf', {
		id: 'logo',
		container : $('swiffContainer'),
		width: 100,
		height: 261,
		params: {
			wmode: 'opaque',
			bgcolor: '#FFFFFF',
			allowscriptaccess: 'always', 
			allowfullscreen: 'true'
			}
		});
	},
	
	doAction: function(action, instance)
	{
		VO.action =  action;
		this.instance = instance;
		this.url = PATH.root + PATH.site + 'php/do.php';

		switch(action)
		{
			case 'switchAsset':
				instance.blur();
				VO.assetID = instance.rel;
				this.update = $('assetContainer');
				this.doRequest('html');
				break;
			case 'nextAsset':
				
				instance.blur();
				VO.assetID = instance.rel;
				this.update = $('assetContainer');
				this.doRequest('html');
				break;
			case 'openImage':
				instance.blur();
				
				var image = eval("(" + instance.get('ref') + ")");
				VO.imageFile = image.file;
				VO.assetID = image.assetID;
				
				var imageType = image.w > image.h ? 'landscape' : 'portrait';
				var viewSize = $(document.body).getSize();
				var screenType = viewSize.x > viewSize.y ? 'landscape' : 'portrait';
				switch(screenType)
				{
					case 'landscape':
					// means height shouls be used as reference
						if(image.h > (viewSize.y - 80))
						{
							var originalHeight = image.h;
							image.h = (viewSize.y - 80);
							var perc = image.h / originalHeight;
							image.w = Math.round(image.w * perc);
						}
						if(image.w.toInt() > viewSize.x - 40)
						{
							var originalWidth = image.w;
							image.w = (viewSize.x - 40);
							var perc = image.w / originalWidth;
							image.h = Math.round(image.h * perc);
						}
					break;
					case 'portrait':
					// means width shouls be used as reference
						if(image.w > (viewSize.x - 40))
						{
							var originalWidth = image.w;
							image.w = (viewSize.x - 40);
							//get percentage
							var perc = image.w / originalWidth;
							image.h = Math.round(image.h * perc);
						}
						if(image.h.toInt() > viewSize.y - 80)
						{
							var originalHeight = image.h;
							image.h = (viewSize.y - 80);
							var perc = image.h / originalHeight;
							image.w = Math.round(image.w * perc);
						}
					break;
				}				
				
				VO.imageWidth = image.w;
				VO.imageHeight = image.h;
				VO.imageType = screenType;
				
				var lbWidth = image.w.toInt() + 20; 
				
				LB.doLoad(VO, lbWidth);
				break;
			case 'initLB':
				LB.doPosition();
				$$('#lb .ttfText').each(function(e){new ttfText(e)});	
				break;
			case 'closeLB':
				LB.doClose();
				break;
			default:
				alert(action);
		}
	},
	
	afterRequest:function(rT, rE, rH, rJ)
	{
		VO.checkSession = false;

		switch(VO.action)
		{
			case 'switchAsset':
			break;
			case 'nextAsset':
			break;
			default:
			alert(rH);
		}
	},
	
	doRequest:function(type)
	{
		switch(type)
		{
			case 'html':
				new Request.HTML({url:this.url, update:this.update, data:VO, onComplete:function(rT, rE, rH, rJ){this.afterRequest(rT, rE, rH, rJ);}.bind(this) }).send();
				break;
			default:
				new Request({url:this.url, data:VO, onComplete:function(rT, rE){this.afterRequest(rT, rE);}.bind(this) }).send();
		}
	}
	
})