(function(){
    Class('site').create({
        slideshow_imgs: [],
        cur_img: '',
    
        init: function(){
        	this.preload();
        	
        	if(obj('thumb_slider').get()){
        		this.scrollbars();
        	}
        	
        	if(obj('slider_outer').get()){
        		this.product_scroller();
        	}
        	
        	if(obj('home_slider').get()){
        		this.home_scroller();
        	}
        	
        	if(obj('category').get()){
        		if(!browser.is_ie){
	        		var opts = obj('category').children_by_tag('OPTION');
	        		Collection(opts).add_event('click',function(e){
	        			target = evnt.get_target(e);
	        			evnt.stop_event(e);
	    				location.href = target.value;
	        		});
        		}
        	}
        	
        	var arrow = utils.get_by_class('arrows');
        	Collection(arrow).add_event('mouseover', function(){
        		this.src = "media/site/go_ro.gif"
        	});
        		
        	Collection(arrow).add_event('mouseout', function(){
        		this.src = "media/site/go.gif"
        	});
        	
        	this.validate_form();
        	
        	var blog_imgs = utils.get_by_class('blog_img');
        	Collection(blog_imgs).each(function(e){
        		target = obj(evnt.get_target(e));
        		target.add_event('click', function(){
        			evnt.stop_event(e);
        		});
        	});
        	
        	var enlarge_arr = utils.get_by_class('article_img1');
        	Collection(enlarge_arr).each(function(e){
        		obj(e).add_event('click',function(e){
 					
 					var back = ui.show_trans_back();
       				
		       		var target = evnt.get_target(e);
		       		
		       		img1 = new Image();
		       		img1.src = target.src;
		       		
		       		
		       		img1.title = 'Click to Close';
		       		back.set_attribute('title', 'Click to Close')
		       		
		       		var img = ui.create_element('', 'img', {'src': img1.src}, '', 'hidden');
		       		img.get().onload = function(){
		       			img.css({position:'absolute', zIndex: 99999999999999, 'opacity': 0, border:'solid 10px #ffffff', cursor:'pointer'});
		       			ui.center_ele(img);
		       			fx.animate(img.get(), 'opacity', 0, 100);
		       		} 
		       		
		       		var close = function(){
						img.destroy();
		       			back.destroy();	
					}
					       		
		       		img.add_event('click', close);
		       		back.add_event('click', close);  
					
					
        		});
        		
        	});
        	
        	
        	
        	var enlarge_arr = utils.get_by_class('gallery_cell');
        	Collection(enlarge_arr).each(function(e){
        		obj(e).add_event('click',function(e){
       		
		       		var target = evnt.get_target(e);
		       		site.cur_img = new Image(); 
		       		site.cur_img.src = target.src.replace(/gallery_thumb/, 'popover');
		       		
		       		var clear = function(){
		       			obj('gallery_img').destroy();
		       			var img = ui.create_element('gallery_main_img', 'img', {'src': site.cur_img.src, 'id' : 'gallery_img'}, '', 'visible');
		       			
		       			var timer = window.setInterval(function(){
		       			if(site.cur_img.complete){
		       				window.clearInterval(timer);
		       				timer = null;
		       				fx.animate(obj('gallery_main_img').get(), 'opacity', 0, 100);		
		       			}
		       		}, 100);
		       		}
		       		
		       		fx.animate(obj('gallery_main_img').get(), 'opacity', 100, 0, clear);
		       	});
        	});
        	
        	/*var enlarge_arr = utils.get_by_class('gallery_img');
        	Collection(enlarge_arr).each(function(e){
        		obj(e).add_event('click',function(e){
       		
		       		var target = evnt.get_target(e);
		       		
		       		img1 = new Image();
		       		img1.src = target.src.replace(/gallery_thumb/, 'popover');
		       		
		       		var gal_img = obj('gallery_img');
		       		
		       		var loader = ui.create_element('', 'img', {'src': '/images/icons/ajax-loader5.gif', 'id': 'loader'}, '', 'visible');
		       		ui.center_ele(loader);
		       		fx.animate(gal_img.get(), 'opacity', 100, 0);
		       		gal_img.set_attribute('src', img1.src);
		       		gal_img.get().onload = function(){
		       			loader.destroy();
		       			fx.animate(gal_img.get(), 'opacity', 0, 100);
		       		}
		       		
		       		//var uid = utils.uid();
		       		
		       		//var div = ui.create_element('', 'div', {'class': 'photo_pop', 'id': 'img_win-' + uid}, '', 'visible');
		       		//div.css({zIndex: ui.zindex++, visibility: 'hidden'});
		       		
		       		//var img = ui.create_element(obj('gallery_img'), 'img', {src: img1.src},{},'');
		       	});
        	});*/
        	
        	/*if(obj('article_img1').get()){
        		obj('article_img1').add_event('click', this.enlarge);
        	}*/
        },
		
		preload: function(){
			img1 = new Image();
    		img2 = new Image();
    		img3 = new Image();
    		img4 = new Image();
    		img5 = new Image();
    		img6 = new Image();
    		img7 = new Image();
   			img8 = new Image();
   			img1.src = "media/slideshow/1.jpg"
			img2.src = "media/slideshow/2.jpg"
			img3.src = "media/slideshow/3.jpg"
			img4.src = "media/slideshow/4.jpg"
			img5.src = "media/slideshow/5.jpg"
			img6.src = "media/slideshow/6.jpg"
			img7.src = "media/slideshow/7.jpg"
			img8.src = "media/slideshow/8.jpg"
			
			this.slideshow_imgs = [img1, img2, img3, img4, img5, img6, img7, img8];
   			
   			this.home_slideshow();
   			ui.tabs();
		},
		
        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'});
        	}
        	
        	
        },
        
        i : 0,
        curele: '',
        
        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'
				            });
				            
				            site.curele = obj(target_id);
				            
		            	}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);
            	

            });
			
			this.curele = obj('cell_0');
			
            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);
	        }
	        
	        obj('slider_right').add_event('click', function(e){
	        	var cols = utils.get_by_class('gallery_cell');
	        	
	        	var current = site.curele.get_attribute('id').split('_');
	        	var current_int = Number(current[1]);
	        	
	        	var next_int = current_int + 1 < cols.length ? current_int + 1 : 0;
	        	
	        	var target_id = 'cell_' + next_int;
	        	
	        	var next_ele = obj(target_id);
	        	var next_ele_img
	        
	        	var target = next_ele.children_by_tag('IMG')[0];

	       		site.cur_img = new Image(); 
	       		site.cur_img.src = target.src.replace(/gallery_thumb/, 'popover');
	       		
	       		var clear = function(){
	       			obj('gallery_img').destroy();
	       			var img = ui.create_element('gallery_main_img', 'img', {'src': site.cur_img.src, 'id' : 'gallery_img'}, '', 'visible');
	       			
	       			var timer = window.setInterval(function(){
	       			if(site.cur_img.complete){
	       				window.clearInterval(timer);
	       				timer = null;
	       				fx.animate(obj('gallery_main_img').get(), 'opacity', 0, 100);		
	       			}
	       		}, 100);
	       		}
	       		
	       		fx.animate(obj('gallery_main_img').get(), 'opacity', 100, 0, clear);
	       		
	       		Collection(cols).each(function(el){
        			el = obj(el);
        			
        			if(el.get_attribute('id') == target_id){
	            		el.css({
			            	opacity: '1'
			            });
			            
			            site.curele = obj(target_id);
			            
	            	}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'
				            });
				        });
	            	}	
        		});
	        });
	        
	        obj('slider_left').add_event('click', function(e){
	        	var cols = utils.get_by_class('gallery_cell');
	        
	        	var current = site.curele.get_attribute('id').split('_');
	        	var current_int = Number(current[1]);
	        	
	        	var next_int = current_int - 1 >= 0 ? current_int - 1 : cols.length - 1;
	        	
	        	var target_id = 'cell_' + next_int;
	        	
	        	var next_ele = obj(target_id);
	        	var next_ele_img
	        
	        	var target = next_ele.children_by_tag('IMG')[0];

	       		site.cur_img = new Image(); 
	       		site.cur_img.src = target.src.replace(/gallery_thumb/, 'popover');
	       		
	       		var clear = function(){
	       			obj('gallery_img').destroy();
	       			var img = ui.create_element('gallery_main_img', 'img', {'src': site.cur_img.src, 'id' : 'gallery_img'}, '', 'visible');
	       			
	       			var timer = window.setInterval(function(){
	       			if(site.cur_img.complete){
	       				window.clearInterval(timer);
	       				timer = null;
	       				fx.animate(obj('gallery_main_img').get(), 'opacity', 0, 100);		
	       			}
	       		}, 100);
	       		}
	       		
	       		fx.animate(obj('gallery_main_img').get(), 'opacity', 100, 0, clear);
	       		
	       		var cols = utils.get_by_class('gallery_cell');
	       		Collection(cols).each(function(el){
        			el = obj(el);
        			
        			if(el.get_attribute('id') == target_id){
	            		el.css({
			            	opacity: '1'
			            });
			            
			            site.curele = obj(target_id);
			            
	            	}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'
				            });
				        });
	            	}	
        		});
	        });
	    },
        
        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, '');
	        }
        },
        
        home_scroller: function(ele){
       		var outer = obj('home_slider');
       		var content =  obj('home_slider_content');
       		var track = obj('home_track');
       		var slider = obj('home_bar');
       		
       		var width = 0;
            var cols = utils.get_by_class('product_cell');
            Collection(cols).each(function(el){
            	el = obj(el);
                width += 338;
            });
			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,
                    right:((track.get_position().left) + 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);
	        }
        },
        
        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']);
        }

    })
})();



