var timerID = null
 
var agt = navigator.userAgent.toLowerCase();
 
function checkMozilla( elementName )
{
 
	if ( agt.indexOf('mozilla') != -1 && agt.indexOf('firefox') != -1 && agt.indexOf('mac') != -1 )
	{
	
		document.getElementById( elementName ).style.overflow = 'hidden';
		
	}
 
}
 
function submitForm( elementName )
{
 
	var element = document.getElementById( elementName );
	var validated = false
	
	if ( elementName == "personalForm" )
	{
	
		validated = verifyPersonal();
	
	}
	else if ( elementName == "inscriptionForm" )
	{
	
		validated = verifyInscription();
	
	}
	else if ( elementName == "certificateForm" )
	{
	
		validated = verifyCertificate();
	
	}
	
	else if ( elementName == "txnForm" )
	{
	
		validated = verifyPersonalTXN() && verifyCertificateTXN() && verifyInscriptionTXN();
	
	}
	
	if ( validated )
	{
	
		element.submit();
	
	}
	
}
 
function disableCheck( elementName )
{
 
	var element = document.getElementById( elementName );
	
	if ( element.checked )
	{
	
		element.checked = false;
		
	}
	
}
 
function setBrickType( brickID )
{
 
	var element = document.getElementById( "bricktypeHid" );
	
	element.value = brickID;
	
}
 
function setupEdit( brickID )
{
 
	changeClassOfTo( 'firstStep', 'info_not_clickable' );
	changeClassOfTo( 'secondStep', 'info_selected' );
	setBrickType( brickID );
	
	switch( brickID )
	{
		
		case 1:
			changeImageOfTo( 'brickpreview', '../jpg/brick_clay_preview.jpg' );
			changeImageTo( 'previewbrick', '../jpg/brick_clay_preview.jpg' );
			changeColorOfTo( 'previewinscription', '#000000' );
			break;
		case 2:
			changeImageOfTo( 'brickpreview', '../jpg/brick_red_clay_preview.jpg' );
			changeImageTo( 'previewbrick', '../jpg/brick_red_clay_preview.jpg' );
			changeColorOfTo( 'previewinscription', '#000000' );
			break;
		case 3:
			changeImageOfTo( 'brickpreview', '../jpg/brick_green_granite_preview.jpg' );
			changeImageTo( 'previewbrick', '../jpg/brick_green_granite_preview.jpg' );
			changeColorOfTo( 'previewinscription', '#E5DE73' );
			break;
		case 4:
			changeImageOfTo( 'brickpreview', '../jpg/brick_brown_granite_preview.jpg' );
			changeImageTo( 'previewbrick', '../jpg/brick_brown_granite_preview.jpg' );
			changeColorOfTo( 'previewinscription', '#E5DE73' );
			break;
	
	}
	
	document.inscriptionForm.inscriptionline1Field.select();
	document.inscriptionForm.inscriptionline1Field.focus();
 
}
 
function setCountryIndex( element )
{
 
	var hiddenElement = document.getElementById( "countryIndexHid" );
	
	hiddenElement.value = element.selectedIndex;
	
}
 
function setCountry( index )
{
 
	var countryPop = document.getElementById( 'certCountryPop' );
	countryPop.options[index].selected = true;
	
}
 
function defaultCertAddress( name, add1, add2, citytown, provstate, postcode, country )
{
 
	document.certificateForm.certificatenameField.value = name;
	document.certificateForm.certAdd1Field.value = add1;
	document.certificateForm.certAdd2Field.value = add2;
	document.certificateForm.certCityTownField.value = citytown;
	document.certificateForm.certProvStateField.value = provstate;
	document.certificateForm.certPostCodeField.value = postcode;
	setCountry( country );
	
}
 
function showBrickPreview( brickID, line1, line2, line3 )
{
 
	switch( brickID )
	{
		
		case 1:
			changeImageTo( 'previewbrick', '../jpg/brick_clay_preview.jpg' );
			changeColorOfTo( 'previewbinscription', '#000000' );
			break;
		case 2:
			changeImageTo( 'previewbrick', '../jpg/brick_red_clay_preview.jpg' );
			changeColorOfTo( 'previewbinscription', '#000000' );
			break;
		case 3:
			changeImageTo( 'previewbrick', '../jpg/brick_green_granite_preview.jpg' );
			changeColorOfTo( 'previewbinscription', '#E5DE73' );
			break;
		case 4:
			changeImageTo( 'previewbrick', '../jpg/brick_brown_granite_preview.jpg' );
			changeColorOfTo( 'previewbinscription', '#E5DE73' );
			break;
	
	}
	
	changeTextOfTo( 'previewbinscription', line1 + "<br>\r" + line2 + "<br>\r" + line3 + "\r" );
	showContent( 'brickPreviewPop' );
 
}
 
function showCertPreview( inscription )
{
 
	changeTextOfTo( 'previewcinscription', inscription );
	showContent( 'certPreviewPop' );
 
}
 
function InitializeTimer()
{
 
	StartTheTimer();
	
}
 
function StartTheTimer()
{
 
	timerID = self.setTimeout( "postToSafeShop()", 3000 );
 
}
 
function postToSafeShop()
{
 
	clearTimeout( timerID );
	document.frmPay.submit();
	
}
 
function isValid( fieldObj, errorMsg )
{
 
	if ( fieldObj.name == 'country' )
	{
		
		if( fieldObj.options[ fieldObj.selectedIndex ].text.length == 0 )
		{
		
			if ( errorMsg.length > 0 )
			{
				
				alert( errorMsg );
				
			}
		
			fieldObj.focus();
			return false;
			
		}
       
    }
    else
    {
    
    	if( fieldObj.value.length == 0 )
    	{
    	
    		if ( errorMsg.length > 0 )
    		{
    		
    			alert( errorMsg );
    		
    		}
    		
    		fieldObj.focus();
			return false;
			
		}
	}
	
	return true;
}
 
function verifyPersonal()
{
	var reEmail = /^.+\@.+\..+$/
	if ( !isValid( document.personalForm.fname, "Your First Name is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.personalForm.sname, "Your Surname is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.personalForm.email, "Your eMail address is a required field" ) )
	{
		return false;
	}
	else
	{
		if ( !reEmail.test( document.personalForm.email.value ) )
		{
			alert( "A valid e-mail is required" );
			return false;
		}
	}
	if ( !isValid( document.personalForm.contactno, "A contact number is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.personalForm.add1, "Your address is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.personalForm.citytown, "Your city is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.personalForm.provstate, "Your province is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.personalForm.postcode, "Your postal code is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.personalForm.country, "A country selection is a required field" ) )
	{
		return false;
	}
	return true;
}
 
function verifyPersonalTXN()
{
	var reEmail = /^.+\@.+\..+$/
	if ( !isValid( document.txnForm.fname, "Your First Name is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.txnForm.sname, "Your Surname is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.txnForm.email, "Your eMail address is a required field" ) )
	{
		return false;
	}
	else
	{
		if ( !reEmail.test( document.txnForm.email.value ) )
		{
			alert( "A valid e-mail is required" );
			return false;
		}
	}
	if ( !isValid( document.txnForm.contactno, "A contact number is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.txnForm.add1, "Your address is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.txnForm.citytown, "Your city is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.txnForm.provstate, "Your province is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.txnForm.postcode, "Your postal code is a required field" ) )
	{
		return false;
	}
	if ( !isValid( document.txnForm.country, "A country selection is a required field" ) )
	{
		return false;
	}
	return true;
}
 
function isValidInscription( BrickLineObj ) {
 
/*
	VALIDATE the Brick Lines
	OFFICIAL BRICK ENGRAVING INSCRIPTIONS
	Capital letters (A-Z)
	Numerals (0-9)
	Roman numerals (III, V, X, etc.)
	Ampersand (&)
	Period (.)
	Comma (,)  
	
	Apostrophe (')
	Dash or hypen (-)
	Plus sign (+)
	Forward slash (/)
	Exclamation mark (!)
*/
	var testPattern = /^[A-Za-z0-9\&\.\,\'\-\+\/\!\s]+$/;
	
	tester = testPattern;
	
	if( !tester.test( BrickLineObj.value ) ) {
 
		alert( 'Invalid Inscription characters.  Please click the \'important inscription information\' link to find out more.' );
		BrickLineObj.focus();
		return false;
		
	}
	
	return true;
	
}
 

function verifyInscription()
{
        if ( !isValid( document.inscriptionForm.inscriptionline1, "You must enter text for the first inscription line" ) )
        {
                return false;
        }
        else
        {
                if ( !isValidInscription( document.inscriptionForm.inscriptionline1 ) )
                {
                        return false;
                }
        }
       
        if ( document.inscriptionForm.inscriptionline2.value.length > 0 )
        {
                if ( !isValidInscription( document.inscriptionForm.inscriptionline2 ) )
                {
                        return false;
                }
        }
       
        if ( !isValid( document.inscriptionForm.inscriptionline3, "You must enter text or your country for the last inscription line" ) )
        {
                return false;
        }
        else
        {
                if ( !isValidInscription( document.inscriptionForm.inscriptionline3 ) )
                {
                        return false;
                }
        }
       
        return true;
}
 
function verifyInscriptionTXN()
{
	if ( !isValid( document.txnForm.inscriptionline1, "You must enter text for the first inscription line" ) )
	{
		return false;
	}
	else
	{
		if ( !isValidInscription( document.txnForm.inscriptionline1 ) )
		{
			return false;
		}
	}
	
	if ( document.txnForm.inscriptionline2.value.length > 0 )
	{
		if ( !isValidInscription( document.txnForm.inscriptionline2 ) )
		{
			return false;
		}
	}
	
	if ( !isValid( document.txnForm.inscriptionline3, "You must enter text or your country for the last inscription line" ) )
	{
		return false;
	}
	else
	{
		if ( !isValidInscription( document.txnForm.inscriptionline3 ) )
		{
			return false;
		}
	}
	
	return true;
}


function verifyCertificate()
{
        if ( !isValid( document.certificateForm.certificatename, "A recipients name is a required field" ) )        {                return false;        }        if ( !isValid( document.certificateForm.add1, "An address is a required field" ) )        {
                return false;
        }
        if ( !isValid( document.certificateForm.citytown, "A city is a required field" ) )
        {
                return false;
        }
        if ( !isValid( document.certificateForm.provstate, "A province is a required field" ) )
        {
                return false;
        }
        if ( !isValid( document.certificateForm.postcode, "A postal code is a required field" ) )
        {
                return false;
        }
        if ( !isValid( document.certificateForm.country, "A country selection is a required field" ) )
        {
                return false;
        }
        if ( !isValid( document.certificateForm.certins, "A message to appear on the certificate is a required field" ) )
        {
                return false;
        }
        return true;
}
 


function verifyCertificateX()
{
        if ( !isValid( document.certificateForm.certins, "A message to appear on the certificate is a required field" ) )
	{
		return false;
	}
	return true;
}

function verifyCertificateTXN()
{
	if ( !isValid( document.txnForm.certins, "A message to appear on the certificate is a required field" ) )
	{
		return false;
	}
	return true;
}
