
var strSiteImgDirFlagImgID = "imgLogo4g", // used to init strSiteImgDir
    strSiteImgDir, // init on doc load - directory in which site images are held
    arrImgsPreload;






// arrImgsPreload is used by the 'preloadImgs' function to preload images
arrImgsPreload = [	];




function docLoad()
{
    var temp = findObj(strSiteImgDirFlagImgID).src;
    strSiteImgDir = temp.substring( 0, temp.lastIndexOf("/") + 1 );

    preloadImgs();    
}




function preloadImgs()
{
    var imgTemp;
    for (var i = 0; i < arrImgsPreload.length; i++)
    {
        imgTemp = new Image();
        imgTemp.src = strSiteImgDir + arrImgsPreload[i];
        arrImgsPreload[i] = imgTemp;
    }
}



function findObj(strNameID)
{
	var objTemp;

	if (document.getElementById)
		objTemp = document.getElementById(strNameID);
	else if (document.all)
		objTemp = document.all[strNameID]
	else if (document.layers)
		objTemp = document.layers[strNameID]

	if (!objTemp) objTemp = eval("document." + strNameID);

	return objTemp;
}



function validateSearch(frmObj)
{
	var strSearchKeywords = frmObj.txtSearchKeywords.value,
		isValid = (strSearchKeywords != "");

	if (!isValid)
		alert("Please enter one or more keywords");

	return isValid;
}


function isValidEmailAddress(strEmail)
{
	var intIndexOfAtChar = strEmail.indexOf("@"),
		intNumOfAtChars = strEmail.length - strEmail.replace(/@/, "").length,
		intIndexOfDotChar = strEmail.lastIndexOf(".");

	return !( (intIndexOfAtChar < 1) || (intNumOfAtChars > 1) || (intIndexOfAtChar + 1 >= intIndexOfDotChar) )
}


function validateLogin(frmObj)
{
	var strUsername = frmObj.txtUsername.value,
		strPassword = frmObj.pwdPassword.value,
		strPasswordHash = MD5(strPassword),
		isValid = (isValidEmailAddress(strUsername) && strPassword != "");

	if (!isValid)
	{
		alert("Please enter both your username and password");
	}
	else
	{
		frmObj.pwdPassword.value = "";
		frmObj.hdnPasswordHash.value = strPasswordHash;
	}

	return isValid;
}



function validateAccount(frmObj)
{
	var strErrorMsg = "",
		strEmail = (frmObj.txtEmail ? frmObj.txtEmail.value : null),
		strPassword = (frmObj.pwdPassword ? frmObj.pwdPassword.value : null),
		strPassword2 = (frmObj.pwdPassword2 ? frmObj.pwdPassword2.value : null),
//		strPasswordHash = (strPassword ? MD5(strPassword) : null),
//		strPasswordHash2 = (strPassword2 ? MD5(strPassword2) : null),
		strTitle = frmObj.txtTitle.value,
		strFirstName = frmObj.txtFirstName.value,
		strSurname = frmObj.txtSurname.value,
		isValidEmail = ( strEmail == null || isValidEmailAddress(strEmail) ),
		isValidPassword = (strPassword == strPassword2) && ( (strPassword == null) || (strPassword != "" && strPassword != null && strPassword.length >= 6 && strPassword.length <= 10) ),
		isValidTitle = (strTitle != ""),
		isValidFirstName = (strFirstName != ""),
		isValidSurname = (strSurname != ""),
		isValid = (isValidEmail && isValidPassword && isValidTitle && isValidFirstName && isValidSurname);

	if (!isValid)
	{
		strErrorMsg = "One or more entries is/are invalid";
		if (!isValidEmail) strErrorMsg += "\n    - Invalid email address";
		if (!isValidPassword) strErrorMsg += "\n    - Invalid password and/or password confirmation";
		if (!isValidTitle) strErrorMsg += "\n    - Invalid title";
		if (!isValidFirstName) strErrorMsg += "\n    - Invalid first name";
		if (!isValidSurname) strErrorMsg += "\n    - Invalid surname";
		alert(strErrorMsg);
	}
	else
	{
//		if (frmObj.pwdPassword) frmObj.pwdPassword.value = "";
//		if (frmObj.pwdPassword2) frmObj.pwdPassword2.value = "";
//		if (frmObj.hdnPasswordHash) frmObj.hdnPasswordHash.value = strPasswordHash;
//		if (frmObj.hdnPasswordHash2) frmObj.hdnPasswordHash2.value = strPasswordHash2;
	}

	return isValid;
}


