/**
 * Copyright (c) 2009 Avot Media BV
 */
function check_domains(domainChecker)
{
	$$('.dsa').each(function(el) {if (el.getParent() && !el.getParent().hasClass('h')) {el.checked = domainChecker.checked;}});
	$$('.dsna').each(function(el) {if (el.getParent() && !el.getParent().hasClass('h')) {el.checked = domainChecker.checked;}});
}

function checkDomain(Domain, ID)
{
	if (Domain.length > 0 && ID.length > 0) {
		var DomainCheck = new TimeoutRequest({
			method: 'get',
			url: window.baseurl + 'store/whois/' + Domain,
			timeout: 8000,
			noCache: true,
			onTimeout: function()
			{
				if ($('domainstatus_' + ID) && $('domainstatusicon_' + ID)) {
					$('domainstatusicon_' + ID).set('src', window.imageurl + 'error.gif');
					$('domainstatus_' + ID).set('text', 'timeout').addClass('orange');
					$$('.domainstatusrow_' + ID).addClass('orangebg');
				}
			},
			onFailure: function()
			{
				if ($('domainstatus_' + ID) && $('domainstatusicon_' + ID)) {
					$('domainstatusicon_' + ID).set('src', window.imageurl + 'error.gif');
					$('domainstatus_' + ID).set('text', 'timeout').addClass('orange');
					$$('.domainstatusrow_' + ID).addClass('orangebg');
				}
			},
			onSuccess: function(responseText)
			{
				if (responseText == 'OK' && $('domainstatus_' + ID) && $('domainstatusicon_' + ID) && $('domainstatusavailable_' + ID)) {
					$('domainstatusicon_' + ID).set('src', window.imageurl + 'accept.gif');
					$('domainstatusavailable_' + ID).removeClass('h');
					$('domainstatus_' + ID).set('text', 'beschikbaar').addClass('green');
					$$('.domainstatusrow_' + ID).addClass('greenbg');
				} else if (responseText == 'NOT OK' && $('domainstatus_' + ID) && $('domainstatusicon_' + ID) && $('domainstatusnotavailable_' + ID)) {
					$('domainstatusicon_' + ID).set('src', window.imageurl + 'cross.gif');
					$('domainstatusnotavailable_' + ID).removeClass('h');
					$('domainstatus_' + ID).set('text', 'niet beschikbaar').addClass('red');
					$$('.domainstatusrow_' + ID).addClass('redbg');
				} else if ($('domainstatus_' + ID) && $('domainstatusicon_' + ID)) {
					$('domainstatusicon_' + ID).set('src', window.imageurl + 'error.gif');
					$('domainstatus_' + ID).set('text', 'timeout').addClass('orange');
					$$('.domainstatusrow_' + ID).addClass('orangebg');
				}
			}
		});
		DomainCheck.send();
	}
}

function checkWebhosting()
{
	var showPopup = true;
	try {
		$$('.domainstatusselect').each(function(item, index)
		{
			if(item.getSelected()[0].value.toInt() > 0) {
				showPopup = false;
				throw StopIteration;
			}
		});
	} catch (e) {/* Done! */}
	if (showPopup === true) {
		var alertOverlay = new Element('div', {
			id: 'alertOverlay',
			opacity: 0.6,
			styles: {
				width: $(document.body).getWidth() + 'px',
				height: $(document.body).getHeight() + 'px'
			}
		});
		var alertContainer = new Element('div', {
			id: 'alertContainer',
			styles: {
				top: 0,
				left: (($(document.body).getWidth() / 2) - 170)
			}
		});
		$(document.body).adopt(alertOverlay, alertContainer);
		$('alertContainer').fade('hide').set('html', '<h3>Geen webhosting pakket geselecteerd</h3><p>U heeft nog geen webhosting pakket geselecteerd bij uw domeinnaam.</p><p>Weet u zeker dat u door wilt gaan, zonder webhosting pakket kunt u geen website plaatsen op de domeinnaam en of gebruik maken van de email diensten. U kunt de domeinnaam alleen doorsturen.</p><p><img src="' + window.imageurl + 'webhostingselect.gif" width="300" height="127" alt="Webhosting select" /></p><p><a href="javascript:void(0);" onclick="$(\'domainForm\').submit();"><img src="' + window.imageurl + 'buttons/yes.gif" width="143" height="31" alt="JA" style="margin-right: 14px;" /></a><a href="javascript:void(0);" onclick="$$($(\'alertOverlay\'), $(\'alertContainer\')).setStyle(\'display\', \'none\');"><img src="' + window.imageurl + 'buttons/no.gif" width="143" height="31" alt="NEE" /></a></p>');
		$$($('alertOverlay'), $('alertContainer')).setStyle('display', 'block');
		window.scrollTo(0, 0);
		$('alertContainer').setStyle('top', (($(document.body).getHeight() / 2) - ($('alertContainer').getHeight() / 2))).fade('in');
		return false;
	}
	return true;
}

