$(document).ready(function(){
   $('a[href^="http://"]').attr({target: "_blank", title: "Opens in a new window"});
   
   var thatchSlideShow = function(what) {
        var me = this;
        var timer =8000;
        var fade = timer / 4;
        var loc = $(what).attr('lang');
        var title = $('#sidetitle'+loc);
        var text = $('#sidetext'+loc);
        
        var stuff = {
            doSwitch: function() {
                var active = $(what+' img.active');
                if ( active.length == 0 ) active = $(what+' img:last');
                var next =  active.next().length ? active.next() : $(what+' img:first');
                
                var imgid = $(next).attr('lang');
                var split = new Array();
                split[0] = $('#text-title-'+imgid).html();
                split[1] = $('#text-content-'+imgid).html();
                split[2] = $('#text-link-'+imgid).html();
                
                active.addClass('last-active');
                
                setTimeout(function(){
                    $(title).html(split[0]);
                    if (split[2] !== null) { $(text).html('<p>'+split[1]+' <a href="'+split[2]+'"> Find out more...</a>'+'</p>');}
                    else if ($.browser.msie && $.browser.version.substr(0,1)<7) {
                     $(text).html('<p>'+split[1]+' <a href="'+split[2]+'"> Find out more...</a>'+'</p>');
                    }
                    else { $(text).html('<p>'+split[1]+'</p>'); }
                },fade/2.75);
                next.css({opacity: 0.0})
                .addClass('active')
                .animate({opacity: 1.0}, fade, function() {
                    active.removeClass('active last-active');
                });
                //split[0] = false;split[1] = false;split[2] = false;

                
            },
            init:function() {
                //force preload the slideshow
                $(what+' img').each(function() {
                    Preload.load($(this).attr('src'));
                });
                // if browser is ie6 then quickly change image
                if ($.browser.msie && $.browser.version.substr(0,1)<7) {
                  stuff.doSwitch.apply();
                  setInterval(function(){stuff.doSwitch.apply()},timer);
                } else {
                  // start the slideshow
                  setInterval(function() {
                  stuff.doSwitch.apply()},timer);
                }
            }
        }
        stuff.init.apply(stuff);
        return stuff;
    };
    
    
    if ($('#slideshowtop').length) {
        new thatchSlideShow('#slideshowtop');
    }
    if ($('#slideshowbottom').length) {
        new thatchSlideShow('#slideshowbottom');
    }
    
   if ($('#urlalert')) {
      $('#ptitle').keyup(function() {
         value = $('#ptitle').val();
         myregex = new RegExp(/\s+/ig);
         value = value.replace(myregex,'-'); // spaces to dash
         myregex = new RegExp(/[^a-zA-Z_0-9\-]/ig); // strip everything else
         myval = value.replace(myregex,'');
         $('#url').val(myval);
      });
      $('#url').keyup(function() {
         value = $(this).val();
         if (value.match(/[^a-zA-Z_0-9\-]/)) {
            myregex = new RegExp(/\s+/ig);
            value = value.replace(myregex,'-'); // spaces to dash
            myregex = new RegExp(/[^a-zA-Z_0-9\-]/ig); // strip everything else
            myval = value.replace(myregex,'');
            $('#url').val(myval);
            $('#urlalert').stop().fadeIn('fast').shake(4,2,125)
             .animate({opacity: 1.0}, 1000)
             .fadeOut('fast');
         }
      });
   }
   
   
   if ($('#metachanger')) {
        var metadata = '';
        var id = $('#metalink').attr('rel');
        $('#metadiv').hide();
        $('#metalink').click(function(){
            $('#metadiv').slideToggle(500);
            //$("#metadiv").animate({ height: "300px" }).animate({height: "250px" }, "fast");
            
            $.get("/update.php", { getcontent: "1", id: $(this).attr('rel'), target: 'title' },function(data) {
                $("form.metaform input[name='title']").val(data);
            });
            $.get("/update.php", { getcontent: "1", id: $(this).attr('rel'), target: 'headline' },function(data) {
                $("form.metaform input[name='desc']").val(data);
            });
            
            $.get("/update.php", { getcontent: "1", id: $(this).attr('rel'), target: 'keywords' },function(data) {
                $("form.metaform input[name='keywords']").val(data);
            });
            
            $.get("/update.php", { getcontent: "1", id: $(this).attr('rel'), target: 'weight' },function(data) {
                $("form.metaform input[name='weight']").val(data);
            });
            
            return false;
        });
        
        $('form.metaform').submit(function() {
            var inputs = [];
            $(':input', this).each(function() {
                inputs.push(this.name + '=' + escape(this.value));
            });
            $('#metadiv').slideUp('fast');
             $.ajax({
                type: "POST",
                url: this.action,
                data: inputs.join('&'),
                beforeSend: function(){$("#loading").slideDown("fast");}, //show loading just when link is clicked 
                complete: function(){ $("#loading").slideUp("fast");}, //stop showing loading when the process is complete 
                success: function(html){ //so, if data is retrieved, store it in html 
                    $("#metadiv").show("slow"); //animation
                    $('#metalog').slideDown('fast');
                    $("#metalog").html("<h2>Meta Log</h2><div style='clear:both'></div>"+html); //show the h
                    setTimeout(function(){
                        $('#metalog').slideUp('slow');
                    }, 5000);
                }
            });
            return false;
        });
    }
});





