window.addEvent('domready', function() {
	activateAll();
});

window.addEvent('load', function() {
	normalBox('.normalBox');
	equalHeights('.galeriaPublic');
	equalHeights('.infoSeccion');
	equalHeights('.eventoSmall');
	equalHeights('.eleSmallSimple');
});

window.addEvent('resize', function() {
});

function activateAll() {
	activateTrans();
	activateMenu();
	activateFormsDiv();
	activateImageBig();
	activateMag();
	activateLeft();
	activateComment();
	activateFormsAjax();
	activateEmail();
}

function activateEmail() {
	if (isset($('mce-EMAIL'))) {
		$('mce-EMAIL').addEvent('click', function(evt){
			if ($('mce-EMAIL').get('value')+'' == 'your email...') {
				$('mce-EMAIL').set('value','');
			}
		});
	}
}

function activateReload() {
	activateComment();
	activateFormsAjax();
}

function activateComment() {
	$$('.formComment').each(function(formEle){
		formEle.getElements('input').each(function(ele){
			ele.addEvent('keydown', function(evt){
				if (ele.value.length>30) {evt.stop();}
			});
		});
		formEle.getElements('textarea').each(function(ele){
			ele.addEvent('keydown', function(evt){
				if (ele.value.length>200) {evt.stop();}
			});
		});
	});
}

function activateFormsAjax() {
	$$('.formAjax').each(function(ele){
		catchForm(ele);
	});
}

function activateMag() {
	if (isset($('magTopLeft'))) {
		var widthMags = 0;
		$$('.magTop').each(function(ele){widthMags += ele.getStyle('width').replace('px','')*1;});
		var widthMove = $('magTopInsMaskIns').getStyle('width').replace('px','')*1;
		$('magTopLeft').addEvent('click',function(evt){
			var leftAct = $('magTopIns').getStyle('left').replace('px','')*1;
			if (leftAct<0) {
				new Fx.Tween($('magTopIns')).start('left', leftAct, leftAct+widthMove);
			}
		});
		$('magTopRight').addEvent('click',function(evt){
			var leftAct = $('magTopIns').getStyle('left').replace('px','')*1;
			if (leftAct>(widthMags*-1 + widthMove)) {
				new Fx.Tween($('magTopIns')).start('left', leftAct, leftAct-widthMove);
			}
		});
	}
}

function activateLeft() {
	$$('.eleBig').getElements('img').each(function(ele){
		ele.addEvent('contextmenu', function(evt){
			evt.stop();
		});
	});
}

function activateTrans() {
	$$('.imageDesc').setStyle('opacity', '0.8');
	$$('.postIntroBanner').setStyle('opacity', '0.8');
}

function normalBox(className) {
	equalHeights(className);
	$$(className).each(function(ele){
		var normalBoxTop = new Element('div', {'class': 'normalBoxTop'});
		var normalBoxBottom = new Element('div', {'class': 'normalBoxBottom'});
		normalBoxTop.inject(ele, 'top');
	});
}

function activateImageBig() {
	$$('.imageBig').each(function(ele){
		console.log(intval(ele.getStyle('height').replace(' px',''))/2 -40);
		ele.addEvent('mouseover', function(evt){
			if (isset($('zoomDiv'))) {$('zoomDiv').dispose();}
			var zoomDiv = new Element('div', {id:'zoomDiv', class:'imageZoom', 
												styles:{
														top:intval(ele.getStyle('height').replace(' px',''))/2 -20,
														left:intval(ele.getStyle('width').replace(' px',''))/2 -20,
														}
											})
			zoomDiv.inject(ele);
			ele.setStyle('opacity', '0.7');
		});
		ele.addEvent('mouseleave', function(evt){
			if (isset($('zoomDiv'))) {$('zoomDiv').dispose();}
			ele.setStyle('opacity', '1');
		});
		ele.addEvent('click', function(evt){
			if (isset($('zoomDiv'))) {$('zoomDiv').dispose();}
			var eleImg = ele.getChildren('img')[0];
			var urlWindow = eleImg.get('src').replace('_web','').replace('_small','').replace('_thumb','').replace('_square','');
			popUpWindow(urlWindow, '500', '600');
		});
	});
}

function activateFormsDiv() {
	$$('.submitBtn').each(function(ele){
		var formEle = ele.getParents('form')[0];
		ele.addEvent('click', function(evt){
			formEle.submit();
		});
	});
}

function activateMenu() {
	$$('.modal a').each(function(ele){
		ele.addEvent('click', function(evt){
			evt.stop();
			showMessageAjax(ele.get('href')+'Modal');
		});
	});
}

function activateRotate(eleClass) {
	var rotater = new Rotater(eleClass,{
		slideInterval:5000,
		transitionDuration:1000
	});
}


