// JavaScript Document

He.Application.SetLang = function(_lang, reload)
{
	if(_lang)
	{
		document.cookie = "lang=" + _lang;
		if(reload == true)
		{
			location.reload();
		}
	}
}


He.Application.DisplayHome = function()
{
	//He.Application.OnAir.Hide();
	He.Application.Background.Init('/');
		
	document.observe('clickedlink:loaded', function(_url)
	{
		$('container').scrollTo();

		var _currentUrl = _url.memo.replace(He.Framework.Nav.root, '');

		He.Application.OnAir.Close();
		He.Application.Background.Init(_currentUrl);
		He.Application.SlideShow.Init();
		
		if(_currentUrl == '/')
		{
			He.Application.Home.Display();
		}
		else
		{
			He.Application.Home.Reset();
		}
	});
};

He.Application.Home = 
{
	Display: function()
	{
		$('container').addClassName('home');
		$('footer').addClassName('hide');
		
		$$('#main-navigation li').each(function(_el, _index)
		{
			_el.removeClassName('active');
		});
	},
	
	Reset: function()
	{
		$('container').removeClassName('home');
		$('footer').removeClassName('hide');
	}
}

He.Application.Background  =
{
	//,'/Static/images/bkgd/Accueil/home2.jpg','/Static/images/bkgd/Accueil/home3.jpg','/Static/images/bkgd/Accueil/home4.jpg','/Static/images/bkgd/Accueil/home5.jpg','/Static/images/bkgd/Accueil/home6.jpg'
	Data:
	{
		'/': ['/Static/images/bkgd/Accueil/home1.jpg'],
		'Bar-a-vins': ['/Static/images/bkgd/Bar-a-vins/bar1.jpg','/Static/images/bkgd/Bar-a-vins/bar2.jpg','/Static/images/bkgd/Bar-a-vins/bar3.jpg','/Static/images/bkgd/Bar-a-vins/bar4.jpg','/Static/images/bkgd/Bar-a-vins/bar5.jpg'],
		'Calendrier': ['/Static/images/bkgd/Calendrier/calendrier1.jpg','/Static/images/bkgd/Calendrier/calendrier2.jpg','/Static/images/bkgd/Calendrier/calendrier3.jpg','/Static/images/bkgd/Calendrier/calendrier4.jpg','/Static/images/bkgd/Calendrier/calendrier5.jpg'],
		'Cercle-Partenaires': ['/Static/images/bkgd/Cercle-Partenaires/Cercle1.jpg'],
		'Librairie': ['/Static/images/bkgd/Librairie/librairie1.jpg','/Static/images/bkgd/Librairie/librairie2.jpg','/Static/images/bkgd/Librairie/librairie3.jpg'], //,'/Static/images/bkgd/Librairie/Librairie4.jpg'],
		'Saison': ['/Static/images/bkgd/Saison/saison1.jpg','/Static/images/bkgd/Saison/saison2.jpg','/Static/images/bkgd/Saison/saison3.jpg','/Static/images/bkgd/Saison/saison4.jpg','/Static/images/bkgd/Saison/saison4.jpg'],
//		'Billetterie': ['/Static/images/bkgd/Pratique/Billetterie/Billeterie1.jpg','/Static/images/bkgd/Pratique/Billetterie/Billeterie1.jpg'],
//		'Espace-Presse': ['/Static/images/bkgd/Pratique/Espace-Presse/presse1.jpg','/Static/images/bkgd/Pratique/Espace-Presse/presse2.jpg','/Static/images/bkgd/Pratique/Espace-Presse/presse3.jpg'],
//		'Espace-Pro': ['/Static/images/bkgd/Pratique/Espace-Pro/pro1.jpg','/Static/images/bkgd/Pratique/Espace-Pro/pro2.jpg','/Static/images/bkgd/Pratique/Espace-Pro/pro3.jpg'],
//		'Info': ['/Static/images/bkgd/Pratique/Info/info1.jpg','/Static/images/bkgd/Pratique/Info/info2.jpg','/Static/images/bkgd/Pratique/Info/info3.jpg'],
		'Pratique': ['/Static/images/bkgd/Pratique/pratique1.jpg','/Static/images/bkgd/Pratique/pratique2.jpg','/Static/images/bkgd/Pratique/pratique3.jpg','/Static/images/bkgd/Pratique/pratique6.jpg','/Static/images/bkgd/Pratique/pratique7.jpg','/Static/images/bkgd/Pratique/pratique8.jpg','/Static/images/bkgd/Pratique/pratique9.jpg','/Static/images/bkgd/Pratique/pratique10.jpg']
//		'Partenaires': ['/Static/images/bkgd/Pratique/Partenaires/partenaire1.jpg']
	},
	
	// Construit le wrapper du background
	BuildWrapper: function(_img)
	{
		//<div id="background"><div><table><tbody><tr><td><img style="display: block;" alt="" src="/Static/images/bkgd/Accueil/home1.jpg" /></td></tr></tbody></table></div></div>
		var	_bkgd = Builder.node('div', {id: 'background'}, [
						Builder.node('div',[
							Builder.node('table', [
								Builder.node('tbody', [
									Builder.node('tr', [
										Builder.node('td', [
											Builder.node('img', {src: _img, className: 'block', id: 'background-img'})
										])
									])
								])
							])
						])
					]);

		$$('body')[0].appendChild(_bkgd);
	},
	
	UpdateImage: function(_img)
	{
		$('background-img').src = _img;
	},
	
	PickImage: function(_url)
	{
		var _catIndex	= '/';
		
		if(_url != '/')
		{
			// remove first "/"
			if(_url.substr(0, 1) == '/')
			{
				_url = _url.substr(1);
			}
			
			// remove last "/"
			if(_url.substr(-1) == '/')
			{
				_url = _url.substr(0, (_url.length -1));
			}
			
			var _path	= _url.split('/');
	
			var _size		= _path.length;
			
			if(_path[0].match("[:]"))
			{
				var _level1		= _path[0].split(':');
				
				_path[0]		= _level1[0];
			}

			if(He.Application.Background.Data[_path[0]])
			{
				_catIndex = _path[0];
			}

			if((_size > 1) && (He.Application.Background.Data[_path[1]]))
			{
				_catIndex = _path[1];
			}	
		}
		
		var _cat		= He.Application.Background.Data[_catIndex];
		
		
		var _max		= _cat.length;
		var _index		= Math.floor(Math.random() * _max);

		
		return _cat[_index];
	},
	
	Init: function(_url)
	{	
		var _img = He.Application.Background.PickImage(_url);
		
		if($('background'))
		{
			He.Application.Background.UpdateImage(_img);
		}
		else
		{
			He.Application.Background.BuildWrapper(_img);
		}
	}
}


He.Application.OnAir = 
{
	Flag: false,
	IsOpen: false,
	Duration: 1,
	
	Hide: function()
	{
		//console.log('Hide');
		//$("on-air").style.display = 'none';
	},
	
	Toggle: function()
	{
		if(He.Application.OnAir.Flag == true)
		{
			return;
		}

		He.Application.OnAir.Flag = true;

		var _container = $("on-air");
		
		if(_container.style.display == 'none')
		{
			He.Application.OnAir.Open();
		}
		else
		{
			He.Application.OnAir.Close();
		}
	},
	
	Open: function()
	{		
		if(!He.Application.OnAir.IsOpen)
		{
			He.Application.Home.Reset();
			
			var _container = $("on-air");
			
			Effect.BlindDown(_container,
			{
				duration: He.Application.OnAir.Duration,
				afterFinish: function()
				{
					He.Application.OnAir.Flag	= false;
					He.Application.OnAir.IsOpen	= true;
				}
			});
		}
	},
	
	Close: function()
	{
		if(He.Application.OnAir.IsOpen)
		{
			var _container = $("on-air");
			
			Effect.SlideUp(_container,
			{
				duration: He.Application.OnAir.Duration,
				afterFinish: function()
				{
					He.Application.OnAir.Flag	= false;
					He.Application.OnAir.IsOpen	= false;
				}
			});
		}
	}

}

