










function strpos( haystack, needle, offset)
{
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Onno Marsman    
    // *     example 1: strpos('Kevin van Zonneveld', 'e', 5);
    // *     returns 1: 14
 
    var i = (haystack+'').indexOf( needle, offset ); 
    return i===-1 ? false : i;
}	
function substr( f_string, f_start, f_length ) {
    // http://kevin.vanzonneveld.net
    // +     original by: Martijn Wieringa
    // +     bugfixed by: T.Wild
    // +      tweaked by: Onno Marsman
    // *       example 1: substr('abcdef', 0, -1);
    // *       returns 1: 'abcde'
    // *       example 2: substr(2, 0, -6);
    // *       returns 2: ''
 
    f_string += '';
 
    if(f_start < 0) {
        f_start += f_string.length;
    }
 
    if(f_length == undefined) {
        f_length = f_string.length;
    } else if(f_length < 0){
        f_length += f_string.length;
    } else {
        f_length += f_start;
    }
 
    if(f_length < f_start) {
        f_length = f_start;
    }
 
    return f_string.substring(f_start, f_length);
}	
	
	/************************************************************************************************************
	(C) www.dhtmlgoodies.com, June 2006
	
	This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
	
	Terms of use:
	You are free to use this script as long as the copyright message is kept intact. However, you may not
	redistribute, sell or repost it without our permission.
	
	Thank you!
	
	www.dhtmlgoodies.com
	Alf Magne Kalleland
	
	************************************************************************************************************/	

	
	
	
	var opacitySpeed = 2;	// Speed of opacity - switching between large images - Lower = faster
	var opacitySteps = 10; 	// Also speed of opacity - Higher = faster
	var slideSpeed = 0;	// Speed of thumbnail slide - Lower = faster
	var slideSteps = 8;	// Also speed of thumbnail slide - Higher = faster
	//var columnsOfThumbnails = 6;	// Hardcoded number of thumbnail columns, use false if you want the script to figure it out dynamically.
	var columnsVisibleAtOnce = 4; // Number of visible columns (thumbnails)
	

	
	/* Don't change anything below here */
	
	
	var currentFirstThumb = 0; // stores which channel is shown in the left most position (visible), starts at 0
	
	
	
	var maxFirstThumb = columnsOfThumbnails - columnsVisibleAtOnce; // which is that last thumb that can be shown in the first position
	
	var DHTMLgoodies_largeImage = false;
	var DHTMLgoodies_imageToShow = false;
	var DHTMLgoodies_currentOpacity = 100;
	var DHTMLgoodies_slideWidth = false;
	var DHTMLgoodies_thumbTotalWidth = false;
	var DHTMLgoodies_viewableWidth = false;
	
	var currentUnqiueOpacityId = false;
	var DHTMLgoodies_currentActiveImage = false;
	var DHTMLgoodies_thumbDiv = false;
	var DHTMLgoodies_thumbSlideInProgress = false;
	
	var browserIsOpera = navigator.userAgent.indexOf('Opera')>=0?true:false;
	var leftArrowObj;
	var rightArrowObj;
	var thumbsColIndex = 1;
	var thumbsLeftPos = false;
	
	function initGalleryScript()
	{
		
		
		leftArrowObj = document.getElementById('DHTMLgoodies_leftArrow');		
		//leftArrowObj.style.visibility='hidden';
		
		leftArrowHolderObj = document.getElementById('leftArrowHolder');
		//leftArrowHolderObj.innerHTML = '<img src="graphics/channel_left.jpg"  id="DHTMLgoodies_leftArrow" class="leftArrow" />';
		leftArrowHolderObj.onclick = null;
		
		
		rightArrowHolderObj = document.getElementById('rightArrowHolder');		
		
		rightArrowObj = document.getElementById('DHTMLgoodies_rightArrow');	
		leftArrowObj.style.cursor = 'pointer';	
		rightArrowObj.style.cursor = 'pointer';	
		
		if (columnsOfThumbnails > 4)
			leftArrowObj.onclick = moveThumbnails;
		else
			leftArrowObj.onclick = null;
		
		leftArrowHolderObj.style.cursor = 'pointer';
		rightArrowHolderObj.style.cursor = 'pointer';
		
		if (columnsOfThumbnails > 4)
			rightArrowObj.onclick = moveThumbnails;
		else
			rightArrowObj.onclick = null;		
		
		if (columnsOfThumbnails <= 4)
		{	rightArrowHolderObj.innerHTML = '<img src="graphics/channel_right.jpg"  id="DHTMLgoodies_rightArrow" class="rightArrow" />';
			
			leftArrowHolderObj.style.cursor = '';
			rightArrowHolderObj.style.cursor = '';
		}
		DHTMLgoodies_largeImage = document.getElementById('DHTMLgoodies_largeImage').getElementsByTagName('IMG')[0];
		var innerDiv = document.getElementById('DHTMLgoodies_thumbs_inner');
		//DHTMLgoodies_slideWidth = innerDiv.getElementsByTagName('DIV')[0].offsetWidth;
		DHTMLgoodies_slideWidth = innerDiv.getElementsByTagName('DIV')[0].offsetWidth;
		DHTMLgoodies_thumbDiv = document.getElementById('DHTMLgoodies_thumbs_inner');
		DHTMLgoodies_thumbDiv.style.left = '0px';
		
		var subDivs = DHTMLgoodies_thumbDiv.getElementsByTagName('DIV');
		DHTMLgoodies_thumbTotalWidth = 0;
		var tmpLeft = 0;
		for(var no=0;no<subDivs.length;no++){
			if(subDivs[no].className=='strip_of_thumbnails'){
				DHTMLgoodies_thumbTotalWidth = DHTMLgoodies_thumbTotalWidth + DHTMLgoodies_slideWidth;
				subDivs[no].style.left = tmpLeft + 'px';
				subDivs[no].style.top = '0px';
				tmpLeft = tmpLeft + subDivs[no].offsetWidth;
			}
		}

		DHTMLgoodies_viewableWidth = document.getElementById('DHTMLgoodies_thumbs').offsetWidth;
		
		
		DHTMLgoodies_currentActiveImage = DHTMLgoodies_thumbDiv.getElementsByTagName('A')[0].getElementsByTagName('IMG')[0];
		DHTMLgoodies_currentActiveImage.className='activeImage';
		
		// MOVE THE CHANNEL SELECTOR TO SHOW THE CURRENT CHANNEL SELECTED
		if (startingChannel>4)
		{
			DHTMLgoodies_thumbDiv = document.getElementById('DHTMLgoodies_thumbs_inner');
			DHTMLgoodies_thumbDiv.style.left = 152 * (startingChannel-4) * -1 + "px";	
			
			currentFirstThumb = startingChannel-4;
			
			// RESET THE CHANNEL ARROWS
			if (startingChannel==columnsOfThumbnails)
			{
				// DISABLE RIGHT ARROW AS WE ARE ON LAST CHANNEL
				rightArrowHolderObj.innerHTML = '<img src="graphics/channel_right.jpg"  id="DHTMLgoodies_rightArrow" class="rightArrow" />';
				rightArrowHolderObj.style.cursor = '';
				rightArrowObj.onclick = null;
			}
			// ENABLE THE LEFT ARROW
			leftArrowHolderObj = document.getElementById('leftArrowHolder');
			leftArrowHolderObj.innerHTML = '<img src="graphics/channel_left_on.jpg"  id="DHTMLgoodies_leftArrow" class="leftArrow" />';
			leftArrowHolderObj.onclick = moveThumbnails;			
		}	
	}
	
	function moveThumbnails()
	{
		var leftPos = DHTMLgoodies_thumbDiv.style.left.replace('px','')/1;	
		
		// alert("leftPos: " + leftPos);
		
		if(DHTMLgoodies_thumbSlideInProgress)return;
		DHTMLgoodies_thumbSlideInProgress = true;
		
		// MOVE LEFT
		if(this.id=='DHTMLgoodies_leftArrow' || this.id=='leftArrowHolder')
		{
			currentFirstThumb--;
			
			thumbsColIndex--;
			rightArrowObj.style.visibility='visible';
			
			//alert("Left: " + DHTMLgoodies_thumbDiv.style.left.replace('px',''));			
			
			if(DHTMLgoodies_thumbDiv.style.left.replace('px','')/1>=0)
			{
				leftArrowHolderObj = document.getElementById('leftArrowHolder');
				leftArrowHolderObj.innerHTML = '<img src="graphics/channel_left.jpg"  id="DHTMLgoodies_leftArrow" class="leftArrow" />';
				leftArrowHolderObj.onclick = null;
				
				//leftArrowObj.style.visibility='hidden';
				DHTMLgoodies_thumbSlideInProgress = false;
				return;
			}
			
			slideThumbs(slideSteps,0);
			
			//alert ("Current First Thumb: " + currentFirstThumb);
			
		}
		// MOVE RIGHT
		else
		{
			currentFirstThumb++;			
			
			thumbsColIndex++;
			leftArrowObj.style.visibility='visible';
			
			leftArrowHolderObj = document.getElementById('leftArrowHolder');
			leftArrowHolderObj.innerHTML = '<img src="graphics/channel_left_on.jpg"  id="DHTMLgoodies_leftArrow" class="leftArrow" />';
			leftArrowHolderObj.onclick = moveThumbnails;
			
			var left = DHTMLgoodies_thumbDiv.style.left.replace('px','')/1;	
			var showArrow = true;
			
			if(DHTMLgoodies_thumbTotalWidth + left - DHTMLgoodies_slideWidth <= DHTMLgoodies_viewableWidth)
				showArrow = false;
				
			if(columnsOfThumbnails)
				showArrow = true;
				
			if(!showArrow)	
			{
				rightArrowObj.style.visibility='hidden';
				DHTMLgoodies_thumbSlideInProgress = false;
				return;
			}	
			
			slideThumbs((slideSteps*-1),0);
			
			//alert ("Current First Thumb: " + currentFirstThumb);
		}	
		
		
		// ENABLE / DISABLE THE SCROLLERS
		if (currentFirstThumb==0)
		{
			leftArrowHolderObj = document.getElementById('leftArrowHolder');
			leftArrowHolderObj.innerHTML = '<img src="graphics/channel_left.jpg"  id="DHTMLgoodies_leftArrow" class="leftArrow" />';
			leftArrowHolderObj.onclick = null;	
			
			
			rightArrowHolderObj = document.getElementById('rightArrowHolder');
			rightArrowHolderObj.innerHTML = '<img src="graphics/channel_right_on.jpg"  id="DHTMLgoodies_rightArrow" class="rightArrow" />';
			rightArrowHolderObj.onclick = moveThumbnails;
			
		}
		else if (currentFirstThumb > 0 && currentFirstThumb < maxFirstThumb)
		{
			leftArrowHolderObj = document.getElementById('leftArrowHolder');
			leftArrowHolderObj.innerHTML = '<img src="graphics/channel_left_on.jpg"  id="DHTMLgoodies_leftArrow" class="leftArrow" />';
			leftArrowHolderObj.onclick = moveThumbnails;
			
			rightArrowHolderObj = document.getElementById('rightArrowHolder');
			rightArrowHolderObj.innerHTML = '<img src="graphics/channel_right_on.jpg"  id="DHTMLgoodies_rightArrow" class="rightArrow" />';
			rightArrowHolderObj.onclick = moveThumbnails;
		}
		else
		{
			leftArrowHolderObj = document.getElementById('leftArrowHolder');
			leftArrowHolderObj.innerHTML = '<img src="graphics/channel_left_on.jpg"  id="DHTMLgoodies_leftArrow" class="leftArrow" />';
			leftArrowHolderObj.onclick = moveThumbnails;
			
			rightArrowHolderObj = document.getElementById('rightArrowHolder');
			rightArrowHolderObj.innerHTML = '<img src="graphics/channel_right.jpg"  id="DHTMLgoodies_rightArrow" class="rightArrow" />';
			rightArrowHolderObj.onclick = null;
		}
		
		
		
	}
	
	function slideThumbs(speed,currentPos)
	{
		var leftPos;
		if(thumbsLeftPos)
		{
			leftPos = thumbsLeftPos;
		}else
		{
			var leftPos = DHTMLgoodies_thumbDiv.style.left.replace('px','')/1;
			thumbsLeftPos = leftPos;
		}
		currentPos = currentPos + Math.abs(speed);		
		var tmpLeftPos = leftPos;
		leftPos = leftPos + speed;
		thumbsLeftPos = leftPos;
		
		DHTMLgoodies_thumbDiv.style.left = leftPos + 'px';
		
		if (currentPos<DHTMLgoodies_slideWidth)
			setTimeout('slideThumbs(' + speed + ',' + currentPos + ')', slideSpeed);
		else
		{
			if(leftPos>=0 || (columnsOfThumbnails==1 && thumbsColIndex==1))
			{
				leftArrowHolderObj = document.getElementById('leftArrowHolder');
				leftArrowHolderObj.innerHTML = '<img src="graphics/channel_left.jpg"  id="DHTMLgoodies_leftArrow" class="leftArrow" />';
				leftArrowHolderObj.onclick = null;
				//document.getElementById('DHTMLgoodies_leftArrow').style.visibility='hidden';
			}	
			
			var left = tmpLeftPos;		
			var showArrow = true;
			
			if (DHTMLgoodies_thumbTotalWidth + left - DHTMLgoodies_slideWidth <= DHTMLgoodies_viewableWidth)
				showArrow=false;
			if (columnsOfThumbnails)
			{
				if ((thumbsColIndex+1)<columnsOfThumbnails)
					showArrow=true; 
				else 
					showArrow = false;				
			}			
			if (!showArrow)
			{
				document.getElementById('DHTMLgoodies_rightArrow').style.visibility='hidden';
			}					
			DHTMLgoodies_thumbSlideInProgress = false;
		}
	
	}
	
	function showPreview(channelNo)
	{		
		var channelNo = channelNo;
		
		// RESET ALL OTHER BUTTONS TO OFF
		for (i=1; i<=columnsOfThumbnails; i++)
		{
			if (i != channelNo)
			{
				imgObj = document.getElementById('divChannel'+i);
				if (imgObj.getElementsByTagName('IMG')[0].src != 'graphics/channel' + i + '.jpg')
				{
					//imgObj.getElementsByTagName('IMG')[0].src = 'graphics/channel' + i + '.jpg';
					
					imgObj.innerHTML = '<div><a href="#" onClick="formSend(\'playlist.php?channel='+i+'&cacheBuster=\'); showPreview(\''+i+'\'); return false;"><img src="graphics/channel' + i + '.jpg" width="148" height="150" id="channelButton'+i+'" name="channelButton'+i+'" onmouseover="MM_swapImage(\'channelButton'+i+'\',\'\',\'graphics/channel'+i+'_ro.jpg\',1)" onmouseout="MM_swapImgRestore()"></a></div>';
					
					// SET THE MOUSE POINTER
					imgObj.getElementsByTagName('IMG')[0].style.cursor = 'pointer';	
				}
			}
		}
		
		if (channelNo > 0)
		{
			imgObj = document.getElementById('divChannel'+channelNo);
			
			imgObj.innerHTML = '<div><a href="#" onClick="formSend(\'playlist.php?channel='+channelNo+'&cacheBuster=\'); showPreview(\''+channelNo+'\'); return false;"><img src="graphics/channel' + channelNo + '_on.jpg'+'" width="148" height="150" id="channelButton'+channelNo+'"></a></div>';
		}
	}
	
	function setOpacity()
	{
		if(document.all)
		{
			DHTMLgoodies_largeImage.style.filter = 'alpha(opacity=' + DHTMLgoodies_currentOpacity + ')';
		}else{
			DHTMLgoodies_largeImage.style.opacity = DHTMLgoodies_currentOpacity/100;
		}		
	}
	function moveOpacity(speed,uniqueId)
	{
		
		if(browserIsOpera){
			DHTMLgoodies_largeImage.src = DHTMLgoodies_imageToShow;
			return;
		}
		
		DHTMLgoodies_currentOpacity = DHTMLgoodies_currentOpacity + speed;
		if(DHTMLgoodies_currentOpacity<=5 && speed<0){
		
			var tmpParent = DHTMLgoodies_largeImage.parentNode; 
			DHTMLgoodies_largeImage.parentNode.removeChild(DHTMLgoodies_largeImage);
			DHTMLgoodies_largeImage = document.createElement('IMG');
			tmpParent.appendChild(DHTMLgoodies_largeImage);
			setOpacity();
			DHTMLgoodies_largeImage.src = DHTMLgoodies_imageToShow;
		
			speed=opacitySteps;
		}
		if(DHTMLgoodies_currentOpacity>=99 && speed>0)DHTMLgoodies_currentOpacity=99;		
		setOpacity();	
		if(DHTMLgoodies_currentOpacity>=99 && speed>0)return;		
		if(uniqueId==currentUnqiueOpacityId)setTimeout('moveOpacity(' + speed + ',' + uniqueId + ')',opacitySpeed);		
	}

