﻿var imagePath = '/gfx/';
var gifExtension = '.gif';
var onButton = 'buton_';
var offButton = 'butoff_';
var playButton = new Image;
var pauseButton = new Image;

//used to return on or off button images
function getButtonArray( buttonPrefix )
{
	var buttons = new Array( 13 );

	for( var j=0; j < 10; j++ )
	{
	   buttons[ j ] = new Image;
	   
	   buttons[ j ].src = imagePath + buttonPrefix + j + gifExtension;
	}
	
	return buttons;
}

function getSlideArray( numSlides )
{
	var slide = new Array( numSlides );
	
	for( var i=0; i < numSlides; i++ )
	{
	   slide[ i ] = new Array( 4 );
	}
	
	for( var a=0; a < numSlides; a++ )
	{
		for( var b=0; b < numSlides; b++ )
		{
	   		slide[ a ][ 0 ] = new Image;
	   	}
	}
	
	return slide;
} 


var currentlyOn = 0;
var onButtons = getButtonArray( onButton );
var offButtons = getButtonArray( offButton );
playButton.src = imagePath + 'but_play_off.gif';
pauseButton.src = imagePath + 'but_pause_off.gif';

function turnOff( slideId )
{
	//set that button to the "off" image
	document.getElementById( "slide" + slideId ).src = offButtons[ slideId ].src;
}

function turnOn( slideId )
{
	//set that button to the "on" image
	document.getElementById( "slide" + slideId ).src = onButtons[ slideId ].src;
	
	//set value of currentltOn to the "on" button
	currentlyOn = slideId;
}

function setSlideAttributes( slideImage, headline, summary, link )
{
	//set the values of the passed slide attributes
	if( document.getElementById( "slideImage" ) )
	{
		document.getElementById( "slideImage" ).src = slideImage.src;
	}
	
	if( document.getElementById( "slideHeadline" ) )
	{
		document.getElementById( "slideHeadline" ).innerHTML = headline;
	}
	
	if( document.getElementById( "slideSummary" ) )
	{
		document.getElementById( "slideSummary" ).innerHTML = summary;
	}
	
	if( document.getElementById( "slideLink" ) )
	{
		document.getElementById( "slideLink" ).href = link;
	}
	
	if( document.getElementById( "slideLink2" ) )
	{
		document.getElementById( "slideLink2" ).href = link;
	}
}

function toggleSlideButton( callingSlideId, slideArray, slideId )
{
	//turn off the currently on button
	turnOff( currentlyOn );
	
	//turn on the calling button
	turnOn( callingSlideId );

	//set the values of the passed slide attributes
	setSlideAttributes( slideArray[ slideId ][ 0 ], slideArray[ slideId ][ 1 ], slideArray[ slideId ][ 2 ], slideArray[ slideId ][ 3 ] );
}

function toggleNextButton( numSlides, slideArray, imgArr )
{
	if( currentlyOn < ( numSlides - 1 ) )
	{
		//turn off the currently on button
		turnOff( currentlyOn );
		
		//set to next slide
		currentlyOn++;
		
		turnOn( currentlyOn );
		
		//set the values of the passed slide attributes
		setSlideAttributes( slideArray[ currentlyOn ][ 0 ], slideArray[ currentlyOn ][ 1 ], slideArray[ currentlyOn ][ 2 ], imgArr[ currentlyOn ] );
	}
}


var timeOut;

function autoRotate( numSlides, slideArray )
{	
	temp1 = numSlides;
	temp2 = slideArray;
	
	if( currentlyOn < ( temp1 - 1 ) )
	{
		turnOff( currentlyOn );
	
		currentlyOn++;
		
		turnOn( currentlyOn );
		
		setSlideAttributes( temp2[ currentlyOn ][ 0 ], temp2[ currentlyOn ][ 1 ], temp2[ currentlyOn ][ 2 ], temp2[ currentlyOn ][ 3 ] );
	}
	else
	{
		turnOff( currentlyOn );
		turnOn( 0 );
		
		setSlideAttributes( temp2[ currentlyOn ][ 0 ], temp2[ currentlyOn ][ 1 ], temp2[ currentlyOn ][ 2 ], temp2[ currentlyOn ][ 3 ] );
	}
	
	timeOut = setTimeout( "autoRotate( temp1, temp2 )", 5000 );
}

function stopTimer()
{
	clearTimeout( timeOut );
}


var play = true;

function playSlideShow( numSlides, slideArray )
{
	if( play == true )
	{
		autoRotate( numSlides, slideArray );
		
		play = false;
		
		document.getElementById( 'play' ).src = pauseButton.src;
	}
	else
	{
		stopTimer();
		
		play = true;
		
		document.getElementById( 'play' ).src = playButton.src;
	}
}

////////////////////////////////////////////////////////////////////////////////////////

