function truebody() {
	return document.getElementsByTagName('body')[0]
}

function showAlt(ele, customtext) {
	var img = document.createElement("div")
	img.id = 'hovertitle'
	img.innerHTML = ele.alt

	if(customtext != undefined)
		img.innerHTML = customtext

	truebody().appendChild(img)
	document.onmousemove = function(e) { 
		coords = new Array();
		coords = followmouse(e, 10, 10).split("-")
		img.style.left = coords[0] + "px"
		img.style.top = coords[1] + "px"
	}

	document.onmousemove();

	ele.onmouseout = function() {
		ele.onmouseout = ''
		document.onmousemove = ''
		truebody().removeChild(img)
	}
}

function followmouse(ele, start_x, start_y){
	var xcoord = start_x
	var ycoord = start_y
	if (typeof ele != "undefined") {
		xcoord += ele.pageX
		ycoord += ele.pageY
	} else if (typeof window.event !="undefined") {
		xcoord += truebody().scrollLeft + event.clientX
		ycoord += truebody().scrollTop + event.clientY
	}

	return (xcoord+'-'+ycoord)
}

function getWinSize(win)
{
    if(!win) win = window;
    var s = new Object();
    if(typeof win.innerWidth != 'undefined')
    {
        s.width = win.innerWidth;
        s.height = win.innerHeight;
    }
    else
    {
         var obj = getBody(win);
         s.width = parseInt(obj.clientWidth);
         s.height = parseInt(obj.clientHeight);
    }
    return s;
}

function popup(newurl, width, height) {
	attrib = 'height=' + height + ',width=' + width + ',scrollbars=yes,menubar=no, top=0, left=0';
	var fenster = window.open('../layout/magic.shtml?img=' + newurl, 'win', attrib);
}

function imageLoad(img) {

	var imgwidth = img.offsetWidth;
	var imgheight = img.offsetHeight;

	if(window.outerHeight) {
		imgheight += (Math.floor(window.outerHeight) - Math.floor(document.body.offsetHeight));
		imgwidth += (Math.floor(window.outerWidth) - Math.floor(document.body.offsetWidth));
	}
	else {
		imgwidth += 10;
		imgheight += 50;
	}

	if(imgheight > screen.height)
	{
		imgheight = screen.height;
	}

	if(imgwidth > screen.width)
	{
		imgwidth = screen.width;
	}

	window.resizeTo(Math.floor(imgwidth), Math.floor(imgheight));

	var screenheight = (screen.height/2);
	var screenwidth = (screen.width/2);

	if(window.outerHeight) {
		var windowheight = (window.outerHeight/2);
		var windowwidth = (window.outerWidth/2);
	}
	else {
		var windowheight = (imgheight/2);
		var windowwidth = (imgwidth/2);
	}

	var newy = Math.round(screenheight - windowheight)
	var newx = Math.round(screenwidth - windowwidth)
	if(newx < 0)
		newx = 0
	if(newy < 0)
		newy = 0

	window.moveTo(newx, newy);

	var loading = document.getElementById('loading');
	if(loading)
		loading.style.display='none'
		
	var popup = document.getElementById('popup');
	if(popup)
		popup.style.overflow='auto'
}

function addCode(id, text)
{
	document.getElementById(id).value = document.getElementById(id).value + text;
}

function initSidebar() {
	var sidebar = document.getElementById('sidebar');
	if(sidebar) {
		var links = sidebar.getElementsByTagName('a');
		for(i=0; i<links.length; i++) {
			links[i].onmouseover = function() {
				var img = this.getElementsByTagName('img')[0];
				if(img) {
					if(img.src.indexOf('_hover') == -1)
						img.src = img.src.split('.png').join('_hover.png');
				}
			}

			links[i].onmouseout = function() {
				var img = this.getElementsByTagName('img')[0];
				if(img) {
					if(img.src.indexOf('_hover') > -1)
						img.src = img.src.split('_hover.png').join('.png');
				}
			}
		}
	}
}

function initPopup() {
	var popuplink = document.getElementById('popuplink');
	if(popuplink) {
		var params = window.location.search.split('=');
		popuplink.innerHTML = '<img src="' + params[1] + '" alt="" onload="imageLoad(this)" />';
		window.moveTo( (screen.width/2)-100, (screen.height/2)-100 );
	}
}

/* dragable popups */
var lastMousePosition = new Object();
var mousedown = 0;
var mousedownmoved = 0;

var lastTrapDetailRequest;
var sessionid = "";

