 
function strstr( haystack, needle, bool ) {
	var pos = 0;
	haystack += '';
	pos = haystack.indexOf( needle );
	if (pos == -1)
	{
		return false;
	}
	else
	{
		if( bool )
		{
			return haystack.substr( 0, pos );
		}
		else
		{
			return haystack.slice( pos );
		}
	}
}	

$(function()
{
	$('.ImageHolder a').lightBox();
	$('.GalleryRow dt a').lightBox();
});

$(function()
{
	$('#SearchSlideShow').cycle({ 
		fx: 'fade',
		delay:  -4000,
		timeout: 6000,
		speed: 2500
	});
});

$(function()
{
	$('#Form textarea').autogrow();				
});

$(function(){

	$('.FAQToggle').click(function () 
	{
		var ResultID = this.id.replace('more_', '');
		$('#detail_'+ResultID+'').slideToggle('fast');
		
		$( this ).toggleClass('FAQCollapse');
	}),

	$('.FAQToggleAll').click(function () 
	{
		$('.FAQAnswer').show('fast');
		$('.FAQToggle').addClass('FAQCollapse');
		
		$( this ).hide();
		$('.FAQCollapseAll').show();
	}),

	$('.FAQCollapseAll').click(function () 
	{
		$('.FAQAnswer').hide('fast');
		$('.FAQToggle').removeClass('FAQCollapse');
		
		$( this ).hide();
		$('.FAQToggleAll').show();
	})
});

jQuery.fn.fadeToggle = function(speed, easing, callback) {
   return this.animate({opacity: 'toggle'}, speed, easing, callback);

};


			
//KICK OFF NEW VERSION OF HOMEPAGE SLIDESHOW (WITHOUT BLOCKSTER)
function kick_off_fades()
{
    //START FADING THE FIRST SET OF IMAGES AFTER WAITING
    var set_timeout = setTimeout("fade_image_set();", timeout_pause_between_sets);
}

//THIS FADES EACH OF THE 9 IMAGES IN TURN, IN A RANDOM ORDER, FROM ONE SET TO THE NEXT.  IT IS EXECUTED WITH THE
//	JAVASCRIPT "setTimeOut()" FUNCTION, INITIALLY FROM WITHIN THE FUNCTION "kick_off_fades()", AND THEN FROM WITHIN 
//	THE FUNCTION "fade_image()" AFTER THE LAST IMAGE OF EACH SET HAS BEEN FADED
function fade_image_set()
{
    for(counter = 1; counter <= 9; counter++)
    {
        //NO IMAGES HAVE BEEN FADED YET.  WHEN IMAGE POSITION x HAS BEEN FADED, "done[x]" IS SET TO 1
        done[counter] = 0;
    }
    
    //GO ON TO THE NEXT SET OF IMAGES (OR THE FIRST SET IF THIS IS THE FIRST TIME THAT THIS FUNCTION HAS BEEN EXECUTED)
    set_number++;
    if(set_number > number_of_sets)
    {
        //IF WE\'VE ALREADY DONE THE LAST SET OF IMAGES, GO BACK TO THE FIRST SET
        set_number = 1;
    }
    
    //NO IMAGES HAVE BEEN FADED YET
    number_done = 0;
    
    //START THE "fade_image()" LOOP, WHICH WILL RUN ONCE FOR EACH OF THE 9 IMAGES, TERMINATE ITSELF, AND CALL THIS 
    //	FUNCTION AGAIN
    image_loop_id = setInterval("fade_image();", pause_between_images);
}

//TAKES THE SET OF 9 IMAGES WHICH IS IN FRONT OF THE REST AND PUTS IT AT THE BACK, PROMOTING ALL THE REST BY 1.  SO IF
//	SET 1 HAS A Z-INDEX OF 3, SET 2 HAS A Z-INDEX OF 2 AND SET 3 HAS A Z-INDEX OF 1, THEN THIS FUNCTION WILL MEAN THAT 
//	SET 1 NOW HAS A Z-INDEX OF 1, SET 2 HAS A Z-INDEX OF 3 AND SET 3 HAS A Z-INDEX OF 2
function reshuffle_z_axes()
{
    if(number_of_sets > 1)
    {
        first_set_z_index = parseInt(document.getElementById("HomePanel_1").style.zIndex);
        
        //WORK OUT WHICH PANEL HAS THE HIGHEST Z-INDEX BY SEEING WHICH Z-INDEX PANEL 1 HAS
        if(first_set_z_index == number_of_sets)
        {
            panel_with_highest_z_index = 1;
        }
        else
        {
            panel_with_highest_z_index = first_set_z_index + 1;
        }
        
        //SET Z-INDEX OF PANEL WITH HIGHEST Z-INDEX TO 0
        document.getElementById("HomePanel_"+panel_with_highest_z_index).style.zIndex = 0;
        
        //INCREMENT Z-INDEX OF EVERY PANEL (INCLUDING THE ONE WE HAVE JUST SET TO 0)
        for(var counter = 1; counter <= number_of_sets; counter++)
        {
            document.getElementById("HomePanel_"+counter).style.zIndex++;
        }
    }
}