He.Application.Filters =
{
	Buttons		: null,
	Lists		: null,
	Labels		: null,
	BaseUrl		: null,
	CallBack	: null,
	
	Open: function(_btn, _list)
	{
		He.Application.Filters.Reset();

		_btn.removeClassName('corner-all');
		_btn.addClassName('corner-top');
		_list.style.visibility = 'visible';
	},
	
	Close: function(_btn, _list)
	{
		_btn.removeClassName('corner-top');
		_btn.addClassName('corner-all');
		_list.style.visibility = 'hidden';
	},
	
	Reset: function()
	{
		He.Application.Filters.Buttons.each(function(_el)
		{
			_el.removeClassName('corner-top');
			_el.addClassName('corner-all');
		});
		
		He.Application.Filters.Lists.each(function(_el)
		{
			_el.setStyle({visibility: 'hidden'});
		});
	},
	
	GetFilters: function()
	{
		_filters = new Array();
		
		He.Application.Filters.Labels.each(function(_el, _index)
		{
			var _val = _el.readAttribute('data-filter-val');
			
			if(_val != '')
			{
				var _obj = 
				{
					name: 'data-' + _el.readAttribute('data-filter-name'),
					val: _val
				}
				_filters.push(_obj);
			}
		});
		
		return _filters;
	},
	
	Unset: function()
	{
		He.Application.Filters.Labels.each(function(_label)
		{
			_label.setAttribute('data-filter-val', '');
			_label.innerHTML = _label.readAttribute('data-filter-default');
		});
	},
	
	CalendarCallback: function()
	{
		_filters = He.Application.Filters.GetFilters();
		
		var _filterTotal = _filters.length;

		$$('table.calendar-table').each(function(_table)
		{
			var _tr			= _table.getElementsByTagName('tr');
			var _total		= _tr.length;
			var _display	= false;
			
			for(var _i = 0; _i < _total; _i++)
			{
				var _el			= $(_tr[_i]);
				var _exclude	= false;
				
				for(var _j = 0;  _j < _filterTotal; _j++)
				{
					if(_el.readAttribute(_filters[_j].name) != _filters[_j].val)
					{
						_exclude = true;
					}
				}
				
				if(_exclude)
				{
					_el.hide();
				}
				else
				{
					_display = true;
					
					_el.show();	
				}
			}
			
			if(_display)
			{
				_table.show();
			}
			else
			{
				_table.hide();	
			}
		});

	},
	
	LibraryCallback: function()
	{
		_filters = He.Application.Filters.GetFilters();
		
		var _filterTotal = _filters.length;
		
		$$('div.library-item').each(function(_div)
		{
			var _el			= $(_div);
			var _exclude	= false;
			
			for(var _j = 0;  _j < _filterTotal; _j++)
			{
				if(_el.readAttribute(_filters[_j].name) != _filters[_j].val)
				{
					_exclude = true;
				}
			}
			
			if(_exclude)
			{
				_el.hide();
			}
			else
			{
				_el.show();	
			}
		});
		
		$('library-content').scrollTo();
	},
	
	Init: function()
	{
		var _filters					= $$('div.bdn-filters');
		He.Application.Filters.Buttons	= $$('div.bdn-filters div');
		He.Application.Filters.Lists	= $$('div.bdn-filters ul');
		He.Application.Filters.Labels	= $$('span.filter-label');

		_filters.each(function(_el, _index)
		{
			var _btn	= _el.getElementsByTagName('div')[0];
			var _list	= _el.getElementsByTagName('ul')[0];
			var _label	= _btn.getElementsByTagName('span')[1];

			var _target = _el.readAttribute('data-bdn-filter');
			
//			_label.readAttribute('data-filter-val');
			
			Event.observe(_btn, 'click', function (event)
			{
				Event.stop(event);
				
				if(_list.style.visibility == 'hidden')
				{
					He.Application.Filters.Open(_btn, _list);
				}
				else
				{
					He.Application.Filters.Close(_btn, _list);
				}
			});
			
			var _links		= _list.getElementsByTagName('a');
			var _nbLinks	= _links.length;
			
			for(var _i in _links)
			{
				_links[_i].onclick = function(event)
				{
					He.Application.Filters.Unset();
					
					var _rel			= this.readAttribute('rel');

					_label.setAttribute('data-filter-val', _rel);
					
					var _title			= this.readAttribute('title');//.innerHTML;
					
					var _tilteLenght	= _title.length;
					
					_label.innerHTML	= (_tilteLenght > 30) ? _title.substr(0, 30) + '...' : _title;
					
					He.Application.Filters[He.Application.Filters.CallBack]();
				}
			};

			
			_list.style.visibility = 'hidden';
		});

		
		var _body = $$('body')[0];
		
		Event.observe(_body, 'click', function (event)
		{
			Event.stop(event);

			He.Application.Filters.Reset();
		});
	}
};


/*
 * EASING EQUATIONS
 * 
 * Open source under the BSD License. 
 * 
 * Copyright © 2001 Robert Penner
 * All rights reserved.
 *
 */

He.Application.EaseInOutExpo = function (x, t, b, c, d)
{
	if (t==0) return b;
	if (t==d) return b+c;
	if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
	return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
}

He.Application.SlideShow = 
{
	Counter: function(_current, _total)
	{
		_current++;
		
		return _current + ' sur ' + _total + ' - ';
	},
	
	Move: function(_el, _move)
	{
		//console.log(_el);
		//console.log(_move);
		//_el.scrollLeft+=_move;
	},
	
	Build: function(_el, _index, _items)
	{
		var _this			= $(_el);
		var _current		= 0;
		
		// Legends
		
		var _spans			= _el.getElementsByTagName('span');
		var _nbSpans		= _spans.length;
		var _legends		= new Array();
		
		for(var i = 0 ; i < _nbSpans ; ++i)
		{
			if(_spans[i].className.match(/media-slideshow-legend/))
			{
				_spans[i].style.display = 'none';
				_legends.push(_spans[i]);
			}
		}

		_this.writeAttribute('id', 'media-slideshow-'+_index);

		var _parent			= _this.up('div');
		var _parentWidth	= _parent.getDimensions();
		
		var _nbItems		= _items.length;

		var _wrapperWidth	= (_parentWidth.width * _nbItems);

		// Wrapper
		
		var _wrapper			= document.createElement('div');
		_wrapper.className		= 'media-slideshow-wrapper';
		_wrapper.style.width	= _wrapperWidth +'px';

		while (_el.firstChild)
		{
			_wrapper.appendChild(_el.firstChild);
		}
		
		_el.appendChild(_wrapper);

		// Controls
		var _control		= document.createElement('div');
		_control.className	= 'media-slideshow-control floatfixer';
		
		var _nav			= document.createElement('div');
		_nav.className		= 'media-slideshow-nav';

		var _text			= He.Application.SlideShow.Counter(_current, _nbItems);

		var _countText		= document.createTextNode(_text);
		
		var _count			= document.createElement('span');
		_count.className	= 'media-slideshow-count font-dark font-small';
		_count.appendChild(_countText);

		var _icoText		= document.createTextNode('&nbsp;');

		var _prev			= document.createElement('a');
		_prev.href			= 'javascript:void(0)';
		_prev.className		= 'btn-std float-left corner-all margin-right-5px';
		_prev.title			= 'slide précédente';
		_prev.onclick		= function()
		{
			if(_current > 0)
			{
				_legends[_current].style.display	= 'none';
				_el.scrollLeft					   -= _parentWidth.width;
				_current--;
				_legends[_current].style.display	= 'inline';
				
				_text								= He.Application.SlideShow.Counter(_current, _nbItems);
				_count.innerHTML					= _text;
			}			
		}
		
		var _icoPrev		= document.createElement('span');
		_icoPrev.className	= 'icons icon-prev-big text-replace';
		_icoPrev.appendChild(_icoText);
		
		var _next			= document.createElement('a');
		_next.href			= 'javascript:void(0)';
		_next.className		= 'btn-std float-left corner-all margin-right-5px';
		_next.title			= 'slide suivante';
		_next.onclick		= function()
		{
			var _ref = (_current + 1);
			
			if(_ref < _nbItems)
			{
				_legends[_current].style.display	= 'none';
				_el.scrollLeft					   +=_parentWidth.width;
				_current++;
				_legends[_current].style.display	= 'inline';
				
				_text								= He.Application.SlideShow.Counter(_current, _nbItems);
				_count.innerHTML					= _text;
			}
		}
		
		var _icoNext		= document.createElement('span');
		_icoNext.className	= 'icons icon-next-big text-replace';
		_icoNext.appendChild(_icoText);
	
		_prev.appendChild(_icoPrev);
		_next.appendChild(_icoNext);
		_nav.appendChild(_prev);
		_nav.appendChild(_next);
		_nav.appendChild(_count);
		_control.appendChild(_nav);
		//_el.appendChild(_control);
		
		_parent.insertBefore(_control, _el.nextSibling);

		for(var _i = 0; _i < _nbItems; _i++)
		{
			_control.appendChild(_legends[_i]);
		}
		
		_legends[0].style.display = 'inline';
	},
	
	Init: function()
	{
		_sliders = $$('div.media-slideshow');
		
		_sliders.each(function(_el, _index)
		{
			var _items  =  _el.getElementsByTagName('div');
			
			if(_items.length > 1)
			{
				He.Application.SlideShow.Build(_el, _index, _items);
			}
			
		});
	}
}

He.Application.Calendar = 
{
	Init: function()
	{
		var _height		= 0;
		var _calendars	= $$('table.mini-calendar');
		var _current	= 0;
		var _nbCalendar	= _calendars.length;
		
		if(_nbCalendar > 1)
		{
			_calendars.each(function(_el, _index)
			{
				var _d = _el.getDimensions();
				_el.style.display = 'none';
				
				// Prototype.js doesn't return correct height (no outer height)
				/*
				if(_d.height > _height)
				{
					_height = _d.height;
				}
				*/

				//<a href="javascript:void(0)" class="btn-calendar float-left corner-all align-center" title="slide précédente"><span class="icons icon-prev-small text-replace margin-auto">&nbsp;</span></a>
				
				var _tfoot			= _el.getElementsByTagName('tfoot')[0];
				var _tfootTd		= _tfoot.getElementsByTagName('td');
				var _tfootPrev		= _tfootTd[0];
				var _tfootNext		= _tfootTd[1];
				
				var _icoText		= document.createTextNode('&nbsp;');
				
				var _prev			= document.createElement('a');
				_prev.href			= 'javascript:void(0)';
				_prev.className		= 'btn-calendar float-left corner-all align-center';
				_prev.title			= 'mois précédent';
				_prev.onclick		= function()
				{
					if(_current > 0)
					{
						var _prevCal	= (_current - 1);
						_calendars[_current].style.display = 'none';
						_calendars[_prevCal].style.display = 'block';
						_current = _prevCal;
					}
				}
				
				var _icoPrev		= document.createElement('span');
				_icoPrev.className	= 'icons icon-prev-small text-replace margin-auto';
				_icoPrev.appendChild(_icoText);

				_prev.appendChild(_icoPrev);
				
				var _next			= document.createElement('a');
				_next.href			= 'javascript:void(0)';
				_next.className		= 'btn-calendar float-left corner-all align-center';
				_next.title			= 'mois suivant';
				_next.onclick		= function()
				{
					var _nextCal = (_current + 1);
			
					if(_nextCal < _nbCalendar)
					{
						_calendars[_current].style.display = 'none';
						_calendars[_nextCal].style.display = 'block';
						_current = _nextCal;
					}
				}
				
				var _icoNext		= document.createElement('span');
				_icoNext.className	= 'icons icon-next-small text-replace margin-auto';
				_icoNext.appendChild(_icoText);

				_prev.appendChild(_icoPrev);
				_next.appendChild(_icoNext);

				_tfootPrev.appendChild(_prev);
				_tfootNext.appendChild(_next);
				
			});
			
			_calendars[0].style.display = 'block';
			
			// Wrapper
			
			var _wrapper			= $('mini-calendar-wrapper');
			_wrapper.style.height	= '200px';
		}
	}
};

He.Application.LightBox = 
{
	Img: null,
	Overlay: null,
	
	Open: function(_url)
	{
		var _arrayPageSize = He.Application.GetPageSize();
		var _container		= $('library-content');
		var _objBody		= $$('body')[0];
		
		var _imageWrapper	= document.createElement('div');
		_imageWrapper.id	= 'library-image-wrapper';
		
		var _img			= new Image();
		_img.src			= _url;
		_img.className		= 'block margin-auto';
		
		var _close			= document.createElement('span');
		_close.className	= 'btn-calendar block margin-auto corner-all align-center';

		var _icoText		= document.createTextNode('&nbsp;');
		
		var _icoClose		= document.createElement('span');
		_icoClose.className	= 'icons icon-close text-replace margin-auto';
		_icoClose.appendChild(_icoText);

		_imageWrapper.appendChild(_img);

		_close.appendChild(_icoClose);
		_imageWrapper.appendChild(_close);
		
		_container.appendChild(Builder.node('div',{'id':'library-overlay', 'class':'corner-all'}));
		_objBody.appendChild(_imageWrapper);
		
		He.Application.LightBox.Overlay	= $('library-overlay');
		He.Application.LightBox.Img		= $('library-image-wrapper');
/*
		_img.onload = function()
		{
			var _top = (_arrayPageSize[1] - _img.height);
			He.Application.LightBox.Img.setStyle({ top: _top + 'px'});
        };
*/
		He.Application.LightBox.Overlay.hide().observe('click', He.Application.LightBox.Close);
		He.Application.LightBox.Img.hide().observe('click', He.Application.LightBox.Close);
		
		new Effect.Appear(He.Application.LightBox.Overlay, 
		{
			duration: 0.2, 
			from: 0.0, 
			to: 0.8, 
			afterFinish: function()
			{
				new Effect.Appear(He.Application.LightBox.Img, {duration: 0.2, from: 0.0, 	to: 1});
			}
		});
	},
	
	Close: function()
	{
		new Effect.Fade(He.Application.LightBox.Overlay, 
		{
			duration: 0.2,
			afterFinish: function()
			{
				He.Application.LightBox.Overlay.remove();
			}
		});
		
		new Effect.Fade(He.Application.LightBox.Img, 
		{
			duration: 0.2,
			afterFinish: function()
			{
				He.Application.LightBox.Img.remove();
			}
		});
	}
};


He.Application.Newsletter = 
{
	Box: null,
	Overlay: null,
	
	Open: function()
	{
		$('feedback-newsletter').addClassName('hide');
		$('alert-news').addClassName('hide');
		$('inscription-news').show();
		$('send-news').show();
		
		var _arrayPageSize = He.Application.GetPageSize();
		
		He.Application.Newsletter.Overlay.setStyle({width: _arrayPageSize[0] + 'px', height: _arrayPageSize[1] + 'px'});
		
		new Effect.Appear(He.Application.Newsletter.Overlay, {duration: 0.2, from: 0.0, to: 0.8});
	
		// calculate top and left offset for the lightbox 
		var _arrayPageScroll	= document.viewport.getScrollOffsets();
		var _lightboxTop		= _arrayPageScroll[1] + (document.viewport.getHeight() / 10);
		var _lightboxLeft		= _arrayPageScroll[0];
		
		He.Application.Newsletter.Box.setStyle({top: _lightboxTop + 'px', left: _lightboxLeft + 'px'}).show();
	},
	
	Close: function()
	{
		He.Application.Newsletter.Box.hide();
		new Effect.Fade(He.Application.Newsletter.Overlay, {duration: 0.2});
	},
	
	Email: function(_val)
	{
		var _re = /^([\w-]+(?:\.[\w-]+)*)\@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$|(\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)$/i;
		
		if(!_val.match(_re))
		{
			
			return false;
		}
		
		return true;
	},
	
	Feedback: function()
	{
		var _inscription = $('inscription-news');
		var _alert = $('alert-news');
		var _send = $('send-news');

		_inscription.hide();
		_send.hide();
		_alert.removeClassName('hide');		
	},
	
	Init: function()
	{
		var _objBody = $$('body')[0];
	
		_objBody.appendChild(Builder.node('div',{id:'overlay'}));
		
		He.Application.Newsletter.Overlay	= $('overlay');
		He.Application.Newsletter.Box		= $('newsletter-box');
	
		He.Application.Newsletter.Box.hide();
		He.Application.Newsletter.Overlay.hide().observe('click', He.Application.Newsletter.Close);
	
	},

	Send: function()
	{
		var _val = $('newsletter-input').value;
		
		if (He.Application.Newsletter.Email(_val))
		{
			
			He.Framework.Ajax.Request('/update:newSubscriber', 'Subscriber=' + _val)
			He.Application.Newsletter.Feedback();
		}
		else
		{
			$('feedback-newsletter').removeClassName('hide');	
		}
	}
};

He.Application.PrivateFile = 
{
	Box: null,
	Overlay: null,
	
	Open: function(_url, _name)
	{
		He.Application.PrivateFile.Box		= $('privatefile-box');
		
		$('privatefile-step1').show();
		$('privatefile-step2').hide();
		$('privatefile-error').hide();
		$('privatefile-input').value = '';

		
		He.Application.PrivateFile.Box.hide();
		He.Application.Newsletter.Overlay.hide().observe('click', He.Application.PrivateFile.Close);
		
		var _arrayPageSize = He.Application.GetPageSize();
		
		He.Application.Newsletter.Overlay.setStyle({width: _arrayPageSize[0] + 'px', height: _arrayPageSize[1] + 'px'});
		
		new Effect.Appear(He.Application.Newsletter.Overlay, {duration: 0.2, from: 0.0, to: 0.8});
	
		$('privatefile-url').value	= _url;
		$('privatefile-name').value	= _name;
	
		// calculate top and left offset for the lightbox 
		var _arrayPageScroll	= document.viewport.getScrollOffsets();
		var _lightboxTop		= _arrayPageScroll[1] + (document.viewport.getHeight() / 10);
		var _lightboxLeft		= _arrayPageScroll[0];
		
		He.Application.PrivateFile.Box.setStyle({top: _lightboxTop + 'px', left: _lightboxLeft + 'px'}).show();
	},
	
	Check: function()
	{
		$('privatefile-error').hide();
		
		var _pass	= $('privatefile-input').value;
		var _url	= $('privatefile-url').value;
		var _name	= $('privatefile-name').value;
		var _base	= '/Check';
		
		var _call	= _base + _url + ':' + _pass;
		var _file	= _url + ':' + _pass;
		
		new Ajax.Request(_call,
		{
			onSuccess: function(_response)
			{
				if(_response.responseText == 1)
				{
					$('privatefile-step1').hide();
					$('privatefile-step2').show();
					
					// @TODO download 
					$('privatefile-link').href = _file;
				}
				else
				{
					$('privatefile-error').show();
				}
			}
		});
	},
	
	Close: function()
	{
		He.Application.PrivateFile.Box.hide();
		new Effect.Fade(He.Application.Newsletter.Overlay, {duration: 0.2});
	}
};


He.Application.GetPageSize = function()
{
		
	 var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY)
	{	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	}
	else if (document.body.scrollHeight > document.body.offsetHeight) // all but Explorer Mac
	{
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	}
	else
	{ // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	
	if(self.innerHeight)	// all except Explorer
	{
		if(document.documentElement.clientWidth)
		{
			windowWidth = document.documentElement.clientWidth; 
		}
		else
		{
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	}
	else if(document.documentElement && document.documentElement.clientHeight)// Explorer 6 Strict Mode
	{ 
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	}
	else if(document.body) // other Explorers
	{
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight)
	{
		pageHeight = windowHeight;
	}
	else
	{ 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth)
	{	
		pageWidth = xScroll;		
	}
	else
	{
		pageWidth = windowWidth;
	}

	return [pageWidth,pageHeight];
}


He.Application.FormPartner = 
{
	CompanyName: function(_el, _display)
	{
		document.getElementById('company_handler').className = _display;
		
		var _civilities = $$('input[name="rko_user_type"]');
		
		for(var _i  = 0; _i < _civilities.length; _i++)
		{
			var _label = _civilities[_i].up(0);
			_label.addClassName('unselected-row');
		}
		
		_el.up(0).removeClassName('unselected-row');
	
		var _elSociete = $$('[data-type="societe"]');	
		var _elParticulier = $$('[data-type="particulier"]');
		
		var _donArr = new Array('don_grd_mecene', 'don_mecene', 'don_ami', 'don_mecene');
		
		for(var _i = 0; _i < _donArr.length; ++_i)
		{
			document.forms['FormPartner'][_donArr[_i]].value = '';
		}
		
		
		if(_display =='hide')
		{
			for(var _i  = 0; _i < _elSociete.length; _i++)
			{
				_elSociete[_i].addClassName('hide');
			}
			
			for(var _i  = 0; _i < _elParticulier.length; _i++)
			{
				_elParticulier[_i].removeClassName('hide');
			}
		}
		else
		{
			for(var _i  = 0; _i < _elSociete.length; _i++)
			{
				_elSociete[_i].removeClassName('hide');
			}
			
			for(var _i  = 0; _i < _elParticulier.length; _i++)
			{
				_elParticulier[_i].addClassName('hide');
			}
		}
		
		document.getElementById('company_fonction').className = _display;
		//document.getElementById('company_speaker').className = _display;
		
	},
	
	Wish: function(_el)
	{
		var _wish = $$('input[name="rko_wish"]');
		
		for(var _i  = 0; _i < _wish.length; _i++)
		{
			var _lis = _wish[_i].up('li');
			_lis.removeClassName('selected-row').addClassName('unselected-row');
			
			var _labels = _lis.childElements();
			_labels[1].addClassName('hide');
		}
		
		var _li = _el.up('li');
		_li.addClassName('selected-row').removeClassName('unselected-row');
		var _label = _li.childElements();
		_label[1].removeClassName('hide');
	},
	
	ValidRadio: function(_els)
	{
		var _valid = false;
		
		for(var _i = 0; _i < _els.length; _i++)
		{
			if(_els[_i].checked == true)
			{
				_valid = _i;
			}
		}
		
		return _valid;
	},
	
	ValidStr: function(_els)
	{
		var _valid = true;
		
		for(var _i = 0; _i < _els.length; _i++)
		{
			if(document.forms['FormPartner'][_els[_i]].value == '')
			{
				_valid = false;
			}
		}
		
		return _valid;
	},
	
	Submit: function()
	{
		var _errors = $$('span.font-alert');
		
		for(var _i = 0; _i < _errors.length; _i++)
		{
			_errors[_i].addClassName('hide');
		}
		
		var _valid = true;
		var _form = document.forms['FormPartner'];
		
		var _type = _form['rko_user_type'];
		var _validType =He.Application.FormPartner.ValidRadio(_type);

		if(_validType === false)
		{
			$('error-type').removeClassName('hide');
			return false;
		}
		
		var _wish = _form['rko_wish'];
		
		_validWish = He.Application.FormPartner.ValidRadio(_wish);
		
		if(_validWish !== false)
		{
			var _fiedlName = 'don_'+_form['rko_wish'][_validWish].value;
			var _wishValue = _form[_fiedlName].value;
			
			_wishValue = _wishValue.replace(/\s/g, "");
			var _re = new RegExp(/^(\d{1,5})(\.|,)?(\d{0,2})?$/);
			
			if(!_wishValue.match(_re))
			{
				$('error-don').removeClassName('hide');
				return false;
			}
			else
			{
				var _money = parseInt(_wishValue);
				
				if(_form['rko_user_type'][1].checked == true)
				{
					switch(_fiedlName)
					{
						case 'don_grd_mecene':
												if(_money < 150000) 
												{
													$('error-don-value').removeClassName('hide');
													return false;
												}
												break;
						case 'don_mecene':
												if(_money < 50000 || _money > 100000 ) 
												{
													$('error-don-value').removeClassName('hide');
													return false;
												}
												break;
						case 'don_ami':
												if(_money < 25000 || _money > 50000 ) 
												{
													$('error-don-value').removeClassName('hide');
													return false;
												}
												break;
					}	
				}
				else
				{
					switch(_fiedlName)
					{
						case 'don_grd_mecene':
												if(_money < 20000) 
												{
													$('error-don-value').removeClassName('hide');
													return false;
												}
												break;
						case 'don_mecene':
												if(_money < 10000 || _money > 20000 ) 
												{
													$('error-don-value').removeClassName('hide');
													return false;
												}
												break;
						case 'don_ami':
												if(_money < 2500 || _money > 10000 ) 
												{
													$('error-don-value').removeClassName('hide');
													return false;
												}
												break;
						case 'don_mecene':
												if(_money < 500 || _money > 2500 ) 
												{
													$('error-don-value').removeClassName('hide');
													return false;
												}
												break;
					}
				}
			}
		}
		else
		{
			$('error-don-level').removeClassName('hide');
			return false;
		}
		
		var _civility = _form['civilite'];
		
		_validCivility = He.Application.FormPartner.ValidRadio(_civility);
		
		/*
		if(_form['rko_user_type'][1].checked == true && _form['raison'].value == '')
		{
			$('error-coordonnees').removeClassName('hide');
			return false;
		}
		/**/
		
		if(_form['rko_user_type'][1].checked == true)
		{
			var _stringsSpeaker = new Array('raison', 'fonction', 'nom-interlocuteur', 'prenom-interlocuteur', 'email-interlocuteur', 'adresse-interlocuteur', 'ville-interlocuteur', 'postal-interlocuteur', 'telephone-interlocuteur' );
					
			if (!He.Application.FormPartner.ValidStr(_stringsSpeaker))
			{
				$('error-coordonnees').removeClassName('hide');
				return false;
			}
			
		}
		else
		{
			var _strings = new Array('nom', 'prenom', 'email', 'adresse', 'ville', 'postal', 'telephone');
			
			if(!He.Application.FormPartner.ValidStr(_strings))
			{
				$('error-coordonnees').removeClassName('hide');
				return false;
			}
		}
	}
};


He.OnDOMReady(He.Application.OnAir.Hide);
He.OnDOMReady(He.Application.DisplayHome);
He.OnDOMReady(He.Application.SlideShow.Init);
He.OnDOMReady(He.Application.Newsletter.Init);