function initTraps() {
	if($('summon_traps')) {
		sessionid = $('sessionid').innerHTML;
		var summoner = $('summon_traps');
		var summontrapsrequest = new Request.HTML({
			onComplete: function(resTree, resEls, resHTML, resJS) {
				$('summon_traps').innerHTML = resHTML;
				$$('#summon_traps a.ajax').each(function(a, i) {
					a.addEvent('click', function(e) {
						var event = new Event(e).stop();
						// show all
						$$('#summon_traps a.ajax').each(function(mra) {
							mra.setStyle('opacity', 1);
							mra.removeClass('clicked');
						});
						// make this one transparent
						this.setStyle('opacity', 0.5);
						this.addClass('clicked');

						var popup = $('sirpopup2nd');
						if(!popup) {
							popup = new Element('div');
							popup.injectBottom($(document.body));
							popup.id = 'sirpopup2nd';
						}
						var popLeft = event.page.x;
						var popWidth = 550;
						if(popLeft + popWidth > document.body.offsetWidth) {
							popLeft = document.body.offsetWidth - popWidth - 30;
						}
						popup.setStyles({
							position: 'absolute',
							top:  event.page.y,
							left: popLeft,
							border: '1px solid #aaa',
							zIndex: '999',
							display: 'block'
						});
						popup.set('html', '<table class="general_table"><tr><td class="center_td2"><br/><br/><br/><br/><br/></td></tr></table>');
						showSirPopup2ndLoading();
						var trapdetailsrequest = new Request.HTML({
							onComplete: function(resTree, resEls, resHTML, resJS) {
								hideSirPopup2ndLoading();
								setSirPopup2ndHTML(resHTML);
								//$('sirpopup2nd').innerHTML = resHTML;
								initSirPopupAjax();
							}
						});
						trapdetailsrequest.geturl = "http://farm.muddasheep.com/cgi-bin/get_website.cgi?url=" + escape(this.rel + '&sessionid=' + sessionid) + '&random=' + Math.random();
						trapdetailsrequest.get(trapdetailsrequest.geturl);
						lastTrapDetailRequest = trapdetailsrequest;
					});
					a.rel = a.href;
					a.href = '#';
				});
			}
		}).get("http://farm.muddasheep.com/cgi-bin/get_website.cgi?url=" + escape("http://phq.muddasheep.com/phq_traps_activation.cgi?ajax=1&sessionid=" + sessionid + "&random=" + Math.random()));
		summoner.innerHTML = '<table class="general_table"><tr><td class="center_td2"><b>W</b>aiting for something to happen...</td></tr></table>';
		$(document.body).addEvent('mouseup', function(e) {
			mousedown = 0;
			new Event(e).stop();
			lastMousePosition['x'] = undefined;
			lastMousePosition['y'] = undefined;
		});
		$(document.body).addEvent('mousemove', function(e) {
			var event = new Event(e);
			if(mousedown == 1) {
				if(lastMousePosition['x'] != undefined) {
					mousedownmoved += Math.abs(event.page.x - lastMousePosition['x']) + Math.abs(event.page.y - lastMousePosition['y']);
					if($('sirpopup2nd')) {
						$('sirpopup2nd').setStyles({
							left: $('sirpopup2nd').getLeft() + (event.page.x - lastMousePosition['x']),
							top: $('sirpopup2nd').getTop() + (event.page.y - lastMousePosition['y'])
						});
					}
				}
				lastMousePosition['x'] = event.page.x;
				lastMousePosition['y'] = event.page.y;
			}
		});
	}
}

function setSirPopup2ndHTML(resHTML) {
	var sirpopup2nd = $('sirpopup2nd');
	if(sirpopup2nd) {
		sirpopup2nd.innerHTML = '<table class="general_table"><tr><td class="left_td nopadding">' + resHTML + '</td></tr></table>';
	}
}

