// metoda ktora zavola servis pre poslanie friend requestu
function sendFriendRequest(friend_id)
{
	var friendRequest;
	friendRequest = $('friendRequest-' + friend_id)
	
	new Ajax.Request('services/SendFriendRequest.srv', {
		method: 'post',
		parameters: {friendUid: friend_id},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['error'])
			{
				friendRequest.update(_da['error']);
			}
			else
			{
				friendRequest.update(_da['message']);
			}
		},
		
		onFailure: function()
		{
			friendRequest.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
	return false;
}

// metoda ktora zavola servis na akceptovanie friend requestu
// TODO otestovat ked bude htmlko a vsetko navrhnute pretoze updatovanie friendRequest a friendRequest2 moze byt potom ine
function acceptFriendRequest(friend_id)
{
	var friendRequest = $('friendRequest');
	var friendRequest2 = $('friendRequest' + friend_id)
	
	new Ajax.Request('services/AcceptFriendRequest.srv', {
		method: 'post',
		parameters: {friendUid: friend_id},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['error'])
			{
				if (friendRequest)
				{
					friendRequest.update(_da['error']);
				}
				friendRequest2.update(_da['error']);
			}
			else
			{
				if (friendRequest)
				{
					friendRequest.update(_da['message']);
				}
				friendRequest2.update(_da['message']);
			}
		},
		
		onFailure: function()
		{
			if (friendRequest)
			{
				friendRequest.update('Na serveri nastala chyba, skúste neskôr, prosím.');
			}
			friendRequest2.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
	return false;
}

// metoda ktora zavola servis na odmietnutie friend requestu
function declineFriendRequest(friend_id)
{
	var friendRequest = $('friendRequest');
	var friendRequest2 = $('friendRequest' + friend_id)
	
	new Ajax.Request('services/DeclineFriendRequest.srv', {
		method: 'post',
		parameters: {friendUid: friend_id},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['error'])
			{
				if (friendRequest)
				{
					friendRequest.update(_da['error']);
				}
				friendRequest2.update(_da['error']);
			}
			else
			{
				if (friendRequest)
				{
					friendRequest.update(_da['message']);
				}
				friendRequest2.update(_da['message']);
			}
		},
		
		onFailure: function()
		{
			if (friendRequest)
			{
				friendRequest.update('Na serveri nastala chyba, skúste neskôr, prosím.');
			}
			friendRequest2.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
	return false;
}

// metoda ktora zavola servis pre zrusenie priatelstva
function cancelFriendship(friend_id)
{
	var cancel = $('cancelFriendship');
	
	new Ajax.Request('services/CancelFriendship.srv', {
		method: 'post',
		parameters: {friendUid: friend_id},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['error'])
			{
				cancel.update(_da['error']);
			}
			else
			{
				cancel.update(_da['message']);
			}
		},
		
		onFailure: function()
		{
			cancel.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
	return false;
}

function donateProject(project)
{
	var value = $('donate-value').value;
	var message = $('donate-message');
	
	new Ajax.Request('services/DonateProject.srv', {
		method: 'post',
		parameters: {projectUid: project, value: value},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['error'])
			{
				if (message)
				{
					message.update(_da['error']);
				}
			}
			else
			{
				if (message)
				{
					message.update(_da['message']);
				}
			}
		},
		
		onFailure: function()
		{
			if (message)
			{
				message.update('Na serveri nastala chyba, skúste neskôr, prosím.');
			}
		}
	});
	return false;
}

function showHideBox(box)
{
	var boxes = ['invite-friends', 'find-friends', 'new-friends'];
	
	var link = $(box + '-link');
	classAttr = link.getAttribute('class');
	
	if (classAttr == 'open')
	{
		$(box).style.display = 'none';
		link.setAttribute('class', '');
	}
	else
	{
		$(box).style.display = '';
		link.setAttribute('class', 'open');
	}
	
	for (var i = 0; i < boxes.length; i++)
	{
		if (box != boxes[i])
		{
			if ($(boxes[i]))
			{
				$(boxes[i]).style.display = 'none';
				link = $(boxes[i] + '-link');
				link.setAttribute('class', '');
			}
		}
	}
	
	return false;
}

//
//	Trieda na posielanie mailu priatelovi
//
var ProjectFriendMail = Class.create({
	formDiv: 'posli-znamemu-form-div',
	messagePar: 'posli-znamemu-message',
	initialize: function() {
		//
	},
	
	showOriginal: function() {
		$(this.formDiv).style.display = 'none';
	},
	
	send: function() {
		new Ajax.Request('services/SendProjectLinkToFriend.xml', {
			method: 'post',
			//parameters: {'message':$('user_text').value, 'email':$('redaction_user_mail').value},
			parameters: {'project':$('project').value, 'email':$('email').value, 'message':$('message').value},
			onSuccess: this.parseResponse.bindAsEventListener(this),
			onFailure: function() {
				$(this.messagePar).style.display = '';
				$(this.messagePar).innerHTML = 'Na serveri vznikla chyba. Nepodarilo sa odoslať váš e-mail. Skúste to prosím znovu';
			}
		});
	},
	
	parseResponse: function(response) {
		var xmlDoc = response.responseXML;
		if (!xmlDoc) {
			messagePar.replace('Nepodarilo sa spracovať odpoveď zo servera');
			return;
		}
		
		var errors = xmlDoc.getElementsByTagName('error');
		if (errors.length > 0) {
			var result = '';
			for (var i = 0; i < errors.length; i++) {
				result += errors[i].attributes.getNamedItem('message').nodeValue;
				if (i + 1 != errors.length)
				{
					result += "<br />";
				}
			}
			$(this.messagePar).style.display = '';
			$(this.messagePar).innerHTML = result;
			return;
		}
		
		var response = xmlDoc.getElementsByTagName('message');
		var r = response[0];
		var text = r.attributes.getNamedItem("text").nodeValue;
		if (text == 'ok') {
			$(this.messagePar).style.display = '';
			$(this.messagePar).style.color = '';
			$(this.messagePar).innerHTML = 'Ďakujeme. Váš e-mail bol odoslaný.';
			this.showOriginal();
		} else {
			$(this.messagePar).style.display = '';
			messagePar.innerHTML(text);
		}
	}
	
});

//
//	Trieda na posielanie mailu priatelovi
//
var DonorChallengeFriendMail = Class.create({
	formDiv: 'posli-znamemu-form-div',
	messagePar: 'posli-znamemu-message',
	initialize: function() {
		//
	},

	showOriginal: function() {
		$(this.formDiv).style.display = 'none';
	},

	send: function() {
		new Ajax.Request('services/SendDonorChallengeLinkToFriend.xml', {
			method: 'post',
			//parameters: {'message':$('user_text').value, 'email':$('redaction_user_mail').value},
			parameters: {'donor_challenge':$('donor_challenge').value, 'email':$('email').value, 'message':$('message').value},
			onSuccess: this.parseResponse.bindAsEventListener(this),
			onFailure: function() {
				$(this.messagePar).style.display = '';
				$(this.messagePar).innerHTML = 'Na serveri vznikla chyba. Nepodarilo sa odoslať váš e-mail. Skúste to prosím znovu';
			}
		});
	},

	parseResponse: function(response) {
		var xmlDoc = response.responseXML;
		if (!xmlDoc) {
			messagePar.replace('Nepodarilo sa spracovať odpoveď zo servera');
			return;
		}

		var errors = xmlDoc.getElementsByTagName('error');
		if (errors.length > 0) {
			var result = '';
			for (var i = 0; i < errors.length; i++) {
				result += errors[i].attributes.getNamedItem('message').nodeValue;
				if (i + 1 != errors.length)
				{
					result += "<br />";
				}
			}
			$(this.messagePar).style.display = '';
			$(this.messagePar).innerHTML = result;
			return;
		}

		var response = xmlDoc.getElementsByTagName('message');
		var r = response[0];
		var text = r.attributes.getNamedItem("text").nodeValue;
		if (text == 'ok') {
			$(this.messagePar).style.display = '';
			$(this.messagePar).style.color = '';
			$(this.messagePar).innerHTML = 'Ďakujeme. Váš e-mail bol odoslaný.';
			this.showOriginal();
		} else {
			$(this.messagePar).style.display = '';
			messagePar.innerHTML(text);
		}
	}

});


// metody na odkryvanie a skryvanie divov v platobnych procesoch

function donateProjectShowHideDivs(box)
{
	var financny = $('financny-dar');
	var vecny = $('vecny-dar');
	var dobrovolnicka = $('dobrovolnicka-cinnost');
	var elektronicky = $('elektronicky');
	var trvaly = $('trvaly-prikaz');
	var sms = $('sms-platba');
	var credit = $('from-credit');
	var prevod = $('prevod');
	var ecard = $('ecard');
	
	if (box == 'financny-dar')
	{
		financny.style.display = '';
		vecny.style.display = 'none';
		dobrovolnicka.style.display = 'none';
		
		if ($('elektronicky-checkbox').checked)
		{
			elektronicky.style.display = '';
		}
		if ($('trvaly-prevod-checkbox').checked)
		{
			trvaly.style.display = '';
		}
		if ($('sms-platba-checkbox'))
		{
			if ($('sms-platba-checkbox').checked)
			{
				sms.style.display = '';
			}
		}
		if ($('from-credit-checkbox').checked)
		{
			credit.style.display = '';
		}
		if ($('ecard-checkbox').checked)
		{
			ecard.style.display = '';
		}
	}
	else if (box == 'vecny-dar')
	{
		financny.style.display = 'none';
		vecny.style.display = '';
		dobrovolnicka.style.display = 'none';
		ecard.style.display = 'none';
		
		trvaly.style.display = 'none';
		sms.style.display = 'none';
		elektronicky.style.display = 'none';
		credit.style.display = 'none';
		prevod.style.display = 'none';
	}
	else if (box == 'dobrovolnicka-cinnost')
	{
		financny.style.display = 'none';
		vecny.style.display = 'none';
		dobrovolnicka.style.display = '';
		ecard.style.display = 'none';
		
		trvaly.style.display = 'none';
		sms.style.display = 'none';
		elektronicky.style.display = 'none';
		credit.style.display = 'none';
		prevod.style.display = 'none';
	}
	
	if (box == 'trvaly-prikaz')
	{
		trvaly.style.display = '';
		sms.style.display = 'none';
		elektronicky.style.display = 'none';
		credit.style.display = 'none';
		prevod.style.display = 'none';
		ecard.style.display = 'none';
	}
	else if (box == 'sms-platba')
	{
		trvaly.style.display = 'none';
		sms.style.display = '';
		elektronicky.style.display = 'none';
		credit.style.display = 'none';
		prevod.style.display = 'none';
		ecard.style.display = 'none';
	}
	else if (box == 'elektronicky')
	{
		trvaly.style.display = 'none';
		sms.style.display = 'none';
		elektronicky.style.display = '';
		credit.style.display = 'none';
		prevod.style.display = 'none';
		ecard.style.display = 'none';
	}
	else if (box == 'from-credit')
	{
		trvaly.style.display = 'none';
		sms.style.display = 'none';
		elektronicky.style.display = 'none';
		credit.style.display = '';
		prevod.style.display = 'none';
		ecard.style.display = 'none';
	}
	else if (box == 'prevod')
	{
		trvaly.style.display = 'none';
		sms.style.display = 'none';
		elektronicky.style.display = 'none';
		credit.style.display = 'none';
		prevod.style.display = '';
		ecard.style.display = 'none';
	}
	else if (box == 'ecard')
	{
		trvaly.style.display = 'none';
		sms.style.display = 'none';
		elektronicky.style.display = 'none';
		credit.style.display = 'none';
		prevod.style.display = 'none';
		ecard.style.display = '';
	}
}

function administration(box)
{
	var amount = $(box+'-amount').value;
	amount = Number(amount.toString().replace(',', '.'))
	var administration = amount * 0.05;
	
	if (box == 'trvaly')
	{
		months = Number($('trvaly-months').value);
	
		//administration = administration * months;
		sum = $('month-sum');
		spolu = months * amount;
		sum.innerHTML = 'Počas ' + months + ' mesiacov poukážete spolu <strong>' + spolu.toString().replace('.', ',') + ' €</strong>.'
		sum.style.display = '';
	}
	
	if ($(box+'-administration') != null)
	{
		administration = Math.round(administration*100)/100;
		
		// todo 23,4 <- neprida nulu na koniec aby bolo 23,40
		$(box+'-administration').innerHTML = administration.toString().replace('.', ',') + ' €';
	}
}

function addProjectToCart(project)
{
	var message = $('cart-message');

	new Ajax.Request('services/AddProjectToCart.srv', {
		method: 'post',
		parameters: {projectUid: project},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['error'])
			{
				message.update(_da['error']);
			}
			else
			{
				message.update(_da['message']);
			}
		},
		
		onFailure: function()
		{
			message.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
	return false;
}

function removeProjectFromCart(project)
{
	var cartbox = $('box-of-my-projects');
	var message = $('cart-message');
	
	new Ajax.Request('services/RemoveProjectFromCart.srv', {
		method: 'post',
		parameters: {projectUid: project},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['error'])
			{
				message.update(_da['error']);
			}
			else
			{
				if (message)
				{
					message.update(_da['message']);
				}
				if (cartbox)
				{
					cartbox.replace(_da['cartBox']);
				}
			}
		},
		
		onFailure: function()
		{
			message.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
	return false;
}

function confirmPersonalWork(work)
{
	var confirmation = $('confirmation');
	var message = $('confirm-message');
	
	new Ajax.Request('services/ConfirmPersonalWork.srv', {
		method: 'post',
		parameters: {work: work},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['message'])
			{
				message.update(_da['message']);
			}
			else
			{
				confirmation.replace(_da['confirmationBox']);
			}
		},
		
		onFailure: function()
		{
			message.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
	return false;
}

function confirmMaterialGift(gift)
{
	var confirmation = $('confirmation');
	var message = $('confirm-message');
	
	new Ajax.Request('services/ConfirmMaterialGift.srv', {
		method: 'post',
		parameters: {gift: gift},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['message'])
			{
				message.update(_da['message']);
			}
			else
			{
				confirmation.replace(_da['confirmationBox']);
			}
		},
		
		onFailure: function()
		{
			message.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
	return false;
}

function removeMaterialGift(uid)
{
	var message = $('requested-donations-message');

	new Ajax.Request('services/RemoveMaterialGift.srv', {
		method : 'post',
		parameters : {'uid' : uid},

		onSuccess : function (transport) {
			eval(transport.responseText);
			if (_da['message']) {
				message.update(_da['message']);
			}

			if (_da['box']) {
				$('box-of-requested-donations').replace(_da['box']);
			}
		},
		onFailure : function () {
			message.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
}

function removePersonalWork(uid)
{
	var message = $('requested-donations-message');

	new Ajax.Request('services/RemovePersonalWork.srv', {
		method : 'post',
		parameters : {'uid' : uid},

		onSuccess : function (transport) {
			eval(transport.responseText);
			if (_da['message']) {
				message.update(_da['message']);
			}

			if (_da['box']) {
				$('box-of-requested-donations').replace(_da['box']);
			}
		},
		onFailure : function () {
			message.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
}

function reInviteFriend(invitation)
{
	var message = $('re-invite-message-'+invitation);
	
	new Ajax.Request('services/UserReInvitation.srv', {
		method: 'post',
		parameters: {invitation: invitation},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['message'])
			{
				message.update(_da['message']);
			}
			else
			{
				message.update(_da['message']);
			}
		},
		
		onFailure: function()
		{
			message.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
		
	});
	return false;
}

function changeOperator()
{
	var num = $('predcislie').value;
	var operator = $('operator');
	
	var orange = new Array('905', '906', '907', '908', '915');
	var tmobile = new Array('902', '903', '904');
	
	if (orange.inArray(num))
	{
		operator.value = 1;
		//$('podmienky-orange').style.display = '';
		//$('podmienky-t-mobile').style.display = 'none';
	}
	else if (tmobile.inArray(num))
	{
		operator.value = 2;
		//$('podmienky-t-mobile').style.display = '';
		//$('podmienky-orange').style.display = 'none';
	}
}

function selectOperator()
{
	var operator = $('operator').value;
	
	if (operator == 1)
	{
		//$('podmienky-orange').style.display = '';
		//$('podmienky-t-mobile').style.display = 'none';
	}
	
	else if (operator == 2)
	{
		//$('podmienky-t-mobile').style.display = '';
		//$('podmienky-orange').style.display = 'none';
	}
}

// Returns true if the passed value is found in the
// array. Returns false if it is not.
Array.prototype.inArray = function (value)
{
	var i;
	for (i=0; i < this.length; i++)
	{
		if (this[i] === value)
		{
			return true;
		}
	}
	return false;
};

Event.observe(window, 'load', LineCenter, false);

function LineCenter()
{
	if ($('full_area') != undefined)
	{
		var left = $('left_area'); 
		var center = $('full_area');	
		if (left.getHeight() > center.getHeight())
		{
				$('full_area').setStyle({height :  left.getHeight() +'px' });
		}
	}
}

function deleteStatus(event)
{
	eventdiv = $('event-' + event);
	
	new Ajax.Request('services/DeleteStatus.srv', {
		method: 'post',
		parameters: {event: event},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['error'])
			{
				alert(_da['error']);
			}
			else
			{
				eventdiv.update(_da['message']);
			}
		},
		
		onFailure: function()
		{
			eventdiv.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
	return false;
}

function showSMSCode()
{
	new Ajax.Request('services/ShowSMSCode.srv', {
		method: 'post',
		parameters: {sms_code: $('sms_code_id').value, project_id: $('project_id').value, administration: $('confirm_sms_administration').value},
		
		onSuccess: function(transport)
		{
			eval(transport.responseText);
			if (_da['error'])
			{
				alert(_da['error']);
			}
			else
			{
				$('sms_kod').style.display='';
			}
		},
		
		onFailure: function()
		{
			alert('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
	});
	
	return false;
}
function centerVertically(element) {

   // if (!(element = $(element))) return;
		
   // var vpHeight = $('#s01').getScrollOffsets().top;
		//alert(vpHeight);
    var height = element.getLayout().get('margin-box-height');
	//	alert(height);
		
    var scrollTop = $(document).viewport.getScrollOffsets().top;

    var avTop = (vpHeight / 2) - (height / 2) + scrollTop;

    if (avTop <= 10)
      avTop = 10;
		element.style.top = avTop+ 'px';
    return element;
  }

function posun(Num01, Num02)
{
	var num =  Math.round(((Num01 / 2) - (Num02 / 2)));
	// alert(num);
	return num;
}


// metoda ktora zavola servis pre pocitanie klikov na link videa
function mediaShowCount(videoDarcaId) {
	
	var videoCount;
	videoCount = $('videoCount-' + videoDarcaId);
	
	new Ajax.Request('services/MediaShowCount.srv', {
		
		method: 'post',
		parameters: {videoDarcaId: videoDarcaId},
		
		onSuccess: function(transport)	{
			var response = transport.responseText;
			videoCount.update('Počet videní: ' + response);
		},
		
		onFailure: function() {
			videoCount.update('Na serveri nastala chyba, skúste neskôr, prosím.');
		}
		
	});
	
	return false;
	
}

document.observe('dom:loaded', function() { 
	if ($('spravy') != undefined)
	{
		var Items = $('spravy').getElementsByClassName('item');
		for (var i=0; i<Items.length; i++){
			var Item = Items[i];
			var ObrazokH = Item.descendants()[0].getHeight();
			var NadpisH = Item.getElementsByTagName('h3')[0].getHeight();
			var ItemH = Item.getHeight() - 11;
			Item.descendants()[0].setStyle({marginTop :  posun(ItemH,ObrazokH) +'px' }); 
			Item.getElementsByTagName('h3')[0].setStyle({marginTop :  posun(ItemH,NadpisH) +'px' }); 
			
		}
	}
	
});
