
/*
 * @require mootools
 */

window.addEvent('domready', function () {
	$$('.script').each(function (objElement) {
		objElement.setStyle('display', 'block');
	});
	
	var objActionCounter = $$('#action_counter')
	var objTargetCounter = $$('#target_counter');
	
	if (objActionCounter && objTargetCounter) {

		objActionCounter.addEvent('keyup', function () {
			intLength = this.get('value').length;
			intRest   = 230 - intLength;

			if (intRest < 0) {
				strText = 'verbleibende Zeichen: <span style="color: #ff0000;">' + intRest + '</span>';
			} else {
				strText = 'verbleibende Zeichen: ' + intRest;
			}

			objTargetCounter.set('html', strText);
		});
	}
	
	$$('.action_motive').each(function (objElement) {
		objElement.addEvent('click', function (objEvent) {
			objEvent.stop();
			// last char => intMotive
			intMotive = this.href.substr(this.href.length - 1, 1);
			
			// set image
			objImage = $$('.selection_preview').getChildren('div')[0].getChildren('img')[0];
			objImage.set('src', 'img/image' + intMotive + '_normal.jpg');
			
			// set form value
			this.getParent('form').elements['intMotive'].value = intMotive;
			
			// reset border
			$$('.active').each(function(objElement) {
				objElement.removeClass('show');
			});
			
			this.getNext().addClass('show');
		});
	});
	
	/*
	 * Ecard next/prev image
	 */
	if ($('action_prev') || $('action_next')) {
		
		var objEcard      = {intCurrent: 0, arrEntry: null}
		objEcard.arrEntry = $$('.selection .entry');
		objEcard.objPrev  = $('action_prev');
		objEcard.objNext  = $('action_next');
		objEcard.objForm  = $('ecard');
		
		/*
		 * get current intCurrent value
		 */
		for (var i = 0; i < objEcard.arrEntry.length; i++) {
			if (!objEcard.arrEntry[i].hasClass('hide')) {
				objEcard.intCurrent = i;
				break;
			}
		}
		
		fncEcardPrev = function (objEvent) {
			objEvent.stop();
			/*
			 * this = bind: objEcard
			 */
			this.intCurrent--;	
			this.arrEntry[this.intCurrent].removeClass('hide');
			this.arrEntry[this.intCurrent + 4].addClass('hide');
			
			
			/*
			 * check hidde prev button
			 */
			if (this.intCurrent == 0) {
				this.objPrev.addClass('invisible');
			}
			
			/*
			 * check show next button
			 */
			if (this.intCurrent + 4 == this.arrEntry.length - 1) {
				this.objNext.removeClass('invisible');
			}
			
			objEcard.objForm.elements['intCurrent'].value = this.intCurrent;
		}
		
		fncEcardNext = function (objEvent) {
			objEvent.stop();
			/*
			 * this = bind: objEcard
			 */
	
			this.arrEntry[this.intCurrent].addClass('hide');
			this.arrEntry[this.intCurrent + 4].removeClass('hide');
			this.intCurrent++;	
			
			/*
			 * check show prev button
			 */
			if (this.intCurrent == 1) {
				this.objPrev.removeClass('invisible');
			}
			
			/*
			 * check hidde next button
			 */
			if (this.intCurrent + 4 == this.arrEntry.length) {
				this.objNext.addClass('invisible');
			}
			
			objEcard.objForm.elements['intCurrent'].value = this.intCurrent;
		}
		
		objEcard.objPrev.addEvent('click', fncEcardPrev.create({bind: objEcard}));
		objEcard.objNext.addEvent('click', fncEcardNext.create({bind: objEcard}));
		
	}
	

	
	
	var objActionFront = $$('#action_front');
	var objActionText  = $$('#action_text');
	var objTargetFront = $$('#target_front');
	var objTargetText  = $$('#target_text');
	
	if (objActionFront && objActionText && objTargetFront && objTargetText) {
		
		objActionFront.addEvent('click', function (objEvent) {
			
			objEvent.stop();
			objTargetText.removeClass('show');
			objTargetFront.addClass('show');
			
			// reset border
			$$('.active').each(function(objElement) {
				objElement.removeClass('show');
			});
			
			this.getNext().addClass('show');
		});
		objActionText.addEvent('click', function (objEvent) {
			
			objEvent.stop();
			objTargetFront.removeClass('show');
			objTargetText.addClass('show');
			
			// reset border
			$$('.active').each(function(objElement) {
				objElement.removeClass('show');
			});
			
			this.getNext().addClass('show');
			
		});
	}
});
