var thumb = "http://www.siecjuniorcup.com/admin/thumb/phpThumb.php";
var admin = "http://www.siecjuniorcup.com/admin/admin.php";

Page = {
	size: function() {
		var myWidth = 0, myHeight = 0;
		if( typeof( window.innerWidth ) == 'number' ) {
			myWidth = window.innerWidth;
			myHeight = window.innerHeight;
		} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
			myWidth = document.documentElement.clientWidth;
			myHeight = document.documentElement.clientHeight;
		} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
			myWidth = document.body.clientWidth;
			myHeight = document.body.clientHeight;
		}

		return {w:myWidth, h:myHeight};
	},
	
	initialize: function() {
		Page.initflashnews();
		Page.initnewsscroll();
		Page.initimages();
		Page.initsponsors();
		Page.initvideo();
		Page.initmenu();
		Page.initmaillist();
		Page.initintro();
		Page.initgallery();
		Page.initnewsentry();
		Page.initsubpage();
	},
	
	validate: function() {
		var size = Page.size();
		
		var container = document.getElementById("container");
		
		if (!container) return;
		
		container.style.top = Math.floor((size.h - 806) / 2) + "px";
		container.style.left = ((size.w - 1040) / 2) + "px";
		
		container.style.visibility = "visible";
	},
	
	ismailvalid: function(str) {
		return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	},
	
	setAlpha: function(ele, val) {
		if (!ele) return;
	
		if (val < 0) { val = 0; }
		if (val >= 100) { 
			ele.style.opacity = "";
			ele.style.filter = "";
			return;
		}
		ele.style.opacity = (val / 100);
		ele.style.filter = 'alpha(opacity=' + val + ')';
	},
	
	createRequest: function() {
		try { return new XMLHttpRequest(); } catch(e) {}
		try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
		try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
		return null;
	},
	
	initsubpage: function() {
		if (document.getElementById("pagetitle") != null)
			document.getElementById("container").className = "subcontainer";
	},
	
	initnewsentry: function() {
		var ne = document.getElementById("newsentry");
		if (!ne) return;
		var qs = new Querystring();
		if (!qs.get("id")) return;
		
		var req = Page.createRequest();
		
		if (!req) return;

		req.open("GET", admin + "?action=getnewsentry&id=" + qs.get("id"), true);
		req.onreadystatechange = function() {
			if (req.readyState != 4 || req.status != 200)  { return; }
			ne.innerHTML = req.responseText;
		};
		req.send(null);
	},
	
	initgallery: function() {
		var gl = document.getElementById("galleryitems");
		var gi = document.getElementById("galleryimage");
		
		if (!gl || !gi) return;
		
		Page.setAlpha(gi, 0);
		
		gl.innerHTML = "";
		
		var showitem = function(nind) {
			var surl = thumb + "?w=480&h=375&zc=1&src=/images/" + images[nind];
			gi.style.background = "url(" + surl + ")";
			Page.setAlpha(gi, 0);
			
			setTimeout(function() {
				var anim = new Animator({ duration: 1000 });
				anim.addSubject(function(val) { Page.setAlpha(gi, val * 100); });
				anim.play();
			}, 1000);
		}
		
		var additem = function(ind) {
			var iid = ind;
			var url = thumb + "?w=100&h=100&zc=1&src=/images/" + images[iid];
			var burl = thumb + "?w=480&h=375&zc=1&src=/images/" + images[iid];
			
			var img = document.createElement("img");
			img.setAttribute("src", url);
			gl.appendChild(img);
			
			img.onclick = function() {
				gi.style.background = "url(" + burl + ")";
				Page.setAlpha(gi, 0);
				
				setTimeout(function() {
					var anim = new Animator({ duration: 1000 });
					anim.addSubject(function(val) { Page.setAlpha(gi, val * 100); });
					anim.play();
				}, 1500);				
			};
		};
		
		for (var i = 0; i < images.length; i++) additem(i);
	},
	
	validateintro: function() {
		var ibar = document.getElementById("introbar");
		var s = document.getElementById("introimages");
		
		if (!ibar) return;
		
		var size = Page.size();

		ibar.style.top = Math.floor((size.h - 500) / 2) + "px";
		ibar.style.width = size.w + "px";
		s.style.width = (size.w - 436) + "px";
	},
	
	initintro: function() {
		var ibar = document.getElementById("introbar");
		var s = document.getElementById("introimages");
		
		Page.validateintro();
		
		if (!ibar) return;
		
		var en = document.getElementById("introlangen");
		if (en)
			en.onclick = function() { document.location.href = "home.en.html"; };
			
		var tr = document.getElementById("introlangtr");
		if (tr)
			tr.onclick = function() { document.location.href = "home.tr.html"; };
			
		
		var html = "";
		for (var i = 0; i < images.length; i++) {
			var url = thumb + "?h=132&w=176&zc=1&src=/images/" + images[i];
			html += '<img src="' + url + '" height="132" />';
		}
		s.innerHTML = html;
		
		setInterval(function()
		{		
			if (s.scrollwait) { s.scrollwait--; return; }
			
			if (s.isreverse)
			{
				s.scrollLeft--;
				
				if (s.scrollLeft <= 0)
				{
					s.isreverse = false;
					s.scrollwait = 30;
				}
			}
			else
			{
				var old = s.scrollLeft;
				
				s.scrollLeft++;

				if (s.scrollLeft == old)
				{
					s.isreverse = true;	
					s.scrollwait = 30;
				}
			}
		}, 40);	
	},
	
	initmaillist: function() {
		var name = document.getElementById("imailinputname");
		var mail = document.getElementById("imailinputmail");
		var submit = document.getElementById("mailsubmit");
		
		if (!name || !mail || !submit) return;
		
		submit.onclick = function() {
			if (name.value == phr[locale]["namedef"] || name.value == "")
				alert(phr[locale]["nameerror"]);
			else if (!Page.ismailvalid(mail.value))
				alert(phr[locale]["mailerror"]);
			else
			{
				var req = Page.createRequest();
				
				if (!req) return;

				req.open("GET", admin + "?action=addmail&name=" + encodeURIComponent(name.value) + "&mail=" + encodeURIComponent(mail.value), true);
				req.onreadystatechange = function() {
					if (req.readyState != 4 || req.status != 200)  { return; }
					if (req.responseText == "OK") {
						alert(phr[locale]["mailsuccess"]);
					}
				};
				req.send(null);
			}
		};
		
		name.value = phr[locale]["namedef"];
		mail.value = phr[locale]["maildef"];

		name.onfocus = function() { if (name.value == phr[locale]["namedef"]) { name.value = ""; }	};
		name.onblur = function() { if (name.value == "") { name.value = phr[locale]["namedef"]; } };
		
		mail.onfocus = function() { if (mail.value == phr[locale]["maildef"]) { mail.value = ""; }	};
		mail.onblur = function() { if (mail.value == "") { mail.value = phr[locale]["maildef"]; } };
				
		name.onkeydown = mail.onkeydown = function(event) { 
			var code = 0;

			if (window.event) code = window.event.keyCode;
			else if (event.which) code = event.which;
			
			if (code == 13) submit.onclick(); 
		};
	},
	
	initvideo: function() {
		var vidbutton = document.getElementById("playerbutton");
		var vidframe = document.getElementById("videoframe");
		
		if (!vidbutton || !vidframe) return;

		vidbutton.onclick = function() {
			if (vidbutton.isplaying) return;
			
			if (!vidbutton.isopen)
			{
				vidbutton.isplaying = true;
				vidframe.style.display = "block";
				var anim = new Animator({ transition: Animator.tx.easeOut, duration: 1000, onComplete: function(){ vidbutton.isplaying=false; } });
				anim.addSubject(new NumericalStyleSubject(vidbutton, 'left', 170, 250));
				anim.addSubject(new NumericalStyleSubject(vidbutton, 'top', 623, 505));

				anim.play();
				vidbutton.isopen = true;
			}
			else
			{
				vidbutton.isplaying = true;
				vidframe.style.display = "none";
				var anim = new Animator({ transition: Animator.tx.easeOut, duration: 1000, onComplete: function(){ vidbutton.isplaying=false; } });
				anim.addSubject(new NumericalStyleSubject(vidbutton, 'left', 250, 170));
				anim.addSubject(new NumericalStyleSubject(vidbutton, 'top', 505, 623));
				anim.play();
				vidbutton.isopen = false;
			}
		};		
	},
	
	initnewsscroll: function() {
		var nb = document.getElementById("newsbuttons");
		var nu = document.getElementById("btnup");
		var nd = document.getElementById("btndown");
		var nc = document.getElementById("news");
		
		if (!nd || !nu || !nb || !nc) return;
		
		var sdown = function() { nc.scrollTop++; };
		var scrup = function() { nc.scrollTop--; };
			
		nu.onmouseover = function() { nb.className = "newsbuttons_up"; nu.scrolltimer = setInterval(scrup, 10); };
		nu.onmouseout = function() { nb.className = ""; clearInterval(nu.scrolltimer); };
		
		nd.onmouseover = function() { nb.className = "newsbuttons_down"; nd.scrolltimer = setInterval(sdown, 10); };
		nd.onmouseout = function() { nb.className = ""; clearInterval(nd.scrolltimer); };
	},
	
	imagecnt: 0,
	
	initimages: function() {
		if (images.length == 0 || !document.getElementById("photoframe")) return;
		
		var rotater = function() {
			var img = (Page.imagecnt++) % images.length;
			var divid = "image_" + img;
			
			if (document.getElementById(divid)) {
				var oldiv = document.getElementById(divid);
				oldiv.style.zIndex = Page.imagecnt + 100;
				Page.setAlpha(oldiv, 0);
				
				setTimeout(function() {
					var anim = new Animator({ duration: 1000 });
					anim.addSubject(function(val) { Page.setAlpha(oldiv, val * 100); });
					anim.play();
				}, 1500);
				
				return;
			}
			
			var div = document.createElement("div");
			div.className = "photo";
			div.id = divid;
			div.style.background = "url(" + thumb + "?w=421&h=337&zc=1&src=/images/" + images[img] + ")";
			document.getElementById("container").appendChild(div);

			if (img != 0)
			{
				Page.setAlpha(div, 0);
				
				setTimeout(function() {
					var anim = new Animator({ duration: 1000 });
					anim.addSubject(function(val) { Page.setAlpha(div, val * 100); });
					anim.play();
				}, 1500);
			}
		};
		
		if (images.length > 1)
			setInterval(rotater, 5000);
			
		rotater();
	},
	
	initsponsors: function() {
		var s = document.getElementById("sponsors");
		
		if (!s) return;
		
		s.onmouseover = function() { s.scrollwait = 1000; }
		s.onmouseout = function() { s.scrollwait = 0; }
		
		setInterval(function()
		{		
			if (s.scrollwait) { s.scrollwait--; return; }
			
			if (s.isreverse)
			{
				s.scrollLeft--;
				
				if (s.scrollLeft <= 0)
				{
					s.isreverse = false;
					s.scrollwait = 30;
				}
			}
			else
			{
				var old = s.scrollLeft;
				
				s.scrollLeft++;

				if (s.scrollLeft == old)
				{
					s.isreverse = true;	
					s.scrollwait = 30;
				}
			}
		}, 50);			
	},
	
	initflashnews: function() {
		
		var f = document.getElementById("flashnews");
		
		if (!f) return;
		
		f.onmouseover = function() { f.scrollwait = 1000; }
		f.onmouseout = function() { f.scrollwait = 0; }
		
		setInterval(function()
		{		
			if (f.scrollwait) { f.scrollwait--; return; }
			
			if (f.isreverse)
			{
				f.scrollLeft--;
				
				if (f.scrollLeft <= 0)
				{
					f.isreverse = false;
					f.scrollwait = 30;
				}
			}
			else
			{
				var old = f.scrollLeft;
				
				f.scrollLeft++;

				if (f.scrollLeft == old)
				{
					f.isreverse = true;	
					f.scrollwait = 30;
				}
			}
		}, 20);						   
	},
	
	_initmenuitem: function(name) {
		var element = document.getElementById("btn" + name);
		var menu = document.getElementById("buttonbar");
		
		if (!menu) return;
		
		if (!element) {
			element = document.createElement("div");
			element.id = "btn" + name;
			menu.appendChild(element);
		}
		
		element.onmouseover = function() { menu.className = "btn_" + name; };
		element.onmouseout = function() { menu.className = ""; };
		element.onclick = function() { document.location.href = name + "." + locale + ".html"; };
	},
	
	initmenu: function() {
		if (!document.getElementById("buttonbar")) return;
		
		var items = ["home", "program", "info", "gallery", "press", "siec", "sponsors", "contact"];
		for (var i = 0; i < items.length; i++)
			Page._initmenuitem(items[i]);
			
		var container = document.getElementById("container");
		if (!container) return;
		
		var langlink = document.createElement("div");
		langlink.id = "langlink";
		
		langlink.onclick = function() {
			var loc = document.location.href;
			
			if (loc.indexOf(".en.html") > 0)
				document.location.href = loc.replace(".en.html", ".tr.html");
			else if (loc.indexOf(".tr.html") > 0)
				document.location.href = loc.replace(".tr.html", ".en.html");
		};
		
		container.appendChild(langlink);
	}
};

window.onload = function() {
	Page.initialize();
	Page.validate();
};

window.onresize = function() {
	Page.validate();
	Page.validateintro();
};

var images = [];