/*jslint browser: true */
/*global $, $$, $clear, Ajax, Class, Element, Event, Events, Fx, Options */


(function() {
// start namespace
	
	var is_ie/*@cc_on = {
		version : parseFloat(navigator.appVersion.match(/MSIE (.+?);/)[1])
	}@*/;
	
	// modal box singelton
	var monobox = {

		init: function (options) {
			this.options = Object.extend({
				initialWidth: 			754,
				initialHeight: 			515,
				contentsWidth: 			754,
				contentsHeight: 		515,
				heightUnit:					'px',
				evalScripts: 				false,
				evalResponse: 			false
			}, options || {});
			this.eventKeyDown = this.keyboardListener.bindWithEvent(this);
			this.eventPosition = this.position.bind(this);
			this.wrapper = new Element('div', {
				'styles': {
					'left': '0',
					'width': '100%',
					'height': '100%'
				},
				'id': 'monobox'
			}).injectInside($$('body')[0]);
			this.frame =  new Element('iframe', {
				'src': '/blank.html',
				'id' : 'mb_postBox',
				'name' : 'mb_postBox',
				'frameborder' : '0'
			}).injectInside($$('body')[0]);
			this.overlay = new Element('div', {
				'styles': {
					'background': '#000',
					'cursor': 'pointer'
				},
				'id': 'mb_overlay'
			}).injectInside(this.wrapper);
			this.center = new Element('div', {
				'styles': {
					'display': 'none',
					'position': 'absolute',
					'top': '50%',
					'left': '50%',
					'z-index': '1010',
					'margin-top': '-'+(this.options.initialHeight/2)+this.options.heightUnit, // no resize animation
					'margin-left': '-'+(this.options.initialWidth/2)+'px',
					'width': this.options.initialWidth+'px',
					'height': this.options.initialHeight+this.options.heightUnit,
					'overflow': 'hidden',
					'background-color': '#fff',
					'background-repeat': 'no-repeat',
					'background-position': 'center center'
				},
				'id': 'mb_center'
			}).injectInside(this.wrapper);
			this.contents = new Element('div', {
				'styles': {
					'position': 'absolute'
					/*'visibility': 'hidden'*/
				},
				'id': 'mb_contents'
			}).injectInside(this.center);
			/*this.loading =  new Element('div', {
				'styles': {
					'position': 'absolute',
					'width' : '100%',
					'height' : '100%',
					'z-index' : '1020',
					'background-color' : '#fff'
				},
				'id': 'mb_loading'
			}).injectInside(this.center);*/
			this.frame =  new Element('iframe', {
				'src': '/blank.html',
				'id' : 'mb_frame',
				'name' : 'mb_frame',
				'frameborder' : '0'
			}).injectInside(this.contents);
			this.error = new Element('div', {
				'styles': {
					'padding-top': '15%',
					'width': '100%',
					'height': '85%',
					'text-align': 'center',
					'color': '#c00',
					'background': '#fff'
				},
				'id': 'mb_error'
			}).set('html','<h2>Oops.. there was a problem with your request.</h2>' + '<p>Please try again.</p>' + '<p>Click anywhere to close.</p>');
			
			var nextEffect = this.nextEffect.bind(this);
			this.ajaxRequest = Class.empty;
			var _self = this;
			this.fx = {
				overlay:	new Fx.Tween(this.overlay, {property:'opacity', duration: 1000, transition: Fx.Transitions.Cubic.easeOut,
										onStart: function(){
										if (_self.step === 0) {$$('html')[0].addClass('modal');}
										},
										onComplete: function(){
										if (_self.step == -1) {$$('html')[0].removeClass('modal');}
										}
									}).set(0),
				resize:		new Fx.Tween(this.center, {duration: 1000, transition: Fx.Transitions.Cubic.easeOut, onComplete: nextEffect}),
				/*loading:	this.loading.effect('opacity', {duration: 1000, transition: Fx.Transitions.Cubic.easeOut}),*/
				contents:	new Fx.Tween (this.contents, {property:'opacity', duration: 1000, transition: Fx.Transitions.Cubic.easeOut, link: 'cancel'})
			};
			this.initClicks($$('.modal','.modalmini','.modalmidi'));
		},
		
		initClicks: function(modalClicks) {
			var _self = this;
			modalClicks.each(function(objElm){ 
				objElm.addEvents({
					'click' : function(e) {
						if (objElm.hasClass('modalmini')) {
							_self.options.initialWidth = 325;
							_self.options.initialHeight = 230;
							_self.options.contentsWidth = 325;
							_self.options.contentsHeight = 230;
							_self.center.setStyles({
								'margin-top': '-'+(_self.options.initialHeight/2)+_self.options.heightUnit, // no resize animation
								'margin-left': '-'+(_self.options.initialWidth/2)+'px',
								'width': _self.options.initialWidth+'px',
								'height': _self.options.initialHeight+_self.options.heightUnit
							});
						} else if (objElm.hasClass('modalmidi')) {
							_self.options.initialWidth = 480;
							_self.options.initialHeight = 315;
							_self.options.contentsWidth = 480;
							_self.options.contentsHeight = 315;
							_self.center.setStyles({
								'margin-top': '-'+(_self.options.initialHeight/2)+_self.options.heightUnit, // no resize animation
								'margin-left': '-'+(_self.options.initialWidth/2)+'px',
								'width': _self.options.initialWidth+'px',
								'height': _self.options.initialHeight+_self.options.heightUnit
							});
						} else {
							_self.options.initialWidth = 755;
							_self.options.initialHeight = 515;
							_self.options.contentsWidth = 755;
							_self.options.contentsHeight = 515;
							_self.center.setStyles({
								'margin-top': '-'+(_self.options.initialHeight/2)+_self.options.heightUnit, // no resize animation
								'margin-left': '-'+(_self.options.initialWidth/2)+'px',
								'width': _self.options.initialWidth+'px',
								'height': _self.options.initialHeight+_self.options.heightUnit
							});
						}
						var strTarget;
						var strMethod = 'get';
						var objFormData = null;
						if ((objElm.get('tag')) == 'a') {
							//	if (ajaxDisable) {return false;}
							e = new Event(e).stop();
							strTarget = objElm.getProperty('href');
						} else if ((objElm.get('tag')) == 'input') {
							e = new Event(e).stop();
							strTarget = objElm.form.getAttribute('action');
							strMethod = objElm.form.getAttribute('method');
							objFormData = objElm.form;
							//	if (ajaxDisabled) {window.location = strTarget; return false;}
						} else {
							strTarget = objElm.getElements('a')[0].getProperty('href');
							//	if (ajaxDisabled) {window.location = strTarget; return false;}
						}
						// handle different server enviroments
						if (strTarget.test('.php')) {
							strTarget = strTarget.split('page=');
							strTarget = strTarget[1] + '.html';
						} else {
							var strTargetComponents = strTarget.split('?');
							if (!strTargetComponents[0].test('\.(ajax|html)$', 'i')) {
								strTarget = strTargetComponents[0] + '.ajax';
								if (strTargetComponents.length > 1) {
									strTarget += '?' + strTargetComponents[1];
								}
							}
						}
						_self.open(strTarget, strMethod, objFormData);
					}
				});
			});
		},
		
		open: function(sLinkHref, sHttpMethod, oFormData) {

		  if($('webPage')) {        

		    //h1 = sLinkHref.split('?')[0];

		    this.href = sLinkHref;

		  }

		  else {

  			this.href = sLinkHref;

  		}

			this.httpMethod = sHttpMethod;
			this.formData = oFormData;
			this.position();
			this.setup(true);
			this.center.setStyles({display: ''});
			this.fx.overlay.start(0.8);
			return this.loadContents(sLinkHref);
		},
	
		position: function() {
			this.overlay.setStyles({height: window.getHeight()+'px'});
		},
	
		setup: function(open) {
			var fn = open ? 'addEvent' : 'removeEvent';
			window[fn]('scroll', this.eventPosition)[fn]('resize', this.eventPosition);
			document[fn]('keydown', this.eventKeyDown);
			this.step = 0;
		},
		
		loadContents: function() {		
			if(this.step) {return false;}
			this.step = 1;
			/*this.center.className = 'mb_loading';*/
			/*this.fx.loading.set(1);*/
			/*this.fx.contents.custom(0.5);*/
			var nextEffect = this.nextEffect.bind(this);
			/*var ajaxFailure = this.ajaxFailure.bind(this);
			var ajaxOptions = {
				data:         this.formData,
				method:				this.httpMethod,
				update:				this.contents, 
				evalScripts: 	this.options.evalScripts,
				evalResponse: this.options.evalResponse,
				onComplete: 	nextEffect, 
				onFailure: 		ajaxFailure
			};
			this.ajaxRequest = new Ajax(this.href, ajaxOptions).request(); */
			this.frame.setProperty('src',this.href);
			this.nextEffect();
			return false;
		},
		/*
		ajaxFailure: function (){
			this.contents.setHTML('');
			this.error.clone().injectInside(this.contents);
			this.nextEffect();
			this.center.setStyle('cursor', 'pointer');
			this.center.onclick = this.close.bind(this);
		},
		*/
		
		nextEffect: function() {
			switch(this.step++) {
			case 1:
				//this.center.className = '';
				//this.fx.loading.hide(0.3,0);
				this.center.setStyle('cursor', 'default');
				this.center.onclick = '';		
				this.contents.setStyles ({
					width: (this.options.contentsWidth -10) + 'px', 
					height: this.options.contentsHeight+this.options.heightUnit
				});
				/* no resize animation
					this.fx.resize.custom({
					height: [this.center.clientHeight, this.contents.offsetHeight], 
					width: [this.center.clientWidth, this.contents.offsetWidth],
					marginLeft: [-this.center.clientWidth/2, -this.contents.offsetWidth/2], 
					marginTop: [-this.center.clientHeight/2, -this.contents.offsetHeight/2]
				});
				break;
			case 2:*/
				if (this.options.contentsHeight == 515) {
					this.closelink = new Element('a', {
						'id': 'mb_close',
						'href': '#'
					}).set('text','Close').injectInside(this.contents);
					this.closelink.onclick = this.overlay.onclick = this.close.bind(this);
				} else {
					this.overlay.onclick = this.close.bind(this);
				}
				/*this.fx.contents.custom(0.5,1);*/
				/*this.fx.loading.hide();*/
				/*this.loading.setStyle('background', 'transparent url(/images/iconLoading.gif) center center no-repeat');*/
				this.timerID = setInterval(checkForMessages,200);
				break;
			case 2:
				this.step = 0;
			}
		},
		
		keyboardListener: function(event) {
			if ((event.control && event.key == 'w') || (event.control && event.key == 'x') || (event.key == 'esc')) {
				this.close();
				event.stop();
			}		
		},
		
		close: function() {
			if(this.step < 0) {return;}
			this.step = -1;
			// [SB!!]for (var f in this.fx) if (this.fx.hasOwnProperty(f)) {this.fx[f].clearTimer();}
			this.center.setStyles({
				width: this.options.initialWidth+'px', 
				height: this.options.initialHeight+this.options.heightUnit, 
				marginLeft: '-'+(this.options.initialWidth/2)+'px', 
				marginTop: '-'+(this.options.initialHeight/2)+this.options.heightUnit, 
				display: 'none'
			});
			/*this.center.className = 'mb_loading';*/
			this.frame.setProperty('src','/blank.html');
			this.fx.overlay.chain(this.setup.pass(false, this)).start(0);
			/*this.loading.setStyle('background-color', '#fff');*/
			if (this.closelink) {
				this.closelink.dispose();
			}
			clearInterval(this.timerID);
			return false;
		}
			
	};
	
	function checkForMessages(timerID) {
		var lastId = '';
		if(frames.mb_postBox.document.location.hash != lastId){
			lastId = frames.mb_postBox.document.location.hash;
			lastId = lastId.substring(1, lastId.length);
			monobox.close();
			frames.mb_postBox.document.location = '/blank.html';
			if(lastId == 'closerefresh') {

				window.location.replace(unescape(window.location));

			}
		}
	}
	
	// carousel constructor
	function Carousel(container,area,pageWidth,numImages) {
		
		var _self = this;
		var slideArea = container;
		var gallery = area;
		var intThumbs = $$('#gallery img').length;
		this.intPageWidth = pageWidth;
		var intItemWidth = this.intPageWidth / numImages;
		
		if (intThumbs <= numImages ) {
			area.setStyles({
				position: 'static',
				width: intItemWidth * intThumbs +('px')
			});
			return false;	
		} else {
			area.setStyles({
				position: 'absolute'
			});
		}
		
		var previous = new Element('a', {
			'events': {'click': function(e){e = new Event(e).stop(); _self.scrollPrevious();}},
			'id': 'carousel_previous',
			'class': 'inactive widget',
			'href': '#'
		}).set('text','Previous').injectInside(slideArea);
		
		var next = new Element('a', {
			'events': {'click': function(e){e = new Event(e).stop(); _self.scrollNext();}},
			'id': 'carousel_next',
			'class': 'widget',
			'href': '#'
		}).set('text','Next').injectInside(slideArea);	
		
		var whiteOut = new Fx.Tween(gallery, {
			property:'opacity',
			duration:450,
			transition: Fx.Transitions.Cubic.easeOut
		});
	
		var likeACarousel = new Fx.Tween(gallery, {
			property:'left',
			duration:1000,
			transition: Fx.Transitions.Cubic.easeOut,
			wait: false,
			onStart: function(){
				whiteOut.start(0.2).chain(function(){whiteOut.start.delay(100, this, 1);});
			}
		});			

		var intPages = Math.ceil(intThumbs / numImages);
		
		var intWidth = intItemWidth * intThumbs;
		this.intLeft = 0;
		this.intMaxLeft = 0;
		this.intMaxRight = - (intWidth - this.intPageWidth);
		
		if (intPages < 2) {next.addClass('inactive');}
		this.righto = this.intMaxRight + (((Math.ceil(numImages) - numImages) + (Math.floor(numImages) - 1)) * intItemWidth);
		gallery.setStyles({width: intWidth+ 'px'});

		this.scrollNext = function() {
			if (this.intLeft == this.intMaxRight) {return false;}
			var move = this.intLeft - this.intPageWidth;
			if (move < this.intMaxRight) {
				move = this.intMaxRight; 
				this.intLeft = this.intMaxRight;
			} else {
				this.intLeft = this.intLeft - this.intPageWidth;
			}
			likeACarousel.start(move);
			previous.removeClass('inactive');
			if (this.intLeft == this.intMaxRight) {next.addClass('inactive'); return false;}
		};
		
		this.scrollPrevious = function() {
			if (this.intLeft == this.intMaxLeft) {return false;}
			var move = this.intLeft + this.intPageWidth;
			if (this.intLeft == this.intMaxRight  && this.righto) {
				move = this.righto;
			}
			if (move > 0) {
				move = 0; 
				this.intLeft = 0;
			} else {
				if (this.intLeft == this.intMaxRight && this.righto) {
					this.intLeft = this.righto;
				} else {
					this.intLeft = this.intLeft + this.intPageWidth;
				}
			}		
			likeACarousel.start(move);
			next.removeClass('inactive');
			if (this.intLeft == this.intMaxLeft) {
				previous.addClass('inactive'); return false;
			}
		};

	}
	
	function SlideShow() {
		var _self = this;
		var slide1 = false, slide2 = false, slide3 = false;
		var fineTime = 5000;
		var showTime = 2500;
		this.fadeSlide1 = new Fx.Tween('slide1', {
			property:'opacity',
			duration: fineTime,
			transition: 'cubic:out',
			onComplete: function() {
				if (slide1 === false) {
					setTimeout(function(showTime){
						slide2 = false;
						_self.fadeSlide2.start(0,1);
						slide1 = true;
						_self.fadeSlide1.start(1,0);
					}, showTime);
				}
			}
		}).set(0);
		this.fadeSlide2 = new Fx.Tween('slide2', {
			property: 'opacity',
			duration: fineTime,	
			transition: 'cubic:out',
			link: 'cancel',
			onComplete: function() {
				if (slide2 === false) {
					setTimeout(function(showTime){
						slide3 = false;
						_self.fadeSlide3.start(0,1);
						slide2 = true;
						_self.fadeSlide2.start(1,0);
					}, showTime);
				}
			}
		}).set(0);
		this.fadeSlide3 = new Fx.Tween('slide3', {
			property: 'opacity',
			duration: fineTime,
			transition: 'cubic:out',
			link: 'cancel',
			onComplete: function() {
				if (slide3 === false) {
					setTimeout(function(showTime){
						slide1 = false;
						_self.fadeSlide1.start(0,1);
						slide3 = true;
						_self.fadeSlide3.start(1,0);
					}, showTime);
				}
			}
		}).set(0);
	}
	
	window.addEvent('domready', function(){
	
		// no js for IE 5
		if (is_ie && (is_ie.version < 6)) {return false;}

		// flag js support
		$$('body')[0].addClass('js');
		
		//if ($$('select')[0]) {
		//	FauxSelectConductor.initialize();
		//}
		
		if ($('cropMe')) {
			var exampleCropper3 = new uvumiCropper('cropMe',{
				'preview':'cropPreview',
				onComplete:function(top,left,width,height){
					$('input-top').set('value', top);
					$('input-left').set('value', left);
					$('input-width').set('value', width);
					$('input-height').set('value', height);
				} 
			});
		}
		
		if ($('slideShow') && $$('#slideShow img').length == 3) {
			var slideShow = new SlideShow();
			slideShow.fadeSlide1.start(0,1); 
		}
		
		// photo upload
		if ($('upload-status') && $('upload-list') && $('form-demo')) {
			var swiffy = new FancyUpload2($('upload-status'), $('upload-list'), {
				'url': $('form-demo').action,
				'fieldName': 'attachment[asset]',
				'path': '/flash/Swiff.Uploader.swf',
				'onLoad': function() {
					$('upload-fallback').destroy();
				},
				target: 'upload-browse-images'
			});
			$('upload-browse-images').addEvent('click', function() {
				swiffy.browse({'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'});
				return false;
			});
			$('upload-clear').addEvent('click', function() {
				return false;
			});
			if ($('uploader').hasClass('inactive')) {
				$('uploader').addEvent('click', function() {
					return false;
				});
			}
		}
		
		// fancyButtons
		$$('input.button').each(function(objElm){
			var strClass = objElm.className;
			var strValue = objElm.getProperty('value');
			var objForm = objElm.getParent('form');
			var strAction = objForm.getAttribute('action');
			var objLink = new Element('a', {
				'class': strClass,
				'href': '#',
				'events': {
        	'click': function(e){
        		e = new Event(e).stop();
        		if (strClass.indexOf('inactive') == -1 && strClass.indexOf('cancel') == -1) {
            	if ($$('.mb_body_midi')[0] || $$('.mb_body_mini')[0]) {
            	// submit via ajax, then close modal
            		objForm.set('send', {
            			url: strAction, 
            			method: 'post',
            			onComplete: function() {
            				if (strClass.indexOf('refresh') != -1) {
            				// close and refresh
            					parent.frames.mb_postBox.document.location = parent.frames.mb_postBox.document.location + "#" + 'closerefresh';
            				} else {
            				// just close
            					parent.frames.mb_postBox.document.location = parent.frames.mb_postBox.document.location + "#" + 'close';
            				}	
            			}
            		}).send();
            	} else {
            	// vanilla submit
            		objForm.submit();
            	}
            }
        	}
    		}
			}).set('text',strValue);
			var objCnr = new Element('span', {
				'class': 'cnrs'
			}).injectInside(objLink);
			var objIcon = new Element('span', {
				'class': 'icon'
			}).injectInside(objLink);
			objLink.replaces(objElm);
		});
		
		//results
		if ($$('.monotip')) {
			$$('.monotip').each(function(objItem){
				objItem.addEvents({
					'mouseover': function() {
						this.addClass('hover');
					},
					'mouseout': function() {
						this.removeClass('hover');
					}
				});
			});
		}
		
		/*results
		if ($$('.results li')) {
			$$('.results li').each(function(objItem){
				objItem.addEvents({
					'mouseover': function() {
						this.addClass('hover');
					},
					'mouseout': function() {
						this.removeClass('hover');
					}
				});
			});
		}*/
		
		// only real
			if ($$('#inbox .delete')[0]) {
				$$('.results input.delete').each(function(objItem){
				
					var iconic = new Asset.images(['/images/iconLoadingSmall.gif', '/images/iconUndo.gif']);
	
					var daddy = objItem.getParent('li');
					
					var daForm = $(objItem.form);
					
					var actionMan = daForm.get('action')+'.ajax';
					
					var methodMan = daForm.get('method');
					
					var formStuff = daForm.get('html');
					
					daForm.addEvents({
						'submit': function(e) {
							e = new Event(e).stop();
							objItem.src = '/images/iconLoadingSmall.gif';
							objItem.style.paddingLeft = '1px';
							this.set('send', {
								url: actionMan,
								method: methodMan,
								onSuccess: function() {
									if (!daddy.hasClass('deleted')) { 
										daddy.addClass('deleted');
										daForm.innerHTML = '<h5 class="preview"><!-- --></h5><h5 class="name"><!-- --></h5><h6 class="description"><span class="icon"><!-- --></span>Message deleted</h6><div class="resultBtns"><input type="image" class="undo" src="/images/iconUndo.gif" value="undo" /></div>';
										methodMan = 'get';
										actionMan = actionMan.split('.ajax')[0]+'/undelete.ajax';
									} else {
										daddy.removeClass('deleted');
										daForm.innerHTML = formStuff;
										methodMan = 'post';
										actionMan = actionMan.split('/undelete.ajax')[0]+'.ajax';
									}
								}
							});
							this.send();
						}
					});
				});
			}
		
		// instantiate carousel
		if ($('carouselContent') && $('gallery')) {
			var carousel;
			if ($('mb_container')) {
			// in modal
				if ($$('#photoMain img')[0]) {
			// item
					carousel = new Carousel($('carouselContent'),$('gallery'),180,3);
					$$('#gallery a').each(function(objLink){
						var strImg = objLink.getFirst().getProperty('src');
						var strClass = objLink.getFirst().getProperty('class');
						if (strImg.indexOf('_thumb') != -1) {
							strImg = strImg.split('_thumb')[0]+ '.JPG';
						}	else {
							strImg = objLink.getProperty('href');
						}
						var objImg = $$('#photoMain img')[0];
						objLink.addEvents({
							'click' : function(e) {
								e = new Event(e).stop();
								objImg.setAttribute('src',strImg);
								objImg.set('class',strClass);
							}
						});
					});
				} else {
			// photos
					carousel = new Carousel($('carouselContent'),$('gallery'),620,4);
				}
			// in page
			} else if ($$('#photoMain img')[0]) {
			// item
					carousel = new Carousel($('carouselContent'),$('gallery'),240,4);
					$$('#gallery a').each(function(objLink){
						var strImg = objLink.getFirst().getProperty('src');
						if (strImg.indexOf('_thumb') != -1) {
							strImg = strImg.split('_thumb')[0]+ '.JPG';
						}	else {
							strImg = objLink.getProperty('href');
						}
						var objImg = $$('#photoMain img')[0];
						objLink.addEvents({
							'click' : function(e) {
								e = new Event(e).stop();
								objImg.setAttribute('src',strImg);
							}
						});
					});
			} else {
				carousel = new Carousel($('carouselContent'),$('gallery'),855,9);
			}
		}
		
		if ($('gallery') && $$('a .name .info')[0]) {
			$$('#gallery a').each(function(objElm){
				//var objName = objElm.filter('name')[0];
				objElm.addEvents({
					'mouseover' : function() {
						this.addClass('hover');
					},
					'mouseout' : function() {
						this.removeClass('hover');
					}
				});
			});
		}
		
		// instantiate
		if ($$('.modal')[0] || $$('.modalmini')[0] || $$('.modalmidi')[0]) {
				monobox.init();
		}

		// form input behaviours
		$$('.error input.text[value]', '.error textarea').each(function(objInput){ 
			if (objInput.get('tag') == 'input') {
				objInput.addEvents({
					'focus' : function() {
						if (this.value == this.defaultValue) {this.value = '';}
					},
					'blur' : function() {
						if (this.value === '') {this.value = this.defaultValue;}
					}
				});
			}
			else if (objInput.get('tag') == 'textarea') {
				var defaultText = objInput.get('text');
				objInput.addEvents({
					'focus' : function() {
						if (this.get('text') == defaultText) {this.set('text','');}
					},
					'blur' : function() {
						if (this.get('text') === '') {this.set('text',defaultText);}
					}
				});
			}
		});
		
		$$('input.text[value]').each(function(objInput){ 
			if (objInput.defaultValue == 'Enter keywords') {
				objInput.addEvents({
					'focus' : function() {	
						if (this.value ==  this.defaultValue ||  this.value ==  this.defaultValue) {this.value = '';this.addClass('focus');}
					},
					'blur' : function() {
						if (this.value === '') {this.value = this.defaultValue;this.removeClass('focus');}
					}
				});
			}
		});
		$$('#itemBody input[type=checkbox]').each(function(objInput){
			var objForm = objInput.getParent('form');
			var strMethod = objForm.getAttribute('method');
			var strAction = objForm.getAttribute('action');
			objForm.set('send', {
  			url: strAction, 
  			method: strMethod,
  			onComplete: function() {
  			}
  		});
			objInput.addEvents({
				'change' : function() {	
      		objForm.send();
				}
			});
		});
		
		/* retain search term
		$$('#search .pagination a').each(function(objLink){
			var objForm = $$('#search .searchForm form')[0];
			objLink.addEvents({
				'click' : function(e) {
					e = new Event(e).stop();
					var strLinkPath = this.href.split('?')[0];
					var strFormParams = objForm.getProperty('action').split('?')[1];
					var strNewAction = strLinkPath+ '?' +strFormParams;
					objForm.setProperty('action',strNewAction);
					objForm.submit();
				}
			});
		}); */
		
		// custom list
		if ($('selectPeople')) { 
		
			if ($$('#mainCounter .counter')[0]) {
				var countAll = $$('div.pickIndividuals input.checked').length;
				$$('#mainCounter .counter')[0].set('text',countAll);
			}
			$$('p.pickGroup').each(function(objElm,i){
				var objList = $$('div.pickIndividuals')[i];
				var objToggle = new Element('span', {
					'text': 'Select individuals',
					'events': {
						'click' : function() {
							if (objList.hasClass('hide')) {
								objList.removeClass('hide');
								this.set('text','Hide individuals');
							} else {
								objList.addClass('hide');
								this.set('text','Select individuals');
							}
						},
						'mouseover' : function() {
							this.addClass('hover');
						},
						'mouseout' : function() {
							this.removeClass('hover');
						}
    			}
				}).inject(objElm);
			});
			$$('p.pickGroup input.checkbox').each(function(objElm,i){
				var arList = $$('div.pickIndividuals');
				var arInputs = $$(arList[i].getElementsByTagName('input'));
				objElm.addEvents({
					'click' : function() {	
						if (objElm.get('checked') === true) {
							arInputs.each(function(objInput){
								objInput.set('checked',true);
								objInput.addClass('checked');
								objInput.getParent().addClass('checked');
							});
						} else {
							arInputs.each(function(objInput){
								objInput.set('checked',false);
								objInput.removeClass('checked');
								objInput.getParent().removeClass('checked');
							});
						}
						if ($$('#mainCounter .counter')[0]) {
							var countAll = $$('div.pickIndividuals input.checked').length;
							$$('#mainCounter .counter')[0].set('text',countAll);
						}
						if ($$('.groupCounter')[i]) {
							var countGroup = arInputs.filter('.checked').length;
							if (countGroup > 0) {
								$$('.groupCounter')[i].set('text','Selected '+countGroup+' of');
							} else {
								$$('.groupCounter')[i].set('text','');
							}
						}
					}
				});
			});
			$$('div.pickIndividuals').each(function(objElm,i){
				var arInputs = $$(objElm.getElementsByTagName('input'));
				if ($$('.groupCounter')[i]) {
					var countGroup = arInputs.filter('.checked').length;
					if (countGroup > 0) {
						$$('.groupCounter')[i].set('text','Selected '+countGroup+' of');
					} else {
						$$('.groupCounter')[i].set('text','');
					}
				}
				arInputs.each(function(objInput){
					objInput.addEvents({
						'click' : function() {
							if (objInput.get('checked') === true) {
								objInput.addClass('checked');
								objInput.getParent().addClass('checked');
							} else {
								objInput.removeClass('checked');
								objInput.getParent().removeClass('checked');
							}
							if (arInputs.filter('.checked').length != arInputs.length) {
								$$('.pickGroup input')[i].set('checked',false);
							} else {
								$$('.pickGroup input')[i].set('checked',true);
							}
							if ($$('#mainCounter .counter')[0]) {
								var countAll =  $$('div.pickIndividuals input.checked').length;
								$$('#mainCounter .counter')[0].set('text',countAll);
							}	
							if ($$('.groupCounter')[i]) {
								var countGroup = arInputs.filter('.checked').length;
								if (countGroup > 0) {
									$$('.groupCounter')[i].set('text','Selected '+countGroup+' of');
								} else {
									$$('.groupCounter')[i].set('text','');
								}
							}
						}
					});
				});
			});
			$$('div.pickIndividuals p').each(function(objElm){
				objElm.addEvents({
					'mouseover' : function() {
						this.addClass('hover');
					},
					'mouseout' : function() {
						this.removeClass('hover');
					}
				});
			});
		}
		
		if ($('selectContacts')) { 
		
			if ($$('#contactCounter .counter')[0]) {
				var countAll = $$('div.pickIndividuals input[type=checkbox].checked').length;
				$$('#contactCounter .counter')[0].set('text',countAll);
			}
			$$('p.pickGroup input.checkbox').each(function(objElm,i){
				var arList = $$('div.pickIndividuals');
				var arInputs = $$(arList[i].getElements('input.checkbox'));
				objElm.addEvents({
					'click' : function() {	
						if (objElm.get('checked') === true) {
							arInputs.each(function(objInput){
								objInput.set('checked',true);
								objInput.addClass('checked');
								objInput.getParent().addClass('checked');
							});
						} else {
							arInputs.each(function(objInput){
								objInput.set('checked',false);
								objInput.removeClass('checked');
								objInput.getParent().removeClass('checked');
							});
						}
						if ($$('#contactCounter .counter')[0]) {
							var countAll = $$('div.pickIndividuals input[type=checkbox].checked').length;
							$$('#contactCounter .counter')[0].set('text',countAll);
						}
					}
				});
			});
			$$('div.pickIndividuals').each(function(objElm,i){
				var arInputs = $$(objElm.getElements('input.checkbox'));
				arInputs.each(function(objInput){
					objInput.addEvents({
						'click' : function() {
							if (objInput.get('checked') === true) {
								objInput.addClass('checked');
								objInput.getParent().addClass('checked');
							} else {
								objInput.removeClass('checked');
								objInput.getParent().removeClass('checked');
							}
							if (arInputs.filter('.checked').length != arInputs.length) {
								$$('.pickGroup input')[i].set('checked',false);
							} else {
								$$('.pickGroup input')[i].set('checked',true);
							}
							if ($$('#contactCounter .counter')[0]) {
								var countAll =  $$('div.pickIndividuals input[type=checkbox].checked').length;
								$$('#contactCounter .counter')[0].set('text',countAll);
							}	
						}
					});
				});
			});
			$$('div.pickIndividuals p').each(function(objElm){
				objElm.addEvents({
					'mouseover' : function() {
						this.addClass('hover');
					},
					'mouseout' : function() {
						this.removeClass('hover');
					}
				});
			});
		}
		
		//email addresses
		if ($('emailAddresses')) {
			var objBtn = $$('#mb_footer a')[0];
			$$('#emailAddresses textarea')[0].addEvents({
				'keyup' : function() {
					var objForm = this.form;
					if (this.get('value') !== '') {
						objBtn.innerHTML = 'Next<span class="cnrs"><!-- --></span><span class="icon"><!-- --></span>';
						objBtn.addEvent('click', function(e) {
							e = new Event(e).stop();
							objForm.submit();
						});
					} else {
						objBtn.innerHTML = 'Skip to next screen<span class="cnrs"><!-- --></span><span class="icon"><!-- --></span>';
						objBtn.removeEvents('click');
					}
				}
			});
		}
		
		// give it away
		if ($('giveItAway')) {
			$('giveItAway').addEvents({
				'click' : function(e) {	
					e = new Event(e).stop();
					var daddy = this.getParent('p');
					var bro = $$(daddy.getChildren('input'))[0];
					bro.set('value','0.00');
				}
			});
		}
		
		// close modal
		$$('.modalClose').each(function(objElm){
			objElm.addEvents({
				'click' : function(e) {
					e = new Event(e).stop();
					parent.frames.mb_postBox.document.location = parent.frames.mb_postBox.document.location + "#" + 'close';
				}
			});
		});
		
		// close modal and refresh page
		$$('.modalCloseAndRefresh').each(function(objElm){
			objElm.addEvents({
				'click' : function(e) {
					e = new Event(e).stop();
					parent.frames.mb_postBox.document.location = parent.frames.mb_postBox.document.location + "#" + 'closerefresh';
				}
			});
		});
	
	});
	
/*	window.addEvent('load', function(){
		 detect and flag if no image support
		if ($('logo')) {
			var x = $('logo').offsetWidth;
			if (x != '340' && x != '150') {
				$$('body')[0].addClass('noImgs');
			}
		}
	});*/
	
	// web frame temp stuff
	function resizeIframe() {
    var height = document.documentElement.clientHeight;
    var mastheadDims = $('masthead').getSize();
    height -= mastheadDims.y;
    document.getElementById('webPage').style.height = height +'px';
	}
	if($('webPage')) {
		if (is_ie && (is_ie.version < 6)) {
			return false;
		} 
		else {
			$('webPage').onload = resizeIframe;
		}
	}
	window.addEvent('resize', function(){
		if (is_ie && (is_ie.version < 6)) {return false;}
		if($('webPage')) {resizeIframe();}
	});
	
	window.addEvent('beforeunload', function(){
		// no js for IE 5
		if (is_ie && (is_ie.version < 6)) {return false;}
	});
	
// end namespace
})();