(function(){
    Class('site').create({
        slideshow_imgs: [],
    
        init: function(){
        	this.preload();
        	
        	var timer = window.setInterval(function(){
        		window.clearInterval(timer);
        		timer = null;
        		location.href = "http://atlanticrivers.ca"
        	}, 15000);
        	
        	obj(window).add_event('click', function(){
        		location.href = "http://atlanticrivers.ca"
        	});
        	
        	if(obj('thumb_slider').get()){
        		this.scrollbars();
        	}
        	
        	if(obj('slider_outer').get()){
        		this.product_scroller();
        	}

        	this.validate_form();
        	
        	
        	var enlarge_arr = utils.get_by_class('enlarge');
        	Collection(enlarge_arr).add_event('click',function(e){
       				var back = ui.show_trans_back();
       				
		       		var target = evnt.get_target(e);
		       		
		       		img1 = new Image();
		       		img1.src = target.src.replace(/.jpg/, '_large.jpg');
		       		/*var loader = ui.create_element('', 'img', {'src': '/images/icons/ajax-loader5.gif', 'id': 'loader'}, '', 'visible');
		       		ui.center_ele(loader);*/
		       		
		       		var img = ui.create_element('', 'img', {'src': img1.src}, '', 'hidden');
		       		img.get().onload = function(){
		       			img.css({position:'absolute', zIndex: 99999999999999, 'opacity': 0});
		       			ui.center_ele(img);
		       			//loader.destroy();
		       			fx.animate(img.get(), 'opacity', 0, 100);
		       		} 
		       		
		       		var close = function(){
						img.destroy();
		       			back.destroy();	
					}
					       		
		       		img.add_event('click', close);
		       		back.add_event('click', close);   		
        	});
        },
		
		preload: function(){
		},
		
        call: function(fn, url, caller, qstring, method){
            xhr.config.method = method || 'post';
            xhr.config.url = url;
            xhr.call(qstring || '', fn, caller);
        },

        refresh: function(){
            site.load_actions();
        },
		
		
        parse_target: function(e){
            var ele = obj(evnt.get_target(e));
            var cmd = evnt.get_target(e).id.split('-');
            var action = cmd[0];
            var identifier = cmd[1];
            var type = cmd[2];
            var parent = cmd[3];
            site[action](action, identifier, type, ele, parent);
        },
        
        gather_form: function(form){
            var tqstring = utils.create_querystring(form.get());
            var qstring = tqstring ? tqstring : '';
            return qstring;
        },

        load_actions: function(){
            var clickable = utils.get_by_class('clickable');
            var rollable = utils.get_by_class('roll');
            Collection(clickable).add_event('click', this.parse_target);
            Collection(rollable).add_event('mouseover', this.parse_target);            
        },
        
        newsletter: function(){
            if(obj('newsletter_input').get()){
                obj(document).add_event('click', function(e){
                    var target = evnt.get_target(e);
                    var str;
                    var val = obj('newsletter_input').get_attribute('value');
                    if(target.id == 'newsletter_input'){
                        str = val != 'enter email address' ? val : '';
                        obj('newsletter_input').set_attribute('value', str);
                    }else{
                        str = val != '' ? val : 'enter email address';
                        obj('newsletter_input').set_attribute('value', str);
                    }
                });

                obj('newsletter_submit').add_event('click', function(){
                    var email = obj('newsletter_input').get_attribute('value');
                    if(site.check_email(email)){
                        var qstring = 'email=' + email;
                        site.call(site.newsletter_confirm, '/newsletter/add', obj('newsletter_input'), qstring);
                    }else{
                        alert('Please enter a valid email address.');
                    }
                });
            }
        },
        
        check_email: function(email){
            var check = new RegExp('(.*)\@(.*)\\.(.*)');
            return check.test(email);
        },

        newsletter_confirm: function(http, ele){
            var div = ui.create_element(ele.parent().get(), 'div', {
                'id': 'newsletter_confirm'
            }, 'You have been added.', 'visible');
            div.css({
                top: ele.get_position().top - div.get_dimensions().h + 'px',
                left: ele.get_position().left + 'px'
                });
            var timer = window.setInterval(function(){
                window.clearInterval(timer);
                timer = null;
                div.destroy();
                obj('newsletter_input').set_attribute('value', 'enter email address');
            }, 5000);
        },
        
        enlarge: function(e){
       		var back = ui.show_trans_back();
       		
       		var target = evnt.get_target(e);
       		var img = ui.create_element('', 'img', {src: target.src},{},'');
       		
       		img.css({position:'absolute', border:'solid 10px #ffffff'});
       		
       		ui.center_ele(img);
       		img.set_attribute('title', 'Click to Close')
       		back.set_attribute('title', 'Click to Close')
       		
       		back.css({zIndex: 999999999999, cursor: 'pointer'})
       		img.css({zIndex: 999999999999999999, cursor: 'pointer'})
			
			var close = function(){
				img.hide();
       			back.destroy();	
			}
			       		
       		img.add_event('click', close)
       		back.add_event('click', close)
       	},
        
        home_slideshow: function(){
        	var i = 0;
        	var max = 7;
        	if(obj('slideshow').get() != ''){
	        	var run = function(){
	        		i = i < max ? i + 1 : 0;
	        		obj('debug').html(i);
		        	var main_img = obj('slideshow').children_by_tag('img');
	       			main_img = main_img[0];
		        	
		        	var out = function(){
		        		fx.animate(main_img, 'opacity', 100, 0, main);
		        	}
		        	
		        	var fin = function(){
		        		fx.animate(main_img, 'opacity', 0, 100, run);
		        	}
		        	
		        	
		        	var main = function(){
		        		main_img.style.zIndex = 10;
		       			obj('logo').css({zIndex: 20});
		       			main_img.style.position = 'relative';
		       			main_img.src = site.slideshow_imgs[i].src;
	       				fin();
		        	}
		        	
	        		var timer = window.setInterval(function(){
	       				window.clearInterval(timer);
	       				timer = null;
	       				out();				
	       				
	       				
	       			}, 5000);
	       		}
	       		
	       		run();
       		}
       	},
       	
       	timer: '',
        arr: [],
        i: 0,
       	
       	load_slideshow: function(){
        	this.call(this.run_slideshow, '/slideshow', obj('slideshow_container'), 'slide_id=' + obj('page_id').get_attribute('value'));
        },
        
        run_slideshow: function(http, ele){
        	var current = 0;
        	var response = json.eval_json(http.responseText)
        	var i = 0;
        	var arr = [];
        	var img = '';
        	var container = obj('slideshow_container');
        	for(var s in response){
        		arr.push(new Image());
        		arr[i].src = '/media/' + response[s];
        		i++;
        		
        	}
			
			var create_img = function(parent, src){
				parent.innerHTML = '';
				var img = ui.create_element(parent, 'img', {'src' : src}, '', 'hidden');
				fx.animate(img.get(), 'opacity', 0, 100);
			}
			
			var left = function(){
				current--;
        		if(arr[current]){
        			create_img(container.get(), arr[current].src);
        		}else{
        			current = i - 1;
        			create_img(container.get(), arr[current].src);
        		}
        	}
        	
        	var right = function(){
        		current++;
        		if(arr[current]){
        			create_img(container.get(), arr[current].src);
        		}else{
        			current = 0;
        			create_img(container.get(), arr[current].src);
        		}
        	}
			
			
			
        	if(i > 1){
        		site.arr = arr;
        		obj('left').add_event('click', left);
        		obj('right').add_event('click', right);
        	}else{
        		obj('left').css({visibility: 'hidden'});
        		obj('right').css({visibility: 'hidden'});
        	}
        	
        	
        },
        
        scrollbars: function(ele){
       		var outer = obj('thumb_slider');
       		var content =  obj('thumb_slider_content');
       		var track = obj('track');
       		var slider = obj('bar');
       		
       		var width = 0;
       		var i = 0;
            var cols = utils.get_by_class('gallery_cell');
            Collection(cols).each(function(el){
            	el = obj(el);
            	width += el.get_dimensions().w + 12;
            	
            	el.set_attribute('id', 'cell_' + i);
            	
            	i++;
            	if(i == 1){
            		el.css({
		            	opacity: '1'
		            });
            	}
            	
            	el.add_event('mouseover', function(e){
            		el.css({
		            	opacity: '1'
		            });
            	})
            	
            	if(i != 1){
	            	el.add_event('mouseout', function(e){
	        			el.css({
			            	opacity: '.4'
			            });
			        });
            	}
            	
            	
            	var load = function(e){
            		var target = obj(evnt.get_target(e));
            		var target_id = target.parent().get().id;
            		
            		Collection(cols).each(function(el){
            			el = obj(el);
            			
            			if(el.get_attribute('id') == target_id){
		            		el.css({
				            	opacity: '1'
				            });
		            	}else{
		            		el.css({
				            	opacity: '.4'
				            });
		            	}
		            	
		            	el.add_event('mouseover', function(e){
		            		el.css({
				            	opacity: '1'
				            });
		            	})
		            	
		            	if(el.get_attribute('id') != target_id){
			            	el.add_event('mouseout', function(e){
			        			el.css({
					            	opacity: '.4'
					            });
					        });
		            	}else{
		            		el.add_event('mouseout', function(e){
			        			el.css({
					            	opacity: '1'
					            });
					        });
		            	}	
            		});
            		
            		
            	}
            	
            	el.add_event('click', load);
            	

            });

            col_width = width
			
			col_width = col_width < 1800 ? 1820 : col_width + "px";
			
            content.css({
                width: col_width
            });
       		
	        if(outer.get_dimensions().w < content.get_dimensions().w){
	            slider.show();
				
				var bounds = {
                    left:track.get_position().left - 10,
                    right:((track.get_position().left - 10) + track.get_dimensions().w) - (slider.get_dimensions().w + 8),
                    top:track.get_position().top,
                    bottom:(track.get_position().top + (track.get_dimensions().h - (slider.get_dimensions().h + track.get_position().top)))
                }
				
	            slider.drag('horizontal', track, content, bounds);
	        }
        },
        
        product_scroller: function(ele){
       		var outer = obj('slider_outer');
       		var content =  obj('slider_inner');
       		var track = obj('track');
       		var slider = obj('bar');
       		
       		var width = 0;
            var cols = utils.get_by_class('product_cell');
            Collection(cols).each(function(el){
            	el = obj(el);
                width += 333;
            });
			col_width = width
			
			col_width = col_width < 1800 ? 1820 : col_width + "px";
			
            content.css({
                width: col_width
            });
       		
	        if(outer.get_dimensions().w < content.get_dimensions().w){
	            slider.show();
	
	            slider.drag('horizontal', track, content, '');
	        }
        },
        
        validate_form: function(){
            if(obj('validate_form').get()){
                this.highlights();
            }
        },

        highlights: function(){
        	var arr = ['INPUT', 'SELECT', 'TEXTAREA'];
        	
        	for(i=0;i<arr.length;i++){
        		var item = arr[i]
        		Collection(utils.get_by_tag(item)).add_event('focus', this.input_highlight);
            	Collection(utils.get_by_tag(item)).add_event('blur', this.input_unhighlight);
        	}
        },


        input_highlight: function(e){
            e = e || window.event;
            var rele = e.target || e.srcElement;
            var ele = obj(rele);
            var check = new RegExp('(.*)req(.*)');
            if(check.test(ele.get_attribute('className'))){
                ele.add_class('input_required');
            }else{
                ele.add_class('input_not_required');
            }
        },

        input_unhighlight: function(e){
           e = e || window.event;
           var rele = e.target || e.srcElement;
           var ele = obj(rele);
           ele.remove_class(['input_required','input_not_required']);
        },
        
        enlarge: function(action, identifier, type, ele){
        	var img = obj(ele).children_by_tag('IMG')[0];
        		
        }

    })
})();



