function radio() {
	if (as.getBCN("choose","form").length == 0) { return; }
	var inputs = as.getBTN("input",as.getBCN("choose","form")[0]), radio = [], active, activeReplacer;
	as.map(inputs,function(input) {if (input.type == "radio") { radio.push(input); }});
	as.map(
		radio,
		function(input) {
			var replacer = as.insertAfter("a",input.parentNode,input,'',{"href": "#","className": "radio-replacer"});
			replacer.onclick = function() {
				if (active) { active.checked = false; }
				if (activeReplacer) { activeReplacer.className = activeReplacer.className.replace(/\bradio-replacer-active\b/,""); }
				input.checked = true;
				this.className += " radio-replacer-active";
				active = input;
				activeReplacer = this;
				return false;
			}
			input.className += " removed";
		}
	);
}

function auth() {
	var authForm = as.getBCN("auth","form");
	if (authForm.length == 0 || authForm[0].className.match(/\blost\b/)) { return; }
	authForm = authForm[0];
	
	var email = as.getBCN("email","input",authForm)[0]
	var hiddenPass = as.getBCN("pass-hidden","input",authForm)[0];
	var realPass = as.getBCN("pass-real","input",authForm)[0];
	
	realPass.style.display = "none";
	hiddenPass.style.display = "block";
	
	email.dValue = "e-mail";
	email.onfocus = function() {
		if (this.value == this.dValue) { this.value = ""; }
		if (this.className.match(/\bfailed\b/)) {
			this.value = "";
			this.className = this.className.replace(/\bfailed\b/,"");	
		}
	}
	email.onblur = function() {
		if (this.value == "") { this.value = this.dValue; }	
	}
	
	hiddenPass.onfocus = function() {
		this.style.display = "none";
		realPass.style.display = "block";
		realPass.focus();
	}
	realPass.onblur = function() {
		if (this.value == "") {
			this.style.display = "none";
			hiddenPass.style.display = "block";
		}	
	}
}

function regCheck() {
	var regForm = as.getBCN("register","form")[0];
	if (!regForm) { return; }
	var regInputs = as.getBTN("input",regForm);
	as.map(
		regInputs,
		function(input) {
			input.onfocus = function() {
				if (this.className.match(/\bfailed\b/)) {
					this.className = this.className.replace(/\bfailed\b/,"");
					this.value = "";
				}
			}
		}
	)
}

function customFile() {
	var fakeFiles = as.getBCN("fake-file","div");
	if (fakeFiles.length == 0) { return; }
	as.map(
		fakeFiles,
		function (fake) {
			(new customForms.customFile({real: as.getBCN("type-file","input",fake)[0], fake: as.getBCN("type-text","input",fake)[0]})).init();
		}
	);
	var uploadButtons = as.getBCN("upload-button","div");
	var uploadContainers = as.getBCN("upload-container","div");
	
	as.map(
		uploadButtons,
		function(button,i) {
			button.onclick = function() {
				this.parentNode.style.display = "none";	
				uploadContainers[i].style.display = "block";
				return false;
			}
		}
	);
}

function customSelects() {
	var regForms = as.getBCN("register","form");
	as.map(
		regForms,
		function(form) {
			as.map(
				as.getBTN("select",form),
				function(select) {
					(new customForms.customSelect(select,{})).init();	
				}
			);
		}
	);
}

function vote() {
	var vote = as.getBCN("vote","ul");
	as.map(
		vote,
		function(vote) {
			vote.className += " vote-js";
			vote.onclick = function(e) {
				e = e || window.event;
				var target = e.target || e.srcElement;
				as.getBTN("input",target.parentNode)[0].checked = true;
				as.getParent(target,{tn:"FORM"}).submit();
				return false;
			}
			as.removeChild(as.getBCN("submit-container","div",vote.parentNode)[0]);
		}
	);
}

function upload() {
	var uploadContainer = as.getBCN("upload-container","div")[0];
	if (!uploadContainer) { return; }
	
	(new customForms.upload(as.getBCN("type-file","input",uploadContainer)[0],as.getBCN("upload-frame","iframe")[0])).init();
}

var forumWatcher = {};
forumWatcher.init = function() {
	this.forumContainer = as.getBCN("forum-container","div")[0];
	if (!this.forumContainer) { return }
	this.forumDefaultUrl = "/forum/";
	this.forum = as.getBTN("iframe",this.forumContainer)[0];
	this.forumWindow = this.forum.contentWindow;
}
forumWatcher.updateFrom = function() {
	if (!this.forum || !this.forumWindow) {
		window.setTimeout(
			arguments.callee.bind(this),10
		);
		return;
	}
	if (!this._updatedTo) {this._updateTo();}
	else {
		if (this.forumWindow.location.search) {
			location.hash = this.forumWindow.location.search;	
		}
		else {
			location.hash = "#forum";
		}
	}	
	this.forum.style.height = this._$("wrapper").offsetHeight+"px";
}
forumWatcher._$ = function(id) {
	return this.forumWindow.document.getElementById(id);
}
forumWatcher._updateTo = function() {
	this._updatedTo = true;
	this.forumWindow.location.href = this.forumDefaultUrl+location.hash.replace(/#(forum)?/,"");
}


function menu() {
	if (!as.$("menu-wrapper")) { return; }
	var part = location.pathname.match(/\/[^/]*\//)[0], buttlight;
	switch(part) {
		case "/news/":
		buttlight = 1;
		break;
		
		case "/commentators/":
		buttlight = 2;
		break;
		
		case "/about/":
		buttlight = 3;
		break;
		
		case "/game/":
		buttlight = 4;
		break;
		
		case "/funny/":
		buttlight = 5;
		break;

		
		
	}

	var so = new SWFObject("/swf/menu3.swf", "play", "1000", "75", "8");
	so.addParam("quality", "high");
	so.addParam("play", "true");
	so.addParam("wmode", "transparent");	
	so.addVariable("buttlight", buttlight);
	so.write("menu-wrapper");
}

function lights() {
	if (!as.$("lights")) { return; }	
	var so = new SWFObject("/swf/lights.swf", "play", "1000", "250", "8");
	so.addParam("quality", "high");
	so.addParam("play", "true");
	so.addParam("wmode", "transparent");
	so.write("lights");
}

function flashMain() {
	if (!as.$("flash-main")) { return; }	
	var so = new SWFObject("/swf/main.swf", "play", "1500", "500", "8");
	so.addParam("quality", "high");
	so.addParam("play", "true");
	so.addParam("wmode", "transparent");
	so.write("flash-main");
}

function about() {
	if (!as.$("product-image")) { return; }	
	var so = new SWFObject("/swf/product.swf", "play", "569", "431", "8");
	so.addParam("quality", "high");
	so.addParam("play", "true");
	so.addParam("wmode", "transparent");
	so.write("product-image");
}

function gamePlay() {
	as.map(as.getBCN("game-play","a"),function(lnk) {
		lnk.onclick = function() {
			window.open(lnk.href,"gamePlay","width=1000,height=450");
			return false;
		}
	})	
}


as.ready.add(menu);
as.ready.add(about);
as.ready.add(lights);
as.ready.add(flashMain);
as.ready.add(radio);
as.ready.add(auth);
as.ready.add(customFile);
as.ready.add(vote);
as.ready.add(regCheck);
as.ready.add(customSelects);
as.ready.add(upload);
as.ready.add(gamePlay);
as.ready.add(forumWatcher.init.bind(forumWatcher));
as.ready.init();