// ----------------------------------------------------------------------
function form_get_value(form_name,field_name) {
	//Function determines if a form field contains a value. Applicable to all text related fields.
	if (eval("document."+form_name+"."+field_name+".value")=="")
		return(false);
	else
		return(true);
}

// ----------------------------------------------------------------------
function form_return_value(form_name,field_name) {
	//function returns the value of a text/password/textarea field
	return(eval("document."+form_name+"."+field_name+".value"));
}

// ----------------------------------------------------------------------
function form_check_radio_checkbox(form_name,field_name,field_counter) {
	//FUNCTION CHECKS IF AT LEAST ONE OPTION HAS BEEN SELECTED FROM A RADIO BUTTON LISTING//
	var checked_count=0;

	if (field_counter==1) {
		if (eval("document."+form_name+"."+field_name+".checked"))
			checked_count++;
	}
	else{
		radio_ceiling=eval("document."+form_name+"."+field_name+".length");
		for (x=0;x<radio_ceiling;x++) {
			if (eval("document."+form_name+"."+field_name+"["+x+"].checked"))
				checked_count++;
		}
	}
	
	if (checked_count==0)
		return(false);
	else
		return(true);
}

// ----------------------------------------------------------------------
function get_radio_checkbox(form_name,field_name,field_counter) {
	//FUNCTION CHECKS IF AT LEAST ONE OPTION HAS BEEN SELECTED FROM A RADIO BUTTON LISTING//
	var checked_count=0;temp_value="";

	if (field_counter==1) 
	{
		if (eval(form_name+"."+field_name+".checked"))
			temp_value=eval(form_name+"."+field_name+".value");
	}
	else
	{
		radio_ceiling=eval(form_name+"."+field_name+".length");
		for (x=0;x<radio_ceiling;x++) 
		{
			if (eval(form_name+"."+field_name+"["+x+"].checked")) 
			{
				if (!temp_value=="")
					temp_value=temp_value+","

				temp_value=temp_value+eval(form_name+"."+field_name+"["+x+"].value");
			}
		}
	}
	
	return(temp_value);
}

// ----------------------------------------------------------------------
function form_get_selection(form_name,field_name) {
	//Function returns selected value from selection list.
	return(eval("document."+form_name+"."+field_name+"[document."+form_name+"."+field_name+".selectedIndex].value"));
}

// ----------------------------------------------------------------------
function form_check_selection(form_name,field_name) {
	//CHECK IF AT LEAST ONE OPTION IS SELECTED FROM SELECTION LISTING//
	var selection_ceiling=eval("document."+form_name+"."+field_name+".length");
	var checked_count=0;

	for (x=0;x<selection_ceiling;x++) {
		if (eval("document."+form_name+"."+field_name+"["+x+"].selected"))
			checked_count++;
	}

	if (checked_count==0)
		return(false);
	else
		return(true);
}

// ----------------------------------------------------------------------
function form_check_date(form_name,field_prefix,allow_default,default_value) {
	var check_day=eval("document."+form_name+"."+field_prefix+"D[document."+form_name+"."+field_prefix+"D.selectedIndex].value");
	var check_month=eval("document."+form_name+"."+field_prefix+"M[document."+form_name+"."+field_prefix+"M.selectedIndex].value");
	var check_year=eval("document."+form_name+"."+field_prefix+"Y[document."+form_name+"."+field_prefix+"Y.selectedIndex].value");

	if (((check_day==default_value) && (check_month==default_value)  && (check_year==default_value) && (allow_default==1)) || ((check_day!=default_value) && (check_month!=default_value)  && (check_year!=default_value)))
			return(true);
	else
			return(false);
}

// ----------------------------------------------------------------------
function form_check_numerical(form_name,field_name) {
	//check for numerical values in form value.
	var numstr="0123456789";
	var counter=0;
	upper_limit=eval("document."+form_name+"."+field_name+".value.length");
	for (var x=0;x<upper_limit;x++) {
			thisChar=eval("document."+form_name+"."+field_name+".value.substring(x,x+1)");
			if (numstr.indexOf(thisChar)==-1)
			counter++; }
	return(counter);
}

