var DGController = { 
	init:	function() {
		//wire up the singles and display dialog
		this.singleThumbs = $$('#content .singleThumb');
		this.singleDialog = null;

		if(!this.singleDialog) {
            this.singleDialog = new Ext.BasicDialog("singleDialog", { 
                    autoTabs:false,
                    autoCreate: true,
                    modal: false,
                    width:900,
                    height:900,
                    shadow:false,
                    proxyDrag: true,
                    title: 'www.drewgodleski.com',
                    collapsible: false,
                    fixedcenter: true,
                    resizable: false
            });
            this.singleDialog.addListener('beforehide', this.resetDialog, this);
            this.singleDialog.addKeyListener(27, this.singleDialog.hide, this.singleDialog);
			
			this.dlgContent = document.createElement('iframe');
			this.dlgContent.name = 'dlgContent';
			this.dlgContent.src = 'resources/HTML/single.html'; //preload and cache this
			this.dlgContent.id = 'dlgContent';
			$(DGController.singleDialog.body.id).appendChild(this.dlgContent);			
            //dialog.addButton('Submit', dialog.hide, dialog).disable();
            //dialog.addButton('Close', dialog.hide, dialog);
            
        }	
	
		this.imageCache = new Array();

		for (i=0; i<this.singleThumbs.length; i++) {
			Event.observe(this.singleThumbs[i], 'click', this.showThumb, false);
			this.imageCache[i+1] = new Image();
			this.imageCache[i+1].src = 'resources/images/singles/' + (i + 1) + '.jpg';
		}
		
		//wire up the toolbar
		
		this.tb = new Ext.Toolbar('nav');
		this.tb.add(
			{
				cls: 'x-btn-text bmenu',
				text: 'Multimedia',
				menu: {
					items: [
						{text: 'Motocross', handler: DGController.motocrossClick},
						{text: 'Senior Prom', handler: DGController.srPromClick}	
					]
					
				}
			},
			'-',
			{
				cls: 'x-btn-text bmenu',
				text: 'Resume',
				handler: DGController.resumeClick
			},
			'-',
			{
				cls: 'x-btn-text bmenu',
				text: 'Biography',
				handler: DGController.bioClick
			}
		);
		
		
		
	},
	
	
	resetDialog: function(el) {
		DGController.dlgContent.src = 'resources/HTML/nothing.html';
	},
	
	showThumb: function(evt) {
		Event.stop(evt);

        var eEvtSrc = Event.element(evt);
        var sImgNum = eEvtSrc.id.split('_').last();
		var oImgRef = DGController.imageCache[sImgNum];
		DGController.dlgContent.src = 'resources/HTML/' + sImgNum + '.html';
		//var eImgTbl = frames['dlgContent'].document.getElementById('singleImageTable');
		//eImgTbl.style.display = 'block';
		//eImgTbl.style.border = "1px solid red";
		
		//var eTD = frames['dlgContent'].document.getElementById('singleImageTD');


		//if(eTD.firstChild) { //there may not be an image appended yet to remove
		//	Element.remove(eTD.firstChild);
		//}
		//make the new node
		//var oImg = document.createElement('img');
		//var oImg = new Image();
		//oImg.src = oImgRef.src;
		//oImg.height = oImgRef.height;
		//oImg.width = oImgRef.width;

		//frames['dlgContent'].document.getElementById('singleImageTD').innerHTML = '<img src="' + oImgRef.src + '"/>';

		//alert(oImg.width + ' ' + oImg.height);
		DGController.dlgContent.width = oImgRef.width+30;
		DGController.dlgContent.height = oImgRef.height+30;
		DGController.singleDialog.setContentSize(oImgRef.width+30, oImgRef.height + 30);		
        DGController.singleDialog.show(eEvtSrc);
		DGController.singleDialog.center();
		//alert(frames['dlgContent'].document.getElementById('singleImageTD').innerHTML);
	},
	
	setDialogForOtherContent: function() {
		DGController.singleDialog.setContentSize(580, 400);
		$(DGController.singleDialog.body.id).style.backgroundColor = "#FFF";
		DGController.dlgContent.width = 580;
		DGController.dlgContent.height = 380;
	},
	
	setDialogForMultimedia: function() {
		$(DGController.singleDialog.body.id).style.backgroundColor = "#000";
		DGController.singleDialog.setContentSize(660, 500);
		DGController.dlgContent.width = 660;
		DGController.dlgContent.height = 500;			

	},
	
	motocrossClick: function(btn) {
		DGController.setDialogForMultimedia();
	
		DGController.dlgContent.src = 'resources/HTML/motocross.html';
		DGController.singleDialog.show(btn.getEl());
		DGController.singleDialog.center();
	},
	srPromClick: function(btn) {
		DGController.setDialogForMultimedia();
	
		DGController.dlgContent.src = 'resources/HTML/srprom.html';
		DGController.singleDialog.show(btn.getEl());
		DGController.singleDialog.center();
	},
	resumeClick: function(btn) {
		DGController.setDialogForOtherContent();
		DGController.dlgContent.src = 'resources/HTML/resume.html';

		DGController.singleDialog.show(btn.getEl());
		DGController.singleDialog.center();
	},
	bioClick: function(btn) {
		DGController.setDialogForOtherContent();
		DGController.dlgContent.src = 'resources/HTML/bio.html';
		DGController.singleDialog.show(btn.getEl());
		DGController.singleDialog.center();
	}
}

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

Ext.onReady(DGController.init, DGController, true);
Ext.onReady(BrowserDetect.init, BrowserDetect, true);