function reloadDiv(urlReload, divReload) {
	var reloadRequest = new Request({
		method: 'get',
		url: urlReload,
		onSuccess: function(textResult, xmlResult){
						$(divReload).set('html',textResult);
						if (isset($(divReload).getElement('form'))) {
							cathForm($(divReload).getElement('form'));
						}
						activateAll();
					}
	}).send(); 	
}

function reloadDivSimple(urlReload, divReload) {
	var reloadRequest = new Request({
		method: 'get',
		url: urlReload,
		onSuccess: function(textResult, xmlResult){
						$(divReload).set('html',textResult);
						activateAll();
					}
	}).send(); 	
}

function injectDivSimple(urlReload, divInject) {
	var reloadRequest = new Request({
		method: 'get',
		url: urlReload,
		onSuccess: function(textResult, xmlResult){
						var newDiv = new Element('div', {'html':textResult});
						newDiv.inject($(divInject));
						activateAll();
					}
	}).send(); 	
}

function reloadDivToogle(urlReload, divReload) {
	if ($(divReload).get('html')!='') {
		eraseContentDiv (divReload);
	} else {
		reloadDivSimple(urlReload, divReload);
	}
}

function eraseContentDiv (divErase) {
	$(divErase).set('html', '');
}

function showHide(eleId) {
	if ($(eleId).getStyle('display') == 'block' || $(eleId).getStyle('display') == '')
		$(eleId).setStyle('display', 'none');
	else
		$(eleId).setStyle('display', 'block');
	return;
}

function showHideElement(ele) {
	if (ele.getStyle('display') == 'block' || ele.getStyle('display') == '')
		ele.setStyle('display', 'none');
	else
		ele.setStyle('display', 'block');
	return;
}

function hideAll(eleClass) {
	$$(eleClass).each(function(el){
		el.setStyle('display', 'none');
	});
}

function showHideAll(eleClass, ele) {
	hideAll(eleClass);
	$(ele).setStyle('display', 'block');
}

function equalHeights(className) {
	var maxHeight = 0;
	$$(className).each(function (ele) {
		var actHeight = parseInt(ele.getStyle('height').replace('px',''));
		if (actHeight > maxHeight) {
			maxHeight = actHeight;
		}
	});
	$$(className).each(function (ele) {
		ele.setStyle('height',maxHeight+'px');
	 });
}

function equalWidths(className) {
	var numClasses = 0;
	var parentWidth = 0;
	$$(className).each(function(ele){
		var eleParent = ele.getParent();
		parentWidth = eleParent.getStyle('width').replace('px','');
		numClasses++;
	});
	$$(className).each(function(ele){
		ele.setStyle('width',parentWidth/numClasses-25);
	});
}

function makeEventsDraggable() {
	$$('.close').each(function(ele){
		var dragContainerOptions = {
			handle: ele
		};
		ele.parentNode.makeDraggable(dragContainerOptions);
	});
}



function deleteParentDiv() {
	$$('.deleteParent').each(function(divDel){
		divDel.addEvent('click', function(eve) {
			eve.stop();
			divDel.getParent().getParent().dispose();
		})
	});
}

function isset(variable_name) {
	try {
		if (typeof(eval(variable_name)) != 'undefined')
			if (eval(variable_name) != null)
				return true;
	} catch(e) { }
	return false;
}

function goUp() {
	window.scrollTo(0,0);	
}

function openPrinterWindow(urlPrint) {
	window.open(urlPrint,'Print','width=750,height=600,toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,copyhistory=no,resizable=yes');
}

function popUpWindow(urlWindow, height, width) {
	window.open(urlWindow,'PopUp_'+Math.random(),'width='+width+',height='+height+',toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,copyhistory=no,resizable=yes');
}


function showMessageAjax(urlPage) {
	var reloadRequest = new Request({
		method: 'get',
		url: urlPage,
		onSuccess: function(textResult, xmlResult){
						showMessage(textResult);
					}
	}).send(); 	
}

function showMessageForm(urlForm, idDivResult) {
	var reloadRequest = new Request({
		method: 'get',
		url: urlForm,
		onSuccess: function(textResult, xmlResult){
						showMessage(textResult);
						activateReload();
						var form = $('message').getElement('form');
						form.addEvent('submit',function(formEvent){
							new Event(formEvent).stop();
							if (checkForm()==false) {
								var request = new Request({  
									url: form.getProperty('action'),  
									method: 'post', 
									update: 'refresh-me',
									data: form,
									onComplete: function(response) {
										if (isset(idDivResult)) {
											$(idDivResult).set('html', response);
										}
										$('message').dispose();
										activateReload();
									}
								}).post(form);
							} else {
								var htmlError = 'Tiene que completar todos los campos';
								if (isset($('messageError'))) {
									$('messageError').set('html',htmlError);
								} else {
									var divErrorMessage = new Element ('div', {'id':'messageError',
																				'html':htmlError
									});	
									divErrorMessage.inject($('closeMessage'), 'after');
								}
							}
						});
					}
	}).send();
}