function changeGridTiming( numProgs, selCountry )
{
	// get time difference relative to GMT
	var disp = document.getElementById( 'locSelect' ).value;
	
	
	if( disp != "" )
	{
		// loop through timings and change based on selection
		for( var x=0; x < numProgs; x++ )
		{
			var sumRes = Number( document.getElementById( 'hiddenCountry' + x ).value ) + Number( disp );
			
			if( sumRes < 0 )
			{
				sumRes = 24 + sumRes;
			}
			else if( sumRes > 23 )
			{
				sumRes = sumRes - 24;
			}
		
			
			document.getElementById( 'country' + x ).innerHTML = selCountry;
			
			document.getElementById( 'timing' + x ).innerHTML = sumRes;
		}
	}
}

///////////////////////////////////////////////////////////////////////////////////////

function displayMessage( fieldElement, messageText )
{
	if( messageText == "" )
	{
		document.getElementById( fieldElement.id + 'Msg' ).innerHTML =  '' ;
	}
	else
	{
		document.getElementById( fieldElement.id + 'Msg' ).innerHTML =  messageText + fieldElement.name;
	}
}

function isEmpty( field )
{
	var empty = false;
	var inputField = field;
	
	displayMessage( inputField, "" );

	if( inputField.value == null || inputField.value == "" )
	{
		empty = true;
		
		displayMessage( inputField, "ادخل " );
	}

	return empty;
}
	
function isNotNum( field )
{
	var notNum = false;
	var inputField = field;
	
	displayMessage( inputField, "" );
	
	if( isNaN( inputField.value ) )
	{
		notNum = true;
		
		displayMessage( inputField, "ادخل " );
	}
	
	return notNum;
}
	
function isNotImageFile( field )
{
	var notImageFile = true;
	var inputField = field;
	
	displayMessage( inputField, "" );
	
	var file = inputField.value;
	var extension = file.substr( file.length - 4 );
	
	if( extension == '.jpg' || extension == '.png' || extension == '.gif' || extension == '.bmp' )
	{
		notImageFile = false;
	}
	else
	{
		notImageFile = true;
		
		displayMessage( inputField, "ادخل " );
	}
	
	return notImageFile;
}
	
function isNotEmail( field )
{
	var notEmail = false;
	var inputField = field;
	
	displayMessage( inputField, "" );
	
	var email = inputField.value;
	
	if( email.indexOf( '@' ) == -1 )
	{
		notEmail = true;
		
		displayMessage( inputField, "ادخل " );
	}
	
	return notEmail;
}
	
function passFields( fieldStatus, passVar )
{
	if( fieldStatus )
	{
		passVar = false;
	}
	
	return passVar;
}
	
function checkFields( formObject )
{
	var pass = true;
	
	var formElements = formObject.elements;
	
	for( var i=0; i<formElements.length; i++ )
	{
		if( formElements[ i ].tagName == "INPUT" )
		{
			if( formElements[ i ].getAttribute( 'type' ) != "button" && formElements[ i ].getAttribute( 'type' ) != "submit" && formElements[ i ].getAttribute( 'type' ) != "hidden" && formElements[ i ].getAttribute( 'type' ) != "reset" && formElements[ i ].getAttribute( 'type' ) != "checkbox" && formElements[ i ].getAttribute( 'type' ) != "radio" && formElements[ i ].getAttribute( 'type' ) != "image" )
			{
				if( formElements[ i ].id.indexOf( "Age" ) != -1 || formElements[ i ].id.indexOf( "Phone" ) != -1 )
				{
					var elementVal = isEmpty( formElements[ i ] ) || isNotNum( formElements[ i ] );
					pass = passFields( elementVal, pass );
					
					//alert( "age 0R phone: " + pass );
				}
				else if( formElements[ i ].id.indexOf( "Email" ) != -1 )
				{
					var emailVal = isEmpty( formElements[ i ] ) || isNotEmail( formElements[ i ] );
					pass = passFields( emailVal, pass );
					
					//alert( "email: " + pass );
				}
				else if( formElements[ i ].id.indexOf( "ImageFile" ) != -1 )
				{
					var imageFileVal = isEmpty( formElements[ i ] ) || isNotImageFile( formElements[ i ] );
					//var imageFileVal = isEmpty( formElements[ i ] );
					pass = passFields( imageFileVal, pass );
					
					//alert( "file: " + pass );
				}
				else
				{
					pass = passFields( isEmpty( formElements[ i ] ), pass );
					
					//alert( "else: " + pass );
				}
			}
		}
		else if( formElements[ i ].tagName == "TEXTAREA" )
		{
			pass = passFields( isEmpty( formElements[ i ] ), pass );
			
			//alert( "textarea: " + pass );
		}
		
	}
	
	if( pass )
	{
		formObject.submit();
	}
}