function validateChangePassword(frmObj)
{
	var strErrorMsg = "",
		strPasswordOld = frmObj.pwdPasswordOld.value,
		strPasswordNew = frmObj.pwdPasswordNew.value,
		strPasswordNew2 = frmObj.pwdPasswordNew2.value,
		strPasswordOldHash = MD5(strPasswordOld),
		strPasswordNewHash = MD5(strPasswordNew),
		strPasswordNewHash2 = MD5(strPasswordNew2),
		isValidPasswordOld = strPasswordOld != "" && strPasswordOld.length >= 6 && strPasswordOld.length <= 10,
		isValidPasswordNew = strPasswordNew != "" && strPasswordNew.length >= 6 && strPasswordNew.length <= 10 && strPasswordNew == strPasswordNew2,
		isValid = isValidPasswordOld && isValidPasswordNew;

	if (!isValid)
	{
		strErrorMsg = "One or more entries is/are invalid";
		if (!isValidPasswordOld) strErrorMsg += "\n    - Old password is invalid";
		if (!isValidPasswordNew) strErrorMsg += "\n    - New password and new password confirmation do not match or are invalid";
		alert(strErrorMsg);
	}
	else
	{
		frmObj.pwdPasswordNew.value = "";
		frmObj.pwdPasswordNew2.value = "";
		frmObj.hdnPasswordNewHash.value = strPasswordNewHash;
		frmObj.hdnPasswordNewHash2.value = strPasswordNewHash2;
	}

	return isValid;
}


function validateCheckoutReverseBillingSms(frmObj)
{
	var isValid = (frmObj.txtActivationCode.value != "");

	if (!isValid)
		alert('Please enter your activation code');

	return isValid;
}


function validateCheckoutFinal(frmObj)
{
	var isValid = true;
	return isValid;
}


function validateCompetition(Form)
{
	
	var isValid=true;
	
	var Name=Form.txtName;
	var Email=Form.txtEmail;
	var Answer=Form.txtCompetitionAnswer;
	
	isValid=(Name.value!="" && isValidEmailAddress(Email.value) && Answer.value!="");
		
	if(!isValid){
		alert("Please complete all fields before continuing.\n\nNote: You must enter a valid email address");
		return false;
	}
	
	return true;
	
	var isValid, intCompetitionAnswer,
		strErrorMsg = "",
		intCompetitionId = frmObj.hdnCompetition.value,
		strEntrantName = frmObj.txtName.value,
		strEntrantEmail = frmObj.txtEmail.value,
		isValidCompetitionId = (intCompetitionId != ""),
		isValidEntrantName = (strEntrantName != ""),
		isValidEntrantEmail = isValidEmailAddress(strEntrantEmail);


	if (!frmObj.txtCompetitionAnswer)
	{
		for (var i = 0; i < frmObj.rdCompetitionAnswer.length; i++)
		{
			if (frmObj.rdCompetitionAnswer[i].checked)
			{
				intCompetitionAnswer = frmObj.rdCompetitionAnswer[i].value;
				break;
			}
		}
	}

	isValidCompetitionAnswer = (frmObj.txtCompetitionAnswer && frmObj.txtCompetitionAnswer.value != "") || (intCompetitionAnswer != null && intCompetitionAnswer != "")
	
	isValid = (isValidCompetitionId && isValidEntrantName && isValidEntrantEmail && isValidCompetitionAnswer);

	if (!isValid)
	{
		strErrorMsg = "One or more entries is/are invalid";
		if (!isValidCompetitionId) strErrorMsg += "\n    - This competition cannot be identified. Please contact the site administrator <admin@4gmusic.net>";
		if (!isValidCompetitionAnswer) strErrorMsg += "\n    - Please select or enter an answer";
		if (!isValidEntrantName) strErrorMsg += "\n    - Please enter your name";
		if (!isValidEntrantEmail) strErrorMsg += "\n    - Please enter your email address";
		alert(strErrorMsg);
	}

	return isValid;
}