function checkForm() {
	var error = false;
	$$('.checkjsRequired').each(function(ele){
		if (ele.get('value')=='') {
			error = true;
		}
	});
	return error;
}

function showMessage(messageHtml) {
	if (isset($('message'))) {
		$('message').dispose();
	}
	var size = window.getSize();
	var posX = size.x/2 - 275;
	var posY = size.y/2 - 200 + window.pageYOffset;
	var divMessage = new Element ('div', {'id':'message',
											'styles': {
												'position':'absolute',
												'z-index':'999',
												'width':'550px',
												'left': posX,
												'top': '50'
											}
						  		});	
	var divClose = new Element ('div', {'id':'closeMessage',
										'html':'[X]'
						  		});	
	var divContent = new Element ('p', {'html':messageHtml,
										'styles': {
											'padding': '30px 10px'
										}
									});
	//divblack
	var divBackgroundBlack = new Element ('div', {'id':'backgroundBlack', 'styles': {'opacity': '0'}});	
	if (!isset($('backgroundBlack'))) {divBackgroundBlack.inject($(document.body), 'top');}
	new Fx.Tween(divBackgroundBlack).start('opacity', 0, .9);
	$('backgroundBlack').addEvent('click', function(){closeMessage();});
	//divblack
	divClose.inject(divMessage);
	divContent.inject(divMessage);
	$('wrapper').setStyle('position','relative');
	divMessage.inject($('wrapper'), 'top');
	$('closeMessage').addEvent('click', function(){closeMessage();});
	window.scroll(0,0);
}

function closeMessage() {
	$(document.body).setStyle('overflow','auto');
	if (isset($('message'))) {$('message').dispose();}
	if (isset($('alert'))) {$('alert').dispose();}
	if (isset($('backgroundBlack'))) {$('backgroundBlack').dispose();}
}

function catchForm(formEle) {
	formEle.addEvent('submit',function(evt){
		new Event(evt).stop();
		var request = new Request({  
			url: formEle.getProperty('action'),  
			method: 'post', 
			update: 'refresh-me',
			data: formEle,
			onComplete: function(response) {
				formEle.getParent().set('html', response);
				activateReload();
			}
		}).post(formEle);
	});
}



/*ADDITIONAL FUNCTIONS*/
Array.prototype.indexAt = function(){
	for(var i = 0; i < this.length; i++){
		if(this[i]===arguments[0])
			return i;
		};
	return -1;
}; 
Array.prototype.add = function(wot){
	if(this.indexAt(wot) == -1) this.push(wot);
	return this;
}
function doubleval(mixed_var) {
    return this.floatval(mixed_var);
}
function floatval (mixed_var) {
    return (parseFloat(mixed_var) || 0);
}
function array_keys (input, search_value, argStrict) {
    var tmp_arr = {}, strict = !!argStrict, include = true, cnt = 0;
    var key = '';
    for (key in input) {
        include = true;
        if (search_value != undefined) {
            if (strict && input[key] !== search_value){
                include = false;
            } else if (input[key] != search_value){
                include = false;
            }
        }
        
        if (include) {
            tmp_arr[cnt] = key;
            cnt++;
        }
    }
    return tmp_arr;
}
function number_format(number, decimals, dec_point, thousands_sep) {
    number = (number+'').replace(',', '').replace(' ', '');
    var n = !isFinite(+number) ? 0 : +number, 
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;        };
    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }    return s.join(dec);
}
function money(numberText) {
	return number_format(doubleval(numberText), 2, ',', '');
}
function strip_tags (input, allowed) {
	allowed = (((allowed || "") + "")
	  .toLowerCase()
	  .match(/<[a-z][a-z0-9]*>/g) || [])
	  .join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)
	var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,
	   commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
	return input.replace(commentsAndPhpTags, '').replace(tags, function($0, $1){
	  return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
	});
}
function intval (mixed_var, base) {
    var type = typeof( mixed_var );
    if (type === 'boolean') {        
		return (mixed_var) ? 1 : 0;
    } else if (type === 'string') {
        tmp = parseInt(mixed_var, base || 10);
        return (isNaN(tmp) || !isFinite(tmp)) ? 0 : tmp;
    } else if (type === 'number' && isFinite(mixed_var) ) {        
		return Math.floor(mixed_var);
    } else {
        return 0;
    }
}