// ----------------------------------------------------------------------
function form_check_numerical_space(form_name,field_name) {
	//check for numerical values in form value.
	var numstr="0123456789 ";
	var counter=0;
	upper_limit=eval("document."+form_name+"."+field_name+".value.length");
	for (var x=0;x<upper_limit;x++) {
			thisChar=eval("document."+form_name+"."+field_name+".value.substring(x,x+1)");
			if (numstr.indexOf(thisChar)==-1)
			counter++; }
	return(counter);
}

// ----------------------------------------------------------------------
function form_check_currency(form_name,field_name) {
	//check for numerical values in form value.
	var numstr="0123456789.";
	var counter=0;
	upper_limit=eval("document."+form_name+"."+field_name+".value.length");
	for (var x=0;x<upper_limit;x++) {
			thisChar=eval("document."+form_name+"."+field_name+".value.substring(x,x+1)");
			if (numstr.indexOf(thisChar)==-1)
			counter++; }
	return(counter);
}


// ----------------------------------------------------------------------
function form_check_alphanumerical(form_name,field_name) {
	//check for numerical values in form value.
	var numstr="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var counter=0;
	upper_limit=eval("document."+form_name+"."+field_name+".value.length");
	for (var x=0;x<upper_limit;x++) {
			thisChar=eval("document."+form_name+"."+field_name+".value.substring(x,x+1)");
			if (numstr.indexOf(thisChar)==-1)
			counter++; }
	return(counter);
}

// ----------------------------------------------------------------------
function form_check_email(form_name,field_name) {
	var current_value=eval("document."+form_name+"."+field_name+".value");
	if ((current_value.indexOf(".")==-1) || (current_value.indexOf("@")==-1))
		return(false);
	else
		return(true);
}

// ----------------------------------------------------------------------
function validateEmail(email) {
	invalidChars = " :,;/"
	
	for (i=0; i<invalidChars.length; i++) 
	{
		badChar = invalidChars.charAt(i)
		if (email.indexOf(badChar,0) > -1) 
		{
			return false
		}
	}

	atPos = email.indexOf("@",1)  // there must be one "@" symbol
	if (atPos == -1) 
	{
		return false
	}
	if (email.indexOf("@",atPos+1) != -1) 
	{
		return false
	}
	
	periodPos = email.indexOf(".",atPos)
	if (periodPos == -1) 
	{ 
		return false
	}
	
	if (periodPos+3 > email.length) 
	{ 
		return false
	}
	return true;
}

// ----------------------------------------------------------------------
function validateRadio(RadioName) {
	var voteCheck = -1;
	for (n=0; n < RadioName.length; n++) 
	{
		if (RadioName[n].checked) 
		{
			voteCheck = n;
		}
	}

	if (voteCheck == -1) 
	{
		return false;
	}

	return true;
}

// ----------------------------------------------------------------------
function SelCountryChange(objSelBox) {
	var StateRow = document.getElementById("StateRow");
	var blnStateCheck = document.getElementById("StateCheckFlag");
		
	if ( objSelBox.value == "Australia" )
	{
		StateRowAU.style.visibility = "visible";	// Hide the State div
		StateRowAU.style.display = "block";
		blnStateCheck.value = "1";				// Set the check flag
			
		StateRowOther.style.visibility = "hidden";	// Show the State div
		StateRowOther.style.display = "none";

		//SET POSTCODE LAYERS//
		UKPostcodeLayer.style.visibility = "hidden";
		document.getElementById("UKPostcodeLayerText").innerHTML= "";
		document.getElementById("SuburbAreaText").innerHTML = "Suburb";
	}
	else
	{
		StateRowOther.style.visibility = "visible";	// Show the State div
		StateRowOther.style.display = "block";
		blnStateCheck.value = "0";				// Unset the check flag
			
		StateRowAU.style.visibility = "hidden";	// Hide the State div
		StateRowAU.style.display = "none";
			
		//SET POSTCODE LAYERS//
		if ( objSelBox.value == "United Kingdom" ) 
		{
			UKPostcodeLayer.style.visibility = "visible";
			document.getElementById("SuburbAreaText").innerHTML = "Area";
			document.getElementById("UKPostcodeLayerText").innerHTML= "<br><b>Please enter the complete 2 part postcode in the fields above.</b>";
		}
		else 
		{
			UKPostcodeLayer.style.visibility = "hidden";
			document.getElementById("SuburbAreaText").innerHTML = "Suburb";
			document.getElementById("UKPostcodeLayerText").innerHTML= "";
		}
	}
}