function checkDomainForRegistration(Domain, ID)
{
	if (Domain.length > 0 && ID.length > 0) {
		if ($('domainstatusavailable_' + ID).hasClass('h') === false) {
			$('domainForm[Extensions][' + Domain + '_1]').checked = true;
		} else if ($('domainstatusnotavailable_' + ID).hasClass('h') === false) {
			$('domainForm[Extensions][' + Domain + '_2]').checked = true;
		} else {
			$('domainForm[Extensions][' + Domain + '_1]').checked = false;
			$('domainForm[Extensions][' + Domain + '_2]').checked = false;
		}
	}
}

function addDNSRecord(theForm, CSID)
{
	if (CSID.toInt() > 0) {
		var addDNSRequest = new Request({
			method: 'post',
			url: window.baseurl + 'account/adddnsrecord/' + CSID.toInt(),
			onSuccess: function(responseText)
			{
				if (responseText == 'OK') window.location.reload(true);
			}
		});
		addDNSRequest.send($(theForm).toQueryString());
	}
	return false;
}

var addDomainHolder = new Class({
	holderID: 0,
	initialize: function()
	{
		var instance = this;
		document.addEvent('keydown', function(e)
		{
			instance.checkKeyDown(e, instance);
		});
		var backgroundOverlay = new Element('div', {
			id: 'alertOverlay',
			opacity: 0.6,
			styles: {
				width: $(document.body).getWidth() + 'px',
				height: $(document.body).getHeight() + 'px'
			},
			events: {
				click: this.hideSelector.bind(this)
			}
		});
		var addDomainHolderContainer = new Element('div', {
			id: 'alertContainer',
			styles: {
				width: 892,
				height: 700,
				top: 116,
				left: (($(document.body).getWidth() / 2) - 466)
			}
		});
		var addDomainHolderContent = new IFrame({
			id: 'alertFrame',
			src: window.baseurl + 'account/holder/add?frame=1',
			width: 892,
			height: 700,
			frameborder: 0,
			scrolling: 'no'
		}).addEvent('keydown', function(e)
		{
			instance.checkKeyDown(e, instance);
		}).inject(addDomainHolderContainer);
		$(document.body).adopt(backgroundOverlay, addDomainHolderContainer);
	},
	showSelector: function(holderSelect)
	{
		this.holderSelect = holderSelect;
		$('alertFrame').set('src', window.baseurl + 'account/holder/add?frame=1');
		$$($('alertOverlay'), $('alertContainer'), $('alertFrame')).setStyle('display', 'block');
		this.lastScroll = $(window).getScroll();
		$(window).scrollTo(0, 0);
	},
	hideSelector: function()
	{
		getholders(this.holderSelect, this.holderID);
		$$($('alertOverlay'), $('alertContainer'), $('alertFrame')).setStyle('display', 'none');
		$(window).scrollTo(this.lastScroll.x, this.lastScroll.y);
	},
	getHolderSelect: function()
	{
		return this.holderSelect;
	},
	checkKeyDown: function(e, hm)
	{
		switch (e.code) {
			case 27:
			case 88:
			case 67:
				hm.hideSelector();
				break;
		}
		return false;
	}
});

function getholders(holderSelect, selectedValue, changeHolder)
{
	if (!$chk(selectedValue)) selectedValue = 0;
	if (!$chk(changeHolder)) changeHolder = false;
	if ($(holderSelect)) {
		$(holderSelect).removeAllOptions();
		$(holderSelect).addOption('-- Standaard houder --', 0);
		$(holderSelect).addOption('-- Anonieme houder --', 636787232);
		var holderRequest = new Request.JSON({
			method: 'get',
			url: window.baseurl + 'account/holder/get',
			onSuccess: function(holders)
			{
				if ($chk(holders)) {
					holders.each(function(holder, index)
					{
						$(holderSelect).addOption(holder.Name, holder.HolderID);
					});
				}
				$(holderSelect).setSelected(selectedValue);
			}
		});
		holderRequest.send();
	}
}