if (!window.Nagi)
	Nagi = function () {
		return {
			logo: {},
			pics: {},
			profile: {}
		};
	};

if (!window.Nagi.logo)
	Nagi.logo = {
		// vars
		'a': '',
		'img': '',
		'href': 'http://www.nagi.ee/',
		'src': 'http://www.nagi.ee/images/nagi/nagilogo.gif',
		'alt': 'Nagi',

		setA: function (val) {
			Nagi.logo.a = val;	
		},
		setImg: function (val) {
			Nagi.logo.img = val;	
		},
		show: function () {
			tmp = '<a href="'+Nagi.logo.href+'" id="NagiLink" '+Nagi.logo.a+'><img src="'+Nagi.logo.src+'" id="NagiLogo" alt="'+Nagi.logo.alt+'" border="0"' +Nagi.logo.img+' width="74" height="30" /></a>';
			document.write(tmp);
		}
	};


if (!window.Nagi.profile)
	Nagi.profile = {
		//vars
		'fname': 'Janek',
		'lname': 'Hiis',
		'username': 'folk',
		'src': 'http://static1.nagi.ee/1/p/0/499/5168f17da353b28e4a45170bd52cb73077e19676.jpg/1248416701.jpg',
		'name': 'Janek Hiis',
		'a': '',
		'img': '',


		setName: function(type) {
			switch (type) {
				case 'fname': 
						Nagi.profile.name = Nagi.profile.fname;
						break;
				case 'lname': 
						Nagi.profile.name = Nagi.profile.lname;
						break;
				case 'username': 
						Nagi.profile.name = Nagi.profile.username;
						break;
				case 'full': 
						Nagi.profile.name = Nagi.profile.fname + ' ' + Nagi.profile.lname + ' alias ' + Nagi.profile.username;
						break;
				case 'name': 
				default:
						Nagi.profile.name = Nagi.profile.fname + ' ' + Nagi.profile.lname;
						break;
			}
		},
		setA: function (val) {
			Nagi.profile.a = val;	
		},
		setImg: function (val) {
			Nagi.profile.img = val;	
		},
		show: function() {
			tmp = '<a href="http://keskus.ee/profile/folk/"' + '" id="NagiProfileLink'+'" '+Nagi.profile.a+'><img src="' + Nagi.profile.src + '" id="NagiProfileImage" alt="'+Nagi.profile.name+'" border="0"' + Nagi.profile.img+' /></a>';
			document.write(tmp);
		},
		showWithName: function() {
			tmp = '<a href="http://keskus.ee/profile/folk/"' + '" id="NagiProfileLink_showWithName'+'" '+Nagi.profile.a+'><img src="' + Nagi.profile.src + '" id="NagiProfileImage" alt="'+Nagi.profile.name+'" border="0"' + Nagi.profile.img+' /><span id=\"ProfileWithName\">'+Nagi.profile.name+ '</span></a>';
			document.write(tmp);
		},
		showName: function() {
			tmp = '<a href="http://keskus.ee/profile/folk/"' + '" id="NagiProfileLink_showName'+'" '+Nagi.profile.a+'><span id="profileName">'+Nagi.profile.name+ '</span></a>';
			document.write(tmp);
		}
};


if (!Nagi.pics)
	Nagi.pics = {
		// vars
		'total': 0,
		'timeout': 0,
		'stat': new Array(),
		'pics': new Array(),
		'randpics': new Array(),
		'count': 0,
		'start': 1,
		'streams': new Array(),
		'context': 0,
		'currentStream': -1,
		'a': '',
		'img': '',

		newContext: function() {
			id = Nagi.pics.streams.length;
			return(id);
		},
		saveContext: function() {
			id = Nagi.pics.context;
			Nagi.pics.streams[id] = {
					'total': Nagi.pics.total, 
					'pics': Nagi.pics.pics,
					'randpics': Nagi.pics.randpics,
					'count': Nagi.pics.count,
					'start': Nagi.pics.start,
					'a': Nagi.pics.a,
					'img': Nagi.pics.img
					};
			return(id);
		},
		setContext: function(id) {
			var old = Nagi.pics.saveContext();
			if (Nagi.pics.streams[id] != null) {
				Nagi.pics.total = Nagi.pics.streams[id].total;
				Nagi.pics.pics = Nagi.pics.streams[id].pics;
				Nagi.pics.randpics = Nagi.pics.streams[id].randpics;
				Nagi.pics.count = Nagi.pics.streams[id].count;
				Nagi.pics.start = Nagi.pics.streams[id].start;
				Nagi.pics.a = Nagi.pics.streams[id].a;
				Nagi.pics.img = Nagi.pics.streams[id].img;
			}else {
				Nagi.pics.total = 0;
				Nagi.pics.pics = new Array();
				Nagi.pics.randpics = new Array();
				Nagi.pics.count = 0;
				Nagi.pics.start = 1;
				Nagi.pics.a = '';
				Nagi.pics.img = '';
			}
			Nagi.pics.context = id;
			return(old);
		},

		firstContext: function() {
			if (Nagi.pics.streams.length > 0) {
				return(0);
			}else
				return(false);
		},

		lastContext: function() {
			if (Nagi.pics.streams.length > 0) {
				return(Nagi.pics.streams.length-1);
			}else
				return(false);
		},

		nextContext: function() {
			if (Nagi.pics.streams.length > Nagi.pics.context + 1) {
				return(Nagi.pics.context+1);
			}else
				return(false);
		},

		getContext: function() {
			return(Nagi.pics.context);
		},

		firstStream: function() {
			if (Nagi.pics.streams.length > 0) {
				Nagi.pics.currentStream = 0;
				Nagi.pics.setContext(Nagi.pics.currentStream);
				return(Nagi.pics.currentStream);
			}else
				return(false);
		},

		lastStream: function() {
			if (Nagi.pics.streams.length > 0) {
				Nagi.pics.currentStream = Nagi.pics.streams.length-1;
				Nagi.pics.setContext(Nagi.pics.currentStream);
				return(Nagi.pics.currentStream);
			}else
				return(false);
		},

		nextStream: function() {
			if (Nagi.pics.streams.length > Nagi.pics.currentStream + 1) {
				Nagi.pics.currentStream++;
				Nagi.pics.setContext(Nagi.pics.currentStream);
				return(Nagi.pics.currentStream);
			}else
				return(false);
		},

		add: function(href, alt, sq,t,s,m,l,o,id) {
			var src = new Array();
			src['sq'] = sq;
			src['t'] = t;
			src['s'] = s;
			src['m'] = m;
			src['l'] = l;
			src['o'] = o;
			Nagi.pics.pics[Nagi.pics.pics.length] = {src: src, href: href, alt: alt,id: id};
			Nagi.pics.total++;
		},
		setA: function (val) {
			Nagi.pics.a = val;	
		},
		setImg: function (val) {
			Nagi.pics.img = val;	
		},
		show: function(size, limit) {
			if (Nagi.pics.start > Nagi.pics.total) return;
			if (Nagi.pics.start + limit > Nagi.pics.total) limit = Nagi.pics.total - Nagi.pics.start + 1;
		
			this.showrange(size,Nagi.pics.start,limit);
			Nagi.pics.start += limit;
		},
		random: function(size, limit) {
			if (Nagi.pics.count >= Nagi.pics.total) return; // no pics left
			if (limit > Nagi.pics.total) limit = Nagi.pics.total;
			for (i=1;i<=limit;i++) {
				j = Math.round(Math.random()*(Nagi.pics.total-1)+1); // 1-100 not 0-100
				while (Nagi.pics.randpics[j] != null && Nagi.pics.count < Nagi.pics.total) {
					j = Math.round(Math.random()*(Nagi.pics.total-1)+1);
				}

				if (Nagi.pics.randpics[j] != null) break; // no pics left
				else {
					Nagi.pics.randpics[j] = j;
					Nagi.pics.count++;
				}
				this.write(size,j);
			}
		},
		showrange: function(size, start, limit) {
			if (start > Nagi.pics.total) return;
			if (start + limit > Nagi.pics.total) limit = Nagi.pics.total - start + 1;
			for (i=start;i<start+limit;i++) {
				this.write(size,i);
			}
		},
		write: function(size,index) {
			pic = Nagi.pics.pics[index-1];
			if (pic == null) return;
			Nagi.pics.stat[Nagi.pics.stat.length] = pic.id;
			tmp = '<a href="' + pic.href + '" id="NagiLink'+i+'" '+Nagi.pics.a+'><img src="' + pic.src[size] + '" id="NagiPic'+i+'" alt="'+pic.alt+'" border="0" '+Nagi.pics.img+' /></a>';
			document.write(tmp);

			// after 2.5 seconds send stat to nagi
			if (Nagi.pics.timeout) window.clearTimeout(Nagi.pics.timeout);
			Nagi.pics.timeout = window.setTimeout(Nagi.pics.sendstat,2500);
		},
		sendstat: function() {
			if (Nagi.pics.stat.length > 0) {
				var q = '';
				for (i=0;i<Nagi.pics.stat.length;i++)
					q += '&id[]='+Nagi.pics.stat[i];
				var query = '?act=addstat'+q;
				var uri = 'http://www.nagi.ee/services/stream/folk/last/'+query;
				var tmp = new Image();
				tmp.src = uri;
				Nagi.pics.stat = new Array();
			}
		}
	};



var nagi_pics_id = Nagi.pics.newContext();
var nagi_pics_old_id = Nagi.pics.setContext(nagi_pics_id);
Nagi.pics.add(
				'http://www.nagi.ee/photos/folk/11778167/',
				'Viljandi Folk',
				'http://static2.nagi.ee/i/p/471/12/117781676753a3_sq.jpg',
				'http://static2.nagi.ee/i/p/471/12/117781676753a3_t.jpg',
				'http://static2.nagi.ee/i/p/471/12/117781676753a3_s.jpg',
				'http://static2.nagi.ee/i/p/471/12/117781676753a3_m.jpg',
				'http://static2.nagi.ee/i/p/471/12/117781676753a3_l.jpg',
				'http://static2.nagi.ee/i/p/471/12/117781676753a3_o.jpg',
				'11778167'
			);
Nagi.pics.setContext(nagi_pics_old_id);