/*******************************************************************************
 *  Preloading
 ******************************************************************************/
var Preload = {
    load: function(trigger, handlers) {
        if( (typeof trigger).toLowerCase() == 'string' ){
            src = trigger;
        }else{
            src = $(trigger).attr('href');
            try{
                opts = eval( '({' + $(trigger).attr('rel') + '})' );
            }catch(e){}
        }
        //test if it is an image, otherwise, use ajax
        if( src.match(/.jpg$|.jpeg$|.png$|.gif$|.bmp$|.tif$|.tiff$|.gi$/i) ){
            var img = new Image(); 
            if( handlers ){
                if( handlers.loaded && typeof handlers.loaded == 'function' ){
                    img.onload = function(){							
                        response = { 
                            width: img.width,
                            height: img.height,
                            obj: $('<img>').attr('src',img.src)
                        };
                        handlers.loaded( response );
                    };
                }
                if( handlers.loaded && typeof handlers.error == 'function' ){
                    img.onerror = function( err ){
                        handlers.error( err );
                    }
                }
            }
            img.src = src;
        }else if( src.match(/.swf$|.flv$|.SWF$|.FLV$/i) ){
            if( $.fn.flash ){
                if( handlers ){
                    if( handlers.loaded && typeof handlers.loaded == 'function' ){
                    // todo: code flash handling
                    }
                }				
            }
        }else{
            $.get(
                src,
                function( html ){
                    if( handlers ){
                        if( handlers.loaded && typeof handlers.loaded == 'function' ){							
                            var content = $('<div>').html( html );
                            response = { 
                                width: parseInt(content.children(0).css('width')),
                                height: parseInt(content.children(0).css('height')),
                                obj: content,
                                data: html
                            };
                            handlers.loaded( response );
                        }
                    }
                }
            );
        }
    }
};

/*******************************************************************************
 *  Misc fucntions
 ******************************************************************************/
jQuery.fn.shake = function(intShakes /*Amount of shakes*/, intDistance /*Shake distance*/, intDuration /*Time duration*/) {
   this.each(function() {
      $(this).css({position:"relative"});
      for (var x=1; x<=intShakes; x++) {
         $(this).animate({left:(intDistance*-1)}, (((intDuration/intShakes)/4)))
         .animate({left:intDistance}, ((intDuration/intShakes)/2))
         .animate({left:0}, (((intDuration/intShakes)/4)));
      }
   });
   return this;
};