// ----------------------------------------------------------------------
function PayPalCountryCheck(strCountry) {
	// FUNCTION CHECKS THAT COUNTRY IS NOT PART OF THE COUNTRIES BLOCKED BY PAYPAL //
	strCountry = strCountry.toLowerCase();
	
	var BlockCountry = false;
	var BlockedCountryArray = new Array('balkans','burma','cuba','iran','iraq','liberia','north korea','sudan','syria','zimbabwe')
	for (x=0;x<BlockedCountryArray.length;x++) 
	{
		if (strCountry == BlockedCountryArray[x])
			BlockCountry = true
	}
	
	return BlockCountry;
}

// ----------------------------------------------------------------------
function ClicktoCall(id){
	var w=370;
	var h=450;
	var leftPos=(screen.width)?(screen.width-w)/2:100;
	var topPos=(screen.height)?(screen.height-h)/2:100;
	var	settings='width=' + w + ',height=' + h + ',top=' + topPos + ',left=' + leftPos + ',location=no,directories=no,menubar=no,toolbar=no,status=no,scrollbars=no,resizable=no,dependent=no';
	var sUrl='http://www.nascomms.com/ccConnect/Dialer.aspx?clientId=' + id;
	var ccWindow=window.open(sUrl,'ClickCalling',settings);
	ccWindow.focus();
}

// ----------------------------------------------------------------------
function isNumber(inputVal) {
	if (inputVal == "") 
	{ 
		return false; 
	}
	
	oneDecimal = false
	inputStr = inputVal.toString()
	for (var i = 0; i < inputStr.length; i++) 
	{
		var oneChar = inputStr.charAt(i)
		if (i == 0 && oneChar == "-") 
		{
			continue
		}
		
		if (oneChar == "." && !oneDecimal) 
		{
			oneDecimal = true
			continue
		}
		
		if (oneChar < "0" || oneChar > "9") 
		{
			return false
		}
	}
	return true
}

// ----------------------------------------------------------------------
function CheckDate(DateD,DateM,DateY) {
	var ARNormalYear = new Array(31,28,31,30,31,30,31,31,30,31,30,31)
	var ARLeapYear = new Array(31,29,31,30,31,30,31,31,30,31,30,31)
	if (DateY%4 == 0) 
	{
		if(DateD > ARLeapYear[DateM-1]) 
			return false;
	}
	else 
	{
		if(DateD > ARNormalYear[DateM-1]) 
			return false;
	}
	return true;
}

// ----------------------------------------------------------------------
function dollarize(expr, decplaces) {
	var str = "" + Math.round (eval(expr) * Math.pow(10,decplaces))
	while (str.length <= decplaces) 
	{
		str = "0" + str
	}

	var decpoint = str.length - decplaces
	return str.substring(0,decpoint) + "." + str.substring(decpoint,str.length);
}

// ----------------------------------------------------------------------
function CheckProductQuantity(rowcount) {
	//get quantity and prices for selected product//
	var TotalQty = 0;
	
	TotalQty = eval("document.form1.Qty" + rowcount + ".value");
	if ((!isNumber(TotalQty)) || (TotalQty.indexOf(".")!=-1)) 
	{
		//QUANTITY IS NOT NUMERICAL - ALERT USER//
		alert("Quantities must be whole numerical values.");
			
		//Clear current Quantity value//
		eval("document.form1.Qty" + rowcount + ".value = 0");
		
		return false;
	}
	return true;
}

// ----------------------------------------------------------------------
function RemoveSpaces(fieldValue) {
	//remove spaces from supplied value and return updated details//
	var fieldValueNoSpaces=fieldValue;
	
	fieldValueNoSpaces = fieldValue.replace(/ /g,'');

	//alert(fieldValueNoSpaces);
	
	return fieldValueNoSpaces;
}

// ----------------------------------------------------------------------
function CheckCardNumber(form) {
	var tmpyear = "";
	var tmpmonth = "";
	var cardname = "";
	var card = "";
	var blnValid = true;

	if (form.CreditCardType.options[form.CreditCardType.selectedIndex].value == '') 
	{
		alert('Please enter a Card Type.');
		form.CreditCardType.focus();
		return false;
	}
	else
	{
		card = form.CreditCardType.options[form.CreditCardType.selectedIndex].value;
		card = card.toLowerCase()
	}

	// IMPORTANT -- Change our naming for card types
	if (card == "diners club") {card="diners"}
	if (card == "american express") {card="amex"}

	if (form.cc_number.value.length == 0)
	{
		alert('Please enter your Credit Card number.');
		form.cc_number.focus();
		return false;
	}
	
	//Validate expiry month
	if (form.ExpyM.value == '')
	{
		alert('Please enter the Expiry Month');
		form.ExpyM.focus();
		return false;
	}
	else
	{
		tmpmonth = form.ExpyM.options[form.ExpyM.selectedIndex].value;
	}

	//Validate expiry year
	if (form.ExpyY.value == '')
	{
		alert('Please enter the Expiry Year');
		form.ExpyY.focus();
		return false;
	}
	else
	{
		tmpyear = form.ExpyY.options[form.ExpyY.selectedIndex].value;
		tmpyear = "20" + tmpyear;
	}

	if (form.CardHolderName.value.length == 0) 
	{
		alert('Please enter your Name as it appears on your Credit Card.');
		form.CardHolderName.focus();
		return false;
	}

	// if any errors so far, send back to page
	if (!blnValid) 
	{
		return blnValid;
	}


	// -- if we get this far, then all fields have some data in them
	// check expiry
	if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) 
	{
		alert('This credit card has expired.');
		return false;
	}

	var retval = eval(card + ".checkCardNumber(\"" + form.cc_number.value + "\", " + tmpyear + ", " + tmpmonth + ");");
	if (retval) 
	{
		// card is valid
	}
	else
	{
		// The CardNumber has the valid luhn checksum, but we want to know which
		// CardType it belongs to.
		for (var n = 0; n < Cards.size; n++) 
		{
			if (Cards[n].checkCardNumber(form.cc_number.value, tmpyear, tmpmonth)) 
			{
				cardname = Cards[n].getCardType();
				break;
			}
		}

		if (cardname.length > 0) 
		{
			alert('The credit card number did not match the card type that you selected.\n Please check the credit card number and select the proper credit card type from the dropdown menu.');
			form.CreditCardType.focus();
			return false;
		}
		else
		{
			alert('The Credit Card number is not valid.');
			return false;
		}
	}

	return blnValid;
}
	
// ----------------------------------------------------------------------
function getTransport()	{
	// Get xml http object - cross browser
	var request = null;
	try 
	{
		request = new XMLHttpRequest();
	} 
	catch (trymicrosoft) 
	{
		try 
		{
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (othermicrosoft) 
		{
			try 
			{
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (failed) 
			{
				request = null;
			}
		}
	}
	return request;
}

// ----------------------------------------------------------------------
function LoadFullSizeImage() {
	//Images/Products/Full
	var URL=document.getElementById('ProductImage1').src;

	var regexp = '/Mid/';
	URL = URL.replace(regexp,"/Full/");

	var ImageWindow = window.open(URL,'ImageWindow', 'width=320,height=320');
}
// ----------------------------------------------------------------------
// ----------------------------------------------------------------------
// ----------------------------------------------------------------------
// ----------------------------------------------------------------------
// ----------------------------------------------------------------------
// ----------------------------------------------------------------------
// ----------------------------------------------------------------------