//THIS FADES ONE OF THE 9 IMAGES INTO THE CORRESPONDING IMAGE IN THE NEXT SET.  THE IMAGE TO BE FADED IS DETERMINED AT 
//	RANDOM (BUT CANNOT BE AN IMAGE THAT HAS ALREADY BEEN FADED IN THIS SET).  THIS FUNCTION IS EXECUTED WITHIN THE
//	FUNCTION "fade_image_set()", WHICH USES THE "setInterval()" FUNCTION TO EXECUTE "fade_image()" REPEATEDLY (WITH 
//	WHATEVER TIME "pause_between_images" IS SET TO BETWEEN EXECUTIONS).  WHEN THE FUNCTION HAS BEEN EXECUTED 9 TIMES FOR
//	A SET OF IMAGES (I.E. EVERY IMAGE IN THE SET HAS BEEN FADED INTO THE CORRESPONDING IMAGE IN THE NEXT SET), THIS 
//	FUNCTION STOPS ITSELF FROM LOOPING BY USING THE "clearInterval()" FUNCTION, THEN EXECUTES THE "fade_image_set()"
//	FUNCTION (AFTER A DELAY), WHICH THEN STARTS ANOTHER "setInterval()" LOOP FOR "fade_image()" FOR THE NEXT SET OF 
//	IMAGES, AND SO ON
function fade_image()
{
    if(number_done == 9)
    {
        //RESHUFFLE THE Z-AXIS OF EACH SET, SO THE ONE WE\'RE FADING OUT IS ALWAYS IN FRONT OF THE ONE WE\'RE FADING IN
        reshuffle_z_axes();
        //IF WE\'VE FADED ALL THE IMAGES IN THIS SET, TERMINATE THE "fade_image()" LOOP
        image_loop_id = clearInterval(image_loop_id);
        //NOW EXECUTE "fade_image_set()" AGAIN (AFTER A DELAY), WHICH WILL START ANOTHER "fade_image()" LOOP FOR THE NEXT
        //	IMAGE SET
        var set_timeout = setTimeout("fade_image_set();", timeout_pause_between_sets);
    }
    else
    {
        //WE HAVEN\'T YET FADED ALL THE IMAGES IN THIS SET, SO WE MUST FIRST CHOOSE THE NEXT IMAGE TO FADE
        var this_image_position = 0;
    
        while(this_image_position == 0)
        {
            //GENERATE RANDOM INTEGER BETWEEN 1 AND 9
            var this_image_position_maybe = 1 + Math.floor(Math.random() * 9);
            
            if(done[this_image_position_maybe] == 0)
            {
                //IF WE HAVEN\'T ALREADY FADED THE IMAGE IN THE RANDOM POSITION CHOSEN, WE\'LL DO THAT NEXT
                this_image_position = this_image_position_maybe;
            }
            //IF WE\'VE ALREADY FADED THE IMAGE IN THS RANDOM POSITION CHOSEN, WE NEED TO GO ROUND THIS LOOP AGAIN AND 
            //	TRY ANOTHER RANDOM POSITION
        }
        
        //DETERMINE THE IMAGE NUMBER FROM THE SET NUMBER WE\'RE ON AND THE IMAGE POSITION WE HAVE.  FOR EXAMPLE, SET 
        //	NUMBER 2 COVERS IMAGES 19-27, AND IMAGE POSITION 1 IN THIS SET IS IMAGE NUMBER 19, IMAGE POSITION 2 IS
        //	IMAGE NUMBER 20, POSITION 3 IS NUMBER 21, ETC
        this_image_number = (set_number - 1) * 9 + this_image_position;
        
        if(set_number == number_of_sets)
        {
            //IF WE\'RE IN THE LAST IMAGE SET, THE NEXT IMAGE IS IN THE FIRST SET, WHICH COVERS IMAGE NUMBERS 1-9, I.E.
            //	THEIR IMAGE NUMBERS ARE THE SAME AS THEIR IMAGE POSITIONS
            next_image_number = this_image_position;
        }
        else
        {
            //IF WE\'RE NOT IN THE LAST IMAGE SET THEN THE NEXT IMAGE NUMBER IS ALWAYS 9 MORE THAN THIS ONE
            next_image_number = this_image_number + 9;
        }
    
        //NOW FADE OUT THE IMAGE WITH THIS IMAGE NUMBER, AND FADE IN THE IMAGE WITH THE NEXT IMAGE NUMBER
        //$("#Image_"+this_image_number).fadeOut(fade_time, do_hidden(this_image_number));
        //do_visible(next_image_number);
        //$("#Image_"+next_image_number).fadeIn(fade_time);
        
        $("#Image_"+this_image_number).fadeTo(fade_time, 0);
        $("#Image_"+next_image_number).fadeTo(fade_time, 100);
        
        //NOW WE\'VE DONE THE IMAGE IN THIS POSITION
        done[this_image_position] = 1;
        
        //NOW WE\'VE DONE ONE MORE IMAGE THAN BEFORE
        number_done++;
    }
}

//HOVER THUMBS FOR GALLERY
$(document).ready(function(){
	$("ul.thumb li.Image").hover(function() {
		$(this).css({'z-index' : '10'});
		$(this).find('img').addClass("hover").stop()
			.animate({
				marginTop: '-120px', 
				marginLeft: '-140px', 
				top: '60px', 
				left: '65px', 
				width: '280px', 
				height: '186px',
				padding: '2px',
				border: '2px solid #dfe1e1'
			}, 400); //CONTROL THE SPEED OF THE ANIMATION
		
		} , function() {
		$(this).css({'z-index' : '0'});
		$(this).find('img').removeClass("hover").stop()
			.animate({
				marginTop: '0', 
				marginLeft: '0',
				top: '0', 
				left: '0', 
				width: '140px', 
				height: '93px', 
				padding: '0px',
				border:'0px solid #fff'
				 
			}, 500);
	});
});

//LAZY LOAD
$(document).ready(function(){
	$("img.LazyLoad").lazyload({ 
		placeholder : config.themePath+'_images_gen/loading.gif',
		effect : "fadeIn",
		effectspeed : 800,
		threshold: 200
	});
});

//REFRESH PAGE ON RESIZE
function loaderRefresh()
{
	setTimeout("reload()",100)
}
function reload()
{
	window.location=window.location;
}
