var bDone = false;
var d = document;
var oElm = document.getElementById;
var bDhtml = ( oElm ) ? true : false;
var bInfoRead = false;

function openPopUp ( sUrl )
{
	if ( sUrl == null || sUrl == "" )
		return;
	window.open(sUrl, 'MECatering', 'toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=0, resizable=0, copyhistory=1, width=360, height=550');	
}

function openPopUpWithScroll ( sUrl )
{
	if ( sUrl == null || sUrl == "" )
		return;
	window.open(sUrl, 'MECatering', 'toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=1, resizable=0, copyhistory=1, width=360, height=550');	
}

function openConditions ( sUrl )
{
	if ( sUrl == null || sUrl == "" )
		return;
	window.open(sUrl, 'MECatering', 'toolbar=0, location=0, directories=0, status=0, menubar=0, scrollbars=1, resizable=0, copyhistory=1, width=360, height=500');	
}

function OrderInfoClick ( sLink )
{
	bInfoRead = true;
	window.open(sLink);
}

function validate ( fObj )
{
	if ( !bInfoRead )
	{
		if ( confirm("Du har inte läst igenom beställningsvillkoren,\nvill du läsa dem innan du beställer?") )
			return false;
	}
	
	resetErrors( 12 );
	var sErrorMessage = "Följande fält är obligatoriska:\n";
	if ( fObj.sDate.value == "" )
	{
		sErrorMessage += "- Datum\n";
		displayError(0);
	}
	if ( fObj.sTime.value == "" )
	{
		sErrorMessage += "- Tid\n";
		displayError(1);
	}
	if ( fObj.sClient.value == "" )
	{	
		sErrorMessage += "- Beställare\n";
		displayError(2);
	}		
	if ( fObj.sInvoice.value == "" )
	{
		sErrorMessage += "- Fakturaadress\n";
		displayError(3);
	}
	if ( fObj.sInvoiceZip.value == "" )
	{
		sErrorMessage += "- Postnummer, Ort\n";
		displayError(4);
	}
	if ( !isEmail(fObj.sEmail.value) )
	{
		sErrorMessage += "- E-post\n";
		displayError(5);
	}
	if ( !isPhone(fObj.sInvoicePhone.value) )
	{
		sErrorMessage += "- Telefon\n";
		displayError(6);
	}
	if ( fObj.sAddress.value == "" )
	{
		sErrorMessage += "- Lokaladress\n";
		displayError(7);
	}
	if ( fObj.sZipArea.value == "" )
	{
		sErrorMessage += "- Postnummer, Ort\n";
		displayError(8);
	}
	if ( fObj.sContactPerson.value == "" )
	{
		sErrorMessage += "- Lokalansvarig\n";
		displayError(9);
	}
	if ( !isPhone(fObj.sPhone.value) )
	{
		sErrorMessage += "- Telefon\n";
		displayError(10);
	}
	if ( fObj.sNumberOfPeople.value == "" )
	{
		sErrorMessage += "- Antal kuvert\n";
		displayError(11);
	}
	if ( sErrorMessage != "Följande fält är obligatoriska:\n" )
	{
		alert(sErrorMessage);
		return false;
	}
	return true;
}

function isPhone ( sValue )
{
	if ( sValue.length < 5 ) return false;
	for ( i = 0; i < sValue.length; i++ )
	{
		var sCharacter = sValue.charAt( i );
		if ( ( sCharacter < "0" && sCharacter > "9" ) && ( sCharacter != "+" && sCharacter != "(" && sCharacter != ")" && sCharacter != "-" ) )
		{
			return false;
		}
	}
	return true;
}

function isNumeric ( sValue )
{
	if ( sValue.length < 1 ) return false;
	for ( i = 0; i < sValue.length; i++ )
	{
		var sCharacter = sValue.charAt( i );
		if ( ( sCharacter < "0" && sCharacter > "9" ) )
		{
			return false;
		}
	}
	return true;
}

function isEmail ( sEmail )
{
	var at = sEmail.indexOf("@");
	var lastAt = sEmail.lastIndexOf("@");
	var dot = sEmail.lastIndexOf(".");
	var suffix = sEmail.length - dot;
	if((at < 1) || (at != lastAt) || (dot < at) || (suffix > 4) || (suffix == 1))
	{
		return false;
	}
	return true;
}

function isDate ( sDate )
{
	if ( sDate.length != 10 )
	{
		return false;
	}
	for ( i = 0; i < sDate.length; i++ )
	{
		var c = sDate.charAt( i );
		if ( i < 4 || ( i > 4 && i < 7 ) || ( i > 7 && i < 10 ) )
		{
			if ( ( c < "0" && c > "9" ) )
			{
				return false;
			}
		}
		else if ( i == 4 || i == 7 )
		{
			if ( c != "-" )
			{
				return false;
			}
		}
	}
	var sDateYear = sDate.substring( 0, 4 );
	var sDateMonth = sDate.substring( 5, 7 );
	var sDateDay = sDate.substring( 8, 10 );
	var oDate = new Date();
	var iCurrentYear = oDate.getYear();
	var iCurrentMonth = oDate.getMonth() + 1;
	var iCurrentDay = oDate.getDate();
	if ( ( parseInt( sDateYear ) < iCurrentYear ) || ( parseInt( sDateMonth ) < 1 || parseInt( sDateMonth ) > 12 ) || ( parseInt( sDateDay ) < 1 || parseInt( sDateDay ) > 31 ) )
	{
		return false;
	}

	if ( !isNotPassedDate ( sDateYear, sDateMonth, sDateDay, iCurrentYear, iCurrentMonth, iCurrentDay ) )
	{
		return false;
	}
	return true;
}

function isNotPassedDate ( sDateYear, sDateMonth, sDateDay, iCurrentYear, iCurrentMonth, iCurrentDay )
{
	if ( ( parseInt( sDateYear ) == iCurrentYear ) && ( parseInt( sDateMonth ) < iCurrentMonth ) )
	{
		return false;
	}
	if ( ( parseInt( sDateYear ) == iCurrentYear ) && ( parseInt( sDateMonth ) == iCurrentMonth ) && ( parseInt( sDateDay ) < iCurrentDay ) )
	{
		return false;
	}
	return true;
}

function resetErrors ( iNumberOfErrors )
{
	for ( i = 0; i < iNumberOfErrors; i++ )
	{
		oElm("Error" + i).style.color = "#000000";
	}
}

function displayError ( iError )
{
	oElm('Error' + iError).style.color = "#FF0000";
}
