(function(){
    Class('site').create({
        init: function(){
            this.resize_background();
            obj(window).add_event('resize', this.resize_background);
            this.clickable();
            var date_pickers = utils.get_by_class('date_picker');
            Array(date_pickers).add_event('click', this.show_cal);
            this.validate_form();
            this.home_flash();
            this.newsletter();
        },

        call: function(fn, url, caller, qstring, method, loader){
            xhr.config.method = method || 'post';
            xhr.config.url = url;
            var cllr = caller != '' ? caller : false;
            xhr.call(qstring || '', fn, caller, false);
        },

        resize_background: function(){
            var ele = obj('main_background');
            var ratio = document.body.offsetWidth / 1314;

            var width  = 1314 * ratio + "px";
            var height = 872 * ratio + "px";

            ele.css({width: width, height: height});
        },

        clickable: function(){
            var img_arr = utils.get_by_class('img_clickable');
            Array(img_arr).add_event('click', function(e){
               var uid = utils.uid();
               var target = obj(evnt.get_target(e)).parent();
               var div = ui.create_element('', 'div', {'class': 'photo_pop', 'id': 'img_win-' + uid}, '', 'visible');
               var el =ui.create_element(div.get(), 'img', {src: '/gd/popover/' + target.get().id}, '', 'visible');

               div.css({zIndex: ui.zindex++, visibility: 'hidden'});

               var timer = window.setInterval(function(){
                    div.css({visibility: 'visible'});
                   window.clearInterval(timer);
                   timer = null;
                   ui.center_ele(div);
                }, 1000);

                el.add_event('click', function(){
                      el.parent().destroy();
                });

                div.drag();

                div.add_event('click', function(){
                    div.css({zIndex: ui.zindex++});
                });
            });
        },

        home_flash: function(){
            if(obj('home_flash').get()){
            var fn = function() {
                var att = {data:"/media/flash/midfjardara.swf", width:"697", height:"478"};
                var par = {};
                var id = "home_flash_replace";
                var myObject = swfobject.createSWF(att, par, id);
              };
              swfobject.addDomLoadEvent(fn);
            }
        },

        show_cal: function(e){
            var target = evnt.get_target(e);
            calendar.start(target);
        },

        validate_form: function(){
            if(obj('validate_form').get()){
                this.highlights();
            }
        },

        highlights: function(){
            Array(utils.get_by_tag('INPUT')).add_event('focus', this.input_highlight);
            Array(utils.get_by_tag('INPUT')).add_event('blur', this.input_unhighlight);
            Array(utils.get_by_tag('SELECT')).add_event('focus', this.input_highlight);
            Array(utils.get_by_tag('SELECT')).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']);
        },

        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);
        }
    })
})();