function validateDeliveryAddressOption(frmObj)
{
	var isValid = false,
		strErrorMsg = "",
		rdDeliveryAddOption = frmObj.deliveryOption;

	for (var i = 0; !isValid && i < rdDeliveryAddOption.length; i++)
	{
		isValid = (rdDeliveryAddOption[i].checked)
	}

	if (!isValid)
	{
		strErrorMsg = "One or more entries is/are invalid\n    - Please select a delivery address option";
		alert(strErrorMsg);
	}

	return isValid;
}


function validateDeliveryAddressEntry(frmObj)
{
	var strErrorMsg = "",
		strHouseName = frmObj.txtHouseName.value,
		strHouseFlatNumber = frmObj.txtHouseFlatNumber.value,
		strStreet = frmObj.txtStreet.value,
		strDistrict = frmObj.txtDistrict.value,
		strTownCity = frmObj.txtTownCity.value,
		strCounty = frmObj.txtCounty.value,
		strPostcode = frmObj.txtPostcode.value,
		intCountry = frmObj.cmbCountry.options[frmObj.cmbCountry.selectedIndex].value,
		isValidAddress = ( (strHouseName != "") || (strHouseFlatNumber != "") || (strStreet != "") ),
		isValidDistrict = (strDistrict != ""),
		isValidTownCity = (strTownCity != ""),
		isValidCounty = (strCounty != ""),
		isValidPostZipcode = (strPostcode != ""),
		isValidCountry = (intCountry != ""),
		isValid = (isValidAddress && (isValidDistrict || isValidTownCity || isValidCounty) && isValidPostZipcode && isValidCountry);

	if (!isValid)
	{
		strErrorMsg = "One or more entries is/are invalid";
		if (!isValidAddress) strErrorMsg += "\n    - Fill in the 'Address' fields";
		if (!(isValidDistrict || isValidTownCity || isValidCounty)) strErrorMsg += "\n    - Fill in your district, town/city and/or county";
		if (!isValidPostZipcode) strErrorMsg += "\n    - fill in your post/zip code";
		if (!isValidCountry) strErrorMsg += "\n    - select your country from the list";
		alert(strErrorMsg);
	}

	return isValid;
}


function validateDeliveryAddressSelected(frmObj)
{
	var isValid = false,
		strErrorMsg = "",
		rdAddressId = frmObj.rdAddressId;

	for (var i = 0; !isValid && i < rdAddressId.length; i++)
	{
		isValid = (rdAddressId[i].checked)
	}

	if (!isValid)
	{
		strErrorMsg = "One or more entries is/are invalid\n    - Please select a delivery address from the list";
		alert(strErrorMsg);
	}

	return isValid;
}


function selectAllOptions(selObj_or_cmbObj)
{
	for (var i = 0; i < selObj_or_cmbObj.options.length; i++)
	{
		selObj_or_cmbObj.options[i].selected = true;
	}
}


function unSelectAllOptions(selObj_or_cmbObj)
{
	for (var i = 0; i < selObj_or_cmbObj.options.length; i++)
	{
		selObj_or_cmbObj.options[i].selected = false;
	}
}
