(function(){
    Class('site').create({
        slideshow_imgs: [],
        thumbs: {},
		hover: '',
		point:'',
		    
        init: function(){
        	this.load_actions();
        },
		
		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();
			
			
			if(obj('thumbs').get() != ''){
				Array(obj('thumbs').children_by_tag('IMG')).each(function(e){
					var src = e.src.replace(/.jpg/, '_large.jpg');
					var img = new Image().src = src;
					site.thumbs[e.src] = img;
				});
				
						
	   			Array(obj('thumbs').children_by_tag('IMG')).add_event('mouseover', site.thumb_over);
	   			Array(obj('thumbs').children_by_tag('IMG')).add_event('mouseout', site.thumb_out);
   			}
   			
   			if(obj('left_btn').get() != ''){
   				obj('left_btn').add_event('click', site.slide_left);
   			};
   			
   			if(obj('right_btn').get() != ''){
   				obj('right_btn').add_event('click', site.slide_right);
   			};
		},
		
		thumb_over: function(e){
			var target = evnt.get_target(e);
			var img = site.thumbs[target.src]
			
			
			
			var outer = site.hover = ui.create_element(obj('thumbs').get(), 'div', {id:'thumbs_outer'}, '', 'visible');
			var cont = ui.create_element(outer.get(), 'div', {id:'thumb_over'}, '', 'visible');
			var img_cont = ui.create_element(cont.get(), 'img', {}, '', 'visible');
			img_cont.set_attribute('src', img);
			var point = site.point = ui.create_element(obj('thumbs').get(), 'div', {id:'point'}, '<img src="/media/site/hover_point.png" />', 'visible');
			outer.css({top: -(cont.get_dimensions().h + 15) + 'px', left: obj(target).parent().get_position().left + 'px'});
			point.css({top: obj(target).parent().get_position().top - obj(target).get_dimensions().h + 1 + 'px', left: obj(target).parent().get_position().left + 'px'})
		},
		
		thumb_out: function(e){
			site.hover.destroy();
			site.point.destroy();
		},
		
        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');
            Array(clickable).add_event('click', this.parse_target);
            Array(rollable).add_event('mouseover', this.parse_target);            
        },
        
        on_highlight_input: function(){
        	
            if(obj('search_input').get()){
	            obj(document).add_event('click', function(e){
	                var target = evnt.get_target(e);
	                var str;
	                var val = obj('search_input').get_attribute('value');
	                if(target.id == 'search_input'){
	                    str = val != 's¿k...' ? val : '';
	                    obj('search_input').set_attribute('value', str);
	                }else{
	                    str = val != '' ? val : 's¿k...';
	                    obj('search_input').set_attribute('value', str);
	                }
	            });
	        }
	    },
        
        open_newsletter: function(){
        	var div = ui.create_element(obj('nyhetsbrev').get(), 'div', {'id': 'nyhetsbrev_pop'}, '', 'visible');
        	site.call(site.after_open_newsletter, '/nyhetsbrev', div)
        },
        
        after_open_newsletter: function(http, ele){
        	ele.html(http.responseText);
        	obj('close').add_event('click', function(){
        		ele.destroy();
        	});
        	
        	obj('newsletter_submit').add_event('click', function(){
        		var valid = false;
                var fname = obj('first_name').get_attribute('value');
                var lname = obj('last_name').get_attribute('value');
                var email = obj('email').get_attribute('value');
                
                if(fname){
                	valid = true;	    
                }else{
                	valid = false;
                    alert('Please enter your Fornavn.');
                }
                
                if(lname){
                	valid = true;	    
                }else{
                	valid = false;
                    alert('Please enter your Etternavn.');
                }
                
                if(site.check_email(email)){
                	valid = true;	    
                }else{
                	valid = false;
                    alert('Please enter a valid epost.');
                }
                
                if(valid){
                	var qstring = 'first_name=' + fname + '&last_name=' + lname + '&active=1&email=' + email;
                	site.call(site.newsletter_confirm, '/newsletter/add', obj('newsletter_form'), qstring);
                }
            });
        },
        
        check_email: function(email){
            var check = new RegExp('(.*)\@(.*)\\.(.*)');
            return check.test(email);
        },

        newsletter_confirm: function(http, ele){
            obj('confimation').html('Du har blitt lagt til.');
            
            var timer = window.setInterval(function(){
                window.clearInterval(timer);
                timer = null;
                obj('nyhetsbrev_pop').destroy();
            }, 7000);
        },
        
        load_product_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 response = json.eval_json(http.responseText)
        	var i = 0;
        	var arr = [];
        	for(var s in response){
        		arr.push(new Image());
        		arr[i].src = '/media/' + response[s];
        		i++;
        		
        	}
        	
        	if(i > 1){
        		site.arr = arr;
        		site.product_slideshow();
        	}
        },
        
        timer: '',
        arr: [],
        i: 0,
        
        product_slideshow: function(){
        	var max = site.arr.length - 1;
        	if(obj('slideshow_container').get() != ''){
	        	var run = function(){
	        		site.i = site.i < max ? site.i + 1 : 0;
	        		//obj('debug').html(i);
		        	var main_img = obj('slideshow_container').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: 999999998});
		       			main_img.style.position = 'relative';
		       			main_img.src = site.arr[site.i].src;
	       				fin();
		        	}
		        	
	        		site.timer = window.setInterval(function(){
	       				window.clearInterval(site.timer);
	       				site.timer = null;
	       				out();				
	       				
	       				
	       			}, 5000);
	       		}
	       		
	       		run();
       		}
       	},

        
        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);
		        		fin();
		        	}
		        	
		        	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;
	       			}
		        	
	        		var timer = window.setInterval(function(){
	       				window.clearInterval(timer);
	       				timer = null;
	       				out();				
	       				
	       				
	       			}, 5000);
	       		}
	       		
	       		run();
       		}
       	},
       	
       	total:2,
       	current:0,
       	
       	slide_left: function(){
       		if(site.current > 0){
       			site.current--
	       		window.clearInterval(site.timer)
	       		var slide_start = obj('slider_inner').get_position().left;
	       		var slide_end = slide_start + 940;
	       		
	       		var anime = new animation(site.product_slideshow);
				anime.animate(obj('slider_inner').get(), 'left', slide_start, slide_end);
			}
       	},
       	
       	slide_right: function(){
       		if(site.current < site.total){
       			site.current++
	       		window.clearInterval(site.timer)
	       		var slide_start = obj('slider_inner').get_position().left;
	       		var slide_end = slide_start - 940;
	       		
	       		var anime = new animation(site.product_slideshow);
				anime.animate(obj('slider_inner').get(), 'left', slide_start, slide_end);
			}
       	},
       	
       	enlarge: function(){
       		
       		var img = obj('enlarged_main_img');
       		img.remove_class('hidden')
       		img.show();
       		ui.center_ele(img);
       		var back = ui.show_trans_back();
       		
       		img.set_attribute('title', 'Click to Close')
       		back.set_attribute('title', 'Click to Close')
       		
       		back.css({zIndex: 999999999, cursor: 'pointer'})
       		img.css({zIndex: 999999999999999, cursor: 'pointer'})
			
			var close = function(){
				img.hide();
       			back.destroy();	
			}
			       		
       		img.add_event('click', close)
       		back.add_event('click', close)
       	},
       	
       	post_id: '',
       	
       	switch_post: function(action, id){
       		site.post_id = id;
       		var div = obj('post_inner');
       		site.call(site.after_switch_post, '/blog/post', div, 'bidentifier=' + id);
       	},
       	
       	after_switch_post: function(http, ele){
       		ele.html(http.responseText);
       		var arr = obj('post_links').children_by_tag('LI');
       		var cls = '';
       		Array(arr).each(function(e){
       			e = obj(e);
       			cls = e.get_attribute('id') == 'switch_post-' + site.post_id ? 'clickable highlight_date_box' : 'clickable date_box';
       			e.get().className = cls;
       		});
       	}
        
    })
})();