function initSirPopupAjax() {
	var closer = new Element('a');
	closer.addClass('closer');
	closer.href = '#';
	closer.innerHTML = 'X';
	closer.addEvent('click', function(e) {
		var event = new Event(e).stop();
		// show all
		$$('#summon_traps a.ajax').each(function(mra) {
			mra.setStyle('opacity', 1);
			mra.removeClass('clicked');
		});
		$('sirpopup2nd').style.display = 'none';
		$('sirpopup2nd').innerHTML = '';
	});
	closer.injectInside($('sirpopup2nd'));

	// if loginform is present, change it up a bit
	if($('not_logged_in')) {
		$$('.login_description')[0].innerHTML = "<b>T</b>o donate Sadism Dollars directly, you need to login with your <a href=\"http://phq.muddasheep.com/index.cgi?create=1\">PHQ account</a> first!";
		$('redirect').value = document.location.href;
	}

	$$('#sirpopup2nd form').each(function(form, i) {
		form.addEvent('submit', function(e) {
			var event = new Event(e).stop();
			var formaction = this.action;
			this.getElements('input').each(function(input) {
				input.disabled = true;
			});
			var querystring = "?ajax=1";
			showSirPopup2ndLoading();
			$(this).getElements('input').each(function(input) {
				if(input.type == 'checkbox') {
					querystring += "&" + input.name + "=" + (input.checked ? 1 : 0);
				}
				else {
					querystring += "&" + input.name + "=" + input.value;
				}
			});
			var trapdetailsrequest = new Request.HTML({
				onComplete: function(resTree, resEls, resHTML, resJS) {
					hideSirPopup2ndLoading();
					if(this.login) {
						var alerter = this.form.getParent().getElements('.loginalert');
						if(alerter.length > 0) {
							alerter = alerter[0];
						}
						else {
							alerter = new Element('div');
							alerter.addClass('loginalert');
							alerter.injectBefore(this.form);
						}
						alerter.innerHTML = resHTML;
						if(alerter.getElements('.sessionid').length > 0) {
							var newsessionid = alerter.getElement('.sessionid').innerHTML;
							var username = alerter.getElement('.username').innerHTML;
							var gender = alerter.getElement('.gender').innerHTML;
							gender = (gender == 1) ? "Mistress" : "Master";
							var theend = new Date();
							var expire = theend.getTime() + (30 * 24 * 60 * 60 * 1000);
							theend.setTime(expire);
							document.cookie = 'remember=' + username + '\; path=/\; expires=' + theend.toGMTString();
							document.cookie = 'sessionid=' + newsessionid + '\; domain=muddasheep.com\; path=/\; expires=' + theend.toGMTString();
							sessionid = newsessionid;
							alerter.innerHTML = 'Successfully logged in! Reloading...';
							showSirPopup2ndLoading();
							lastTrapDetailRequest.geturl = "http://farm.muddasheep.com/cgi-bin/get_website.cgi?url=" + escape($$('#summon_traps .clicked')[0].rel + '&sessionid=' + sessionid) + '&random=' + Math.random();
							lastTrapDetailRequest.get(lastTrapDetailRequest.geturl);
						}
					}
					else {
						setSirPopup2ndHTML(resHTML);
						//$('sirpopup2nd').innerHTML = resHTML;
					}
					initSirPopupAjax();
				}
			}).get("http://farm.muddasheep.com/cgi-bin/get_website.cgi?url=" + escape(formaction + '' + querystring + '&sessionid=' + sessionid) + '&random=' + Math.random());
			if(this.id == 'login_form') {
				trapdetailsrequest.login = 1;
			}
			trapdetailsrequest.form = this;
			trapdetailsrequest.form.getParent().getElements('.loginalert').dispose();
		});
	});

	$$('#sirpopup2nd a.ajax').each(function(form, i) {
		form.addEvent('click', function(e) {
			var event = new Event(e).stop();
			var formaction = this.href;
			if(formaction.indexOf('?') > -1) {
				formaction = formaction + '&ajax=1&sessionid=' + sessionid + '&random=' + Math.floor(Math.random()*5000);
			}
			else {
				formaction = formaction + '?ajax=1&sessionid=' + sessionid + '&random=' + Math.floor(Math.random()*5000);
			}
			showSirPopup2ndLoading();
			var trapdetailsrequest = new Request.HTML({
				onComplete: function(resTree, resEls, resHTML, resJS) {
					hideSirPopup2ndLoading();
					setSirPopup2ndHTML(resHTML);
					//$('sirpopup2nd').innerHTML = resHTML;
					initSirPopupAjax();
				}
			}).get("http://farm.muddasheep.com/cgi-bin/get_website.cgi?url=" + escape(formaction));
		});
	});

	$$('#sirpopup2nd img, .sirpopup2ndmover').removeEvents('mousedown');
	$$('#sirpopup2nd img, .sirpopup2ndmover').addEvent('mousedown', function(e) {
		mousedown = 1;
		mousedownmoved = 0;
		new Event(e).stop();
	});
}

function BV_Add(id) {
	var field = document.getElementById('field_'+id);
	var td = document.getElementById('td_'+id);
	var bombs_set = 0;

	for(var i=1;i<=16;i++) {
		if(document.getElementById('field_'+i).value == 1) {
			bombs_set++;
			document.getElementById('td_'+i).style.background='url(http://phq.muddasheep.com/design/mb_bomb.jpg)';
		}
	}

	if(field.value == 1) {
		td.style.background='url(http://phq.muddasheep.com/design/blank.gif)';
		field.value = 0;
		bombs_set--;
	}
	else {
		if(bombs_set >= 5) {
			//alert('Sorry. You can only place 5 bombs.')
		}
		else {
			td.style.background='url(http://phq.muddasheep.com/design/mb_bomb.jpg)';
			field.value = 1;
			bombs_set++;
		}
	}

	document.getElementById('bombalert').innerHTML = (5 - bombs_set);
}

var HQSTitle = '';
function initHQSTitle() {
	if($$('.hqs .title').length > 0) {
		var title = $$('.hqs .title')[0];
		var titlename = title.innerHTML.toLowerCase();
		HQSTitle = titlename;
		title.innerHTML = '';
		title.style.display = 'block';
		var splitletters = titlename.split('');
		for(i=0; i<splitletters.length; i++) {
			var img = new Element('img');
			img.src = 'http://farm.muddasheep.com/layout/blank.gif';
			img.injectInside(title);
			img.style.width = '16px';
			img.style.height = '32px';
			img.className = 'letter';
		}
		findNextHQSTitleLetter();
	}
}

var currentHQSTitleLetter = 0;
function findNextHQSTitleLetter() {
	var title = $$('.hqs .title')[0];
	var titlename = HQSTitle;
	var splitletters = titlename.split('');
	var alphabet = 'abcdefghijklmnopqrstuvwxyz';
	alphabet = alphabet.split('');
	if(currentHQSTitleLetter < splitletters.length) {
		var randomchoice = parseInt( Math.random()*alphabet.length );
		var randomletter = alphabet[ randomchoice ];
		var url = 'http://farm.muddasheep.com/hq3/letters/' + randomletter + '.png';
		var images = title.getElements('img');
		images[currentHQSTitleLetter].src = url;
		images[currentHQSTitleLetter].style.background = 'url(' + url + ') top left no-repeat';
		if(randomletter == splitletters[currentHQSTitleLetter]) {
			// if the same, next!
			images[currentHQSTitleLetter].setStyles({
				opacity: 1
			});
			currentHQSTitleLetter++;
		}
		else {
			// display wrong one
			images[currentHQSTitleLetter].setStyles({
				opacity: Math.random()
			});
		}
		setTimeout('findNextHQSTitleLetter()', 10);
	}
	else {
		//go through each once again and fade them in
		currentHQSTitleLetter = 0;
		fadeNextHQSTitleLetter();
	}
}

function fadeNextHQSTitleLetter() {
	var title = $$('.hqs .title')[0];
	var titlename = HQSTitle;
	var splitletters = titlename.split('');
	var images = title.getElements('img');
	if(currentHQSTitleLetter < splitletters.length) {
		var fx = new Fx.Morph(images[currentHQSTitleLetter], {
			duration: 500,
			wait: false
		}).start({
			opacity: [0.5, 1]
		});
		currentHQSTitleLetter++;
		setTimeout('fadeNextHQSTitleLetter()', 50);
	}
}

var currentLoadingImage = 0;
function showSirPopup2ndLoading() {
	var loader = $('sirpopup2ndloading');
	if(!loader) {
		loader = new Element('div');
		loader.injectBottom($('sirpopup2nd'));
		loader.id = 'sirpopup2ndloading';
		loader.setStyles({
			opacity: 0.9
		});
		var loading = 'loading';
		loading = loading.split('');
		for(i=0; i<loading.length; i++) {
			loader.innerHTML += '<img src="http://farm.muddasheep.com/hq3/letters/' + loading[i] + '.png" alt="" />';
		}
	}
	animateSirPopup2ndLoading();
}

function animateSirPopup2ndLoading() {
	var loaderimages = $$('#sirpopup2ndloading img');
	if(loaderimages.length) {
		var fx = new Fx.Morph(loaderimages[currentLoadingImage], {
			duration: 500,
			wait: false
		}).start({
			opacity: [0.5, 1]
		});
		currentLoadingImage++;
		if(currentLoadingImage >= loaderimages.length) {
			currentLoadingImage = 0;
		}
		setTimeout('animateSirPopup2ndLoading()', 50);
	}
}

function hideSirPopup2ndLoading() {
	if($('sirpopup2ndloading')) {
		$('sirpopup2ndloading').dispose();
	}
}

window.onload = function() {
	initSidebar();
	initPopup();
}

if(window.addEvent) {
	window.addEvent('domready', function() {
		initTraps();
		initHQSTitle();
	});
}
