var speChars = "&.'- ";
var alpha = /[A-Za-z]/;
var BLANK = "";
var alphanum = /[A-Za-z0-9]/;
var num = "0123456789";

function validateBillingShippingAddress(pPrefix, pFirstName, pLastName, pAddrLn1, pCity, pState, pStateDropdown, pCountry, pZip, pContactNo)
{ 
	if(!validateNameFields(pPrefix, pFirstName, pLastName))
		return false;
	else if(!validateAddressFields(pAddrLn1, pCity, pState,pStateDropdown, pCountry, pZip))
		return false;
	else if(!validateAddressLength(pAddrLn1, pCity, pState, pZip))
		return false;
	else if(!validateBillingPhoneField(pContactNo))
		return false;
	else if(!validateZipCodeField(pZip))
		return false;
	else
		return true;
}

function validateRequestFields(pPrefix, pFirstName, pLastName, pAddrLn1, pCity, pState, pStateDropdown, pCountry, pZip, pContactNo, pEmail, pItemQty, pItemName, pItemDesc)
{
	if(!validateItemFields(pItemQty, pItemName, pItemDesc))
		return false;
	else if(!validateNameFields(pPrefix, pFirstName, pLastName))
		return false;
	else if(!validateAddressFields(pAddrLn1, pCity, pState,pStateDropdown, pCountry, pZip))
		return false;
	else if(!validateZipCodeField(pZip))
		return false;
	else if(!validatePhoneField(pContactNo))
		return false;
	else if(!validateEmailField(pEmail))
		return false;
	else
		return true;
}

function validateCourierServiceFields()
{
	var lCourierId=(document.AddEdit.courierid != null)?document.AddEdit.courierid.value:"-2";
	var lCourierItemId=(document.AddEdit.itmtypmstrid_itmtypmstrdcnid!= "-1")?document.AddEdit.itmtypmstrid_itmtypmstrdcnid.value:"-2";
	var lOtherCourier=(document.AddEdit.othercourier != null)?trim(document.AddEdit.othercourier.value):"";
	var lCourierName=(document.AddEdit.couriername.type != "hidden")?trim(document.AddEdit.couriername.value):"";	
	var lStartWt=trim(document.AddEdit.startingweight.value);
	var lAddWt=trim(document.AddEdit.additionalwieght.value);
	var lStartAmt=trim(document.AddEdit.startingamount.value);
	var lAddAmt=trim(document.AddEdit.additionalamount.value);
	var lZone=document.AddEdit.zone.value;
	var lService;
	var radioService = document.AddEdit.service;
	for (var i=0; i < radioService.length; i++)
   {
	 if (radioService[i].checked)
	  {
		lService = radioService[i].value;
		break;
	  }
   }

	if(lCourierId == "-1")
	{
		alert(MSG_SELECT_COURIER);
		document.AddEdit.courierid.focus();
		return false;
	}

	if(lCourierId == "0" && lOtherCourier == "")
	{
		alert(MSG_COURIER_NAME_RQD);
		document.AddEdit.othercourier.focus();
		return false;
	}

	if(lCourierId == "0" && lOtherCourier == "")
	{
		alert(MSG_COURIER_NAME_RQD);
		document.AddEdit.othercourier.focus();
		return false;
	}
	if(lCourierItemId== "-1")
	{
		/// alert(MSG_ITEM_TYPE_REQ);
		alert("Please Select Item Type.");
		document.AddEdit.tmtypmstrid_itmtypmstrdcnid.focus();
		return false;
	}

	if(lCourierItemId == "0" && lCourierItemId== "")
	{
		/// alert(MSG_ITEM_TYPE_REQ);
		alert("Please Select Item Type."); 
		document.AddEdit.tmtypmstrid_itmtypmstrdcnid.focus();
		return false;
	}

	if(!lStartWt)
	{
		alert(MSG_SW_RQD);
		document.AddEdit.startingweight.focus();
		return false;
	}
	//var integerStartWt=isInteger(lStartWt);
	if(!isDouble(lStartWt))
	{
		alert(MSG_SW_INVALID);
		document.AddEdit.startingweight.focus();
		return false;
	}
	if(!lAddWt)
	{
		alert(MSG_AW_RQD);
		document.AddEdit.additionalwieght.focus();
		return false;
	}
	//var integerAddWt=isDouble(lAddWt);
	if(!isDouble(lAddWt))
	{
		alert(MSG_AW_INVALID);
		document.AddEdit.additionalwieght.focus();
		return false;
	}
	if(!lStartAmt)
	{
		alert(MSG_SA_RQD);
		document.AddEdit.startingamount.focus();
		return false;
	}
	//var integerStartAmt=isInteger(lStartAmt);
	if(!isDouble(lStartAmt))
	{
		alert(MSG_SA_INVALID);
		document.AddEdit.startingamount.focus();
		return false;
	}
	if(!lAddAmt)
	{
		alert(MSG_AA_RQD);
		document.AddEdit.additionalamount.focus();
		return false;
	}
	//var integerAddAmt=isInteger(lAddAmt);
	if(!isDouble(lAddAmt))
	{
		alert(MSG_AA_INVALID);
		document.AddEdit.additionalamount.focus();
		return false;
	}
	if(lService == "International" && lZone == "-1")
	{
		alert(MSG_SELECT_ZONE);
		document.AddEdit.zone.focus();
		return false;
	}
	return true;
}

function validateQtyField(pQty, pExistingQty, pCompleteCancelFlag)
{
	var qty = trim(document.forms["OrderItemsAddEdit"][pQty].value);
	var existingQty = document.forms["OrderItemsAddEdit"][pExistingQty].value; 
	var completeCancelFlag = document.forms["OrderItemsAddEdit"][pCompleteCancelFlag].value;

	if(completeCancelFlag == 1)
		return true;
	else
	{
		if(fnBlank(qty))
		{
			alert(MSG_QTY_RQD);
			document.forms["OrderItemsAddEdit"][pQty].focus();
			return false;
		}else if(!fnNumericOnly(qty))
		{
			alert(MSG_QTY_INVALID);
			document.forms["OrderItemsAddEdit"][pQty].focus();
			return false;
		}else if(qty < 0)
		{
			alert(MSG_QTY_INVALID);
			document.forms["OrderItemsAddEdit"][pQty].focus();
			return false;
		}else if(qty >= existingQty)
		{
			alert(MSG_QTY_ONLY_REDUCED);
			document.forms["OrderItemsAddEdit"][pQty].focus();
			return false;
		}
		else
			return true;
		
	}
}

function validateOrderItemsFields(pNewStatus, pExistingStatus, pNewQty, pExistingQty, pCancelReason)
{
	var newStatus = document.forms["OrderItemsAddEdit"][pNewStatus].value;
	var existingStatus = document.forms["OrderItemsAddEdit"][pExistingStatus].value; 
	var newQty = trim(document.forms["OrderItemsAddEdit"][pNewQty].value);
	var existingQty = document.forms["OrderItemsAddEdit"][pExistingQty].value; 
	var cancelReason = document.forms["OrderItemsAddEdit"][pCancelReason].value; 

	if(newStatus == "-1" || newStatus == "-- Select --")
	{
		alert(MSG_STATUS_RQD);
		document.forms["OrderItemsAddEdit"][pNewStatus].focus();
		return false;
	}
	if(fnBlank(newQty))
	{
		alert(MSG_QTY_RQD);
		document.forms["OrderItemsAddEdit"][pNewQty].focus();
		return false;
	}
	if(newStatus == existingStatus)
	{
		alert(MSG_STATUS_NOT_CHANGED);
		document.forms["OrderItemsAddEdit"][pNewStatus].focus();
		return false;
	}
	if(newStatus == CANCELLED_REQ_STATUS)
	{
		alert(MSG_STATUS_INVALID);
		document.forms["OrderItemsAddEdit"][pNewStatus].focus();
		return false;
	}
	if(!fnNumericOnly(newQty))
	{
		alert(MSG_QTY_INVALID);
		document.forms["OrderItemsAddEdit"][pNewQty].focus();
		return false;
	}
	if(newQty <= 0)
	{
		alert(MSG_QTY_INVALID);
		document.forms["OrderItemsAddEdit"][pNewQty].focus();
		return false;
	}
	if(newQty > existingQty)
	{
		alert(MSG_QTY_INVALID);
		document.forms["OrderItemsAddEdit"][pNewQty].focus();
		return false;
	}
	if(newStatus == CANCELLED_STATUS && (cancelReason == "-1" || cancelReason == "-- Select --"))
	{
			alert("Reason for Cancellation is Required.");
			document.forms["OrderItemsAddEdit"][pCancelReason].focus();
			return false;
	}
	else
		return true;
}

function validateOrderFields(pStatus, pWayBill, pPaymentStatus, pCardAmt, pCashAmt, pChqNo, pChqDate, pChqDrawer, pChqBank, pChqAmt, pCancelReason)
{
	var status = document.forms["AddEdit"][pStatus].value;
	var wayBill = trim(document.forms["AddEdit"][pWayBill].value);
	var paymentStatus = document.forms["AddEdit"][pPaymentStatus].value;
	var cardAmt = trim(document.forms["AddEdit"][pCardAmt].value);
	var cashAmt = trim(document.forms["AddEdit"][pCashAmt].value);
	var chqNo = trim(document.forms["AddEdit"][pChqNo].value);
	var chqDate = trim(document.forms["AddEdit"][pChqDate].value);
	var chqDrawer = trim(document.forms["AddEdit"][pChqDrawer].value);
	var chqBank = trim(document.forms["AddEdit"][pChqBank].value);
	var chqAmt = trim(document.forms["AddEdit"][pChqAmt].value);
	var cancelReason = document.forms["AddEdit"][pCancelReason].value;

	var netAmt = document.AddEdit.ordmstnetamount.value.replace(",","");

	if(status == "-1" || status == "-- Select --")
	{
			alert(MSG_STATUS_RQD);
			document.forms["AddEdit"][pStatus].focus();
			return false;
	}
	if(paymentStatus == "-1" || paymentStatus == "-- Select --")
	{
			alert(MSG_PAYMENT_STATUS_RQD);
			document.forms["AddEdit"][pPaymentStatus].focus();
			return false;
	}
	if(gOrderStatusChanged == true && status == CANCELLED_REQ_STATUS)
	{
			alert(MSG_STATUS_INVALID);
			document.forms["AddEdit"][pStatus].focus();
			return false;
	}
	if(gOrderStatusChanged == true && status == CANCELLED_STATUS)
	{			
		if(cancelReason == "-1" || cancelReason == "-- Select --")
		{
			alert("Reason for Cancellation is Required.");
			document.forms["AddEdit"][pCancelReason].focus();
			return false;
		}
	}
	if(gOrderStatusChanged == true && status == PARTIAL_CANCEL_REQ_STATUS)
	{
			alert(MSG_STATUS_INVALID);
			document.forms["AddEdit"][pStatus].focus();
			return false;
	}	
	if(paymentStatus == FAILURE_STATUS && status != CANCELLED_STATUS)
	{
			alert(MSG_STATUS_PAYMENT);
			document.forms["AddEdit"][pStatus].focus();
			return false;
	}
	if(!fnBlank(wayBill) && fnSpecialCharacter(wayBill))
	{
			alert(MSG_WAYBILL_INVALID);
			document.forms["AddEdit"][pWayBill].focus();
			return false;
	}
	if(!fnBlank(wayBill) && !(status == DISPATCHED_STATUS || status == CANCELLED_STATUS))
	{
			alert(MSG_STATUS_WAYBILL);
			document.forms["AddEdit"][pStatus].focus();
			return false;
	}
	if(paymentStatus == SUCCESS_STATUS && (document.AddEdit.ordmstinvoiceno.value == null || document.AddEdit.ordmstinvoiceno.value == ""))
	{
		//alert(document.AddEdit.ordmstnetamount.value);
		if(document.AddEdit.pmtmstpaymentgatewayflag.value == "1")
		{
			if(fnBlank(cardAmt))
			{
				alert(MSG_CARD_AMT_RQD);
				document.forms["AddEdit"][pCardAmt].focus();
				return false;
			}
			else if(!isDouble(cardAmt))
			{
				alert(MSG_CARD_AMT_INVALID);
				document.forms["AddEdit"][pCardAmt].focus();
				return false;
			}else if(parseFloat(cardAmt) != parseFloat(netAmt))
			{
				if(!confirm("Amount Entered is not equal to current Net Amount. Do you wish to proceed?"))
				{
					document.forms["AddEdit"][pCardAmt].focus();
					return false;
				}
			}

		}
		else if(document.AddEdit.pmtmstpaymentgatewayflag.value == "-1")
		{
			if(fnBlank(cashAmt))
			{
				alert(MSG_CASH_AMT_RQD);
				document.forms["AddEdit"][pCashAmt].focus();
				return false;
			}
			else if(!isDouble(cashAmt))
			{
				alert(MSG_CASH_AMT_INVALID);
				document.forms["AddEdit"][pCashAmt].focus();
				return false;
			}else if(parseFloat(cashAmt) != parseFloat(netAmt))
			{
				if(!confirm("Amount Entered is not equal to current Net Amount. Do you wish to proceed?"))
				{
					document.forms["AddEdit"][pCashAmt].focus();
					return false;
				}
			}
		}
		else if(document.AddEdit.pmtmstpaymentgatewayflag.value == "0")
		{
			if(fnBlank(chqNo))
			{
				alert(MSG_CHQ_NO_RQD);
				document.forms["AddEdit"][pChqNo].focus();
				return false;
			}
			if(!fnNumericOnly(chqNo))
			{
				alert(MSG_CHQ_NO_INVALID);
				document.forms["AddEdit"][pChqNo].focus();
				return false;
			}
			if(fnBlank(chqDate))
			{
				alert(MSG_CHQ_DT_RQD);
				document.forms["AddEdit"][pChqDate].focus();
				return false;
			}
			if(fnBlank(chqDrawer))
			{
				alert(MSG_CHQ_DRAWER_RQD);
				document.forms["AddEdit"][pChqDrawer].focus();
				return false;
			}
			if(fnNumericOnly(chqDrawer))
			{
				alert(MSG_CHQ_DRAWER_INVALID);
				document.forms["AddEdit"][pChqDrawer].focus();
				return false;
			}
			if(fnSpecialCharacterOnly(chqDrawer))
			{
				alert(MSG_CHQ_DRAWER_INVALID);
				document.forms["AddEdit"][pChqDrawer].focus();
				return false;
			}
			if(fnBlank(chqBank))
			{
				alert(MSG_CHQ_BANK_RQD);
				document.forms["AddEdit"][pChqBank].focus();
				return false;
			}
			if(fnNumericOnly(chqBank))
			{
				alert(MSG_CHQ_BANK_INVALID);
				document.forms["AddEdit"][pChqBank].focus();
				return false;
			}
			if(fnSpecialCharacterOnly(chqBank))
			{
				alert(MSG_CHQ_BANK_INVALID);
				document.forms["AddEdit"][pChqBank].focus();
				return false;
			}
			if(fnBlank(chqAmt))
			{
				alert(MSG_CHQ_AMT_RQD);
				document.forms["AddEdit"][pChqAmt].focus();
				return false;
			}
			if(!isDouble(chqAmt))
			{
				alert(MSG_CHQ_AMT_INVALID);
				document.forms["AddEdit"][pChqAmt].focus();
				return false;
			}else if(parseFloat(chqAmt) != parseFloat(netAmt))
			{
				if(!confirm("Amount Entered is not equal to current Net Amount. Do you wish to proceed?"))
				{
					document.forms["AddEdit"][pChqAmt].focus();
					return false;
				}
			}
		}
	}
	return true;
}

function validateItemFields(pItemQty, pItemName, pItemDesc)
{
	var lItemQty = trim(document.forms["AddEdit"][pItemQty].value);
	var lItemName = (document.forms["AddEdit"][pItemName] != null)?trim(document.forms["AddEdit"][pItemName].value):null;
	var lItemDesc = (document.forms["AddEdit"][pItemDesc] != null)?trim(document.forms["AddEdit"][pItemDesc].value):null;

	if(document.forms["AddEdit"][pItemName] != null)
	{
		if(fnBlank(lItemName))
		{
			alert(MSG_ITEM_NAME_RQD);
			document.forms["AddEdit"][pItemName].focus();
			return false;
		}
		else if(fnNumericOnly(lItemName))
		{
			alert(MSG_ITEM_NAME_INVALID);
			document.forms["AddEdit"][pItemName].focus();
			return false;
		}
		else if(fnSpecialCharacterOnly(lItemName))
		{
			alert(MSG_ITEM_NAME_INVALID);
			document.forms["AddEdit"][pItemName].focus();
			return false;
		}	
	}
	if(document.forms["AddEdit"][pItemDesc] != null)
	{
		if(maxLengthExceeded(lItemDesc, 125))
		{
			alert(MSG_ITEM_DESC_LENGTH_EXCEEDED);
			document.forms["AddEdit"][pItemDesc].focus();
			return false;
		}
		else if(fnBlank(lItemDesc))
		{
			alert(MSG_ITEM_DESC_RQD);
			document.forms["AddEdit"][pItemDesc].focus();
			return false;
		}
		else if(fnNumericOnly(lItemDesc))
		{
			alert(MSG_ITEM_DESC_INVALID);
			document.forms["AddEdit"][pItemDesc].focus();
			return false;
		}
		else if(fnSpecialCharacterOnly(lItemDesc))
		{
			alert(MSG_ITEM_DESC_INVALID);
			document.forms["AddEdit"][pItemDesc].focus();
			return false;
		}	
	}
    if(fnBlank(lItemQty))
    {
        alert(MSG_ITEM_QTY_RQD);
        document.forms["AddEdit"][pItemQty].focus();
        return false;
    }
	else if(!fnNumericOnly(lItemQty))
    {
		alert(MSG_ITEM_QTY_INVALID);
		document.forms["AddEdit"][pItemQty].focus();
		return false;
    }
	return true;
}

function validateNameFields(pPrefix, pFirstName, pLastName)
{
	var prefix = document.forms["AddEdit"][pPrefix].value;
	var firstName = trim(document.forms["AddEdit"][pFirstName].value);
	//var middleName = trim(document.forms["AddEdit"][pMiddleName].value);
	var lastName = trim(document.forms["AddEdit"][pLastName].value);
	if(prefix == "-1" || prefix == "-- Select --")
	{
		alert(MSG_PREFIX_SELECT);
		document.forms["AddEdit"][pPrefix].focus();
		return false;

	}
	
	if(fnBlank(firstName))
	{
		alert(MSG_FIRST_NAME_RQD);
		document.forms["AddEdit"][pFirstName].focus();
		return false;

	}else if(!fnAlphaOnly(firstName))
	{
		alert(MSG_FIRST_NAME_INVALID);
		document.forms["AddEdit"][pFirstName].focus();;
		return false;
	}
	else if(fnBlank(lastName))
	{
		alert(MSG_LAST_NAME_RQD);
		document.forms["AddEdit"][pLastName].focus();
		return false;
	}else if(!fnAlphaOnly(lastName))
	{
		alert(MSG_LAST_NAME_INVALID);
		document.forms["AddEdit"][pLastName].focus();
		return false;
	}

	/*var i;
	for (i = 0; i < firstName.length; i++)
	{

		var c = firstName.charAt(i);
		if (c.search(alphanum) == -1 && speChars.indexOf(c) == -1)
		{
			alert(MSG_FIRST_NAME_INVALID);
			document.forms["AddEdit"][pFirstName].focus();;
			return false;
		}
	  }

	if (BLANK != firstName && ((firstName.search(alpha)) == -1))
	{
		alert(MSG_FIRST_NAME_INVALID);
		document.forms["AddEdit"][pFirstName].focus();
		return false;
	}*/

	/*if(!fnBlank(middleName))
	{
		for (i = 0; i < middleName.length; i++)
		{
			var c = middleName.charAt(i);
			if (c.search(alphanum) == -1 && speChars.indexOf(c) == -1)
			{
				alert(MSG_MIDDLE_NAME_INVALID);
				document.forms["AddEdit"][pMiddleName].focus();
				return false;
			}
		}

		if ((middleName.search(alpha)) == -1)
		{
			alert(MSG_MIDDLE_NAME_INVALID);
			document.forms["AddEdit"][pMiddleName].focus();
			return false;
		}
	}*/

	/*for (i = 0; i < lastName.length; i++)
	{
		var c = lastName.charAt(i);
		if (c.search(alphanum) == -1 && speChars.indexOf(c) == -1)
		{
			alert(MSG_LAST_NAME_INVALID);
			document.forms["AddEdit"][pLastName].focus();
			return false;
		}
	}

	if (BLANK != lastName && ((lastName.search(alpha)) == -1))
	{
		alert(MSG_LAST_NAME_INVALID);
		document.forms["AddEdit"][pLastName].focus();
		return false;
	}*/
	return true;
}

function validateAddressFields(pAddrLn1, pCity, pState,pStateDropdown, pCountry, pZip)
{
	var addressLine1 = trim(document.forms["AddEdit"][pAddrLn1].value);
	//var addressLine2 = trim(document.forms["AddEdit"][pAddrLn2].value);
	var city = trim(document.forms["AddEdit"][pCity].value);
	var state = trim(document.forms["AddEdit"][pState].value);
	//alert("state:"+state);
    var stateDropdown = trim(document.forms["AddEdit"][pStateDropdown].value);
	//alert("stateDropdown:"+stateDropdown);
	var country = trim(document.forms["AddEdit"][pCountry].value);
	var zipCode = trim(document.forms["AddEdit"][pZip].value);
       if(fnBlank(addressLine1))
    {
        alert(MSG_ADDR_LN1_RQD);
        document.forms["AddEdit"][pAddrLn1].focus();
        return false;
    }
    else if(fnNumericOnly(addressLine1))
    {
        alert(MSG_ADDR_LN1_INVALID);
        document.forms["AddEdit"][pAddrLn1].focus();
        return false;
    }
    else if(fnSpecialCharacterOnly(addressLine1))
    {
        alert(MSG_ADDR_LN1_INVALID);
        document.forms["AddEdit"][pAddrLn1].focus();
        return false;
    }

    /*if(!fnBlank(addressLine2))
    {
		if(fnNumericOnly(addressLine2))
		{
			alert(MSG_ADDR_LN2_INVALID);
			document.forms["AddEdit"][pAddrLn2].focus();
			return false;
		}
		else if(fnSpecialCharacterOnly(addressLine2))
		{
			alert(MSG_ADDR_LN2_INVALID);
			document.forms["AddEdit"][pAddrLn2].focus();
			return false;
		}
    }*/

    if(fnBlank(city))
    {
        alert(MSG_CITY_REQD);
        document.forms["AddEdit"][pCity].focus();
        return false;
    }else if(!fnAlphaSpaceOnly(city))
	{
        alert(MSG_CITY_INVALID);
        document.forms["AddEdit"][pCity].focus();
        return false;
    }
    /*else if(fnSpecialCharacterOnly(city))
    {
        alert(MSG_CITY_INVALID);
        document.forms["AddEdit"][pCity].focus();
        return false;
    }
    else if(fnNumericOnly(city))
    {
        alert(MSG_CITY_INVALID);
        document.forms["AddEdit"][pCity].focus();
        return false;
    }*/

   /*Modified as states is made dropdown */
    if((stateDropdown == "-1" || stateDropdown == "-- Select --") || ((fnBlank(state) || state=="Enter State") && stateDropdown=="Others"))
	{
		alert(MSG_STATE_REQD);
		document.forms["AddEdit"][pStateDropdown].focus();
		return false;
	}
		else if(!fnAlphaSpaceOnly(state))
	{
        alert(MSG_STATE_INVALID);
        document.forms["AddEdit"][pState].focus();
        return false;
    }
    /*else if(fnSpecialCharacterOnly(state))
    {
        alert(MSG_STATE_INVALID);
        document.forms["AddEdit"][pState].focus();
        return false;
    }
    else if(fnNumericOnly(state))
    {
        alert(MSG_STATE_INVALID);
        document.forms["AddEdit"][pState].focus();
        return false;
    }*/


	if(country == "-1" || country == "-- Select --")
	{
		alert(MSG_COUNTRY_SELECT);
		document.forms["AddEdit"][pCountry].focus();
		return false;
	}
    if(fnBlank(zipCode))
    {
        alert(MSG_ZIP_REQD);
        document.forms["AddEdit"][pZip].focus();
        return false;
    }

	return true;
}

function validateAddressLength(pAddrLn1, pCity, pState, pZip)
{
	var addressLine1 = trim(document.forms["AddEdit"][pAddrLn1].value);
	var city = trim(document.forms["AddEdit"][pCity].value);
	var state = trim(document.forms["AddEdit"][pState].value);
	var zipCode = trim(document.forms["AddEdit"][pZip].value);
	if(addressLine1.length > 90)
	{
		alert(MSG_ADRESS_MAX_LENGTH);
		document.forms["AddEdit"][pAddrLn1].focus();
		return false;
	}
	if(city.length > 25)
	{
		alert(MSG_CITY_MAX_LENGTH);
		document.forms["AddEdit"][pCity].focus();
		return false;
	}
	if(state.length > 25)
	{
		alert(MSG_STATE_MAX_LENGTH);
		document.forms["AddEdit"][pState].focus();
		return false;
	}
	if(zipCode.length > 7)
	{
		alert(MSG_ZIP_MAX_LENGTH);
		document.forms["AddEdit"][pZip].focus();
		return false;
	}
	return true;
}

function validateBillingPhoneField(pContactNo)
{
	var lContactNo = trim(document.forms["AddEdit"][pContactNo].value);
	if(fnBlank(lContactNo))
	{
		alert(MSG_CONTACT_NO_RQD);
		document.forms["AddEdit"][pContactNo].focus();
		return false;
	}
	else if(!fnNumericOnly(lContactNo))
	{
		alert(MSG_CONTACT_NO_INVALID);
		document.forms["AddEdit"][pContactNo].focus();
		return false;
	}

	return true;
}

function validatePhoneField(pContactNo)
{
	var lContactNo = trim(document.forms["AddEdit"][pContactNo].value);
	if(fnBlank(lContactNo))
	{
		alert(MSG_CONTACT_NO_RQD);
		document.forms["AddEdit"][pContactNo].focus();
		return false;
	}
	else if(fnAlpha(lContactNo) || fnSpecialCharacterPhone(lContactNo))
	{
		alert(MSG_CONTACT_NO_INVALID);
		document.forms["AddEdit"][pContactNo].focus();
		return false;
	}

	return true;
}

function validateZipCodeField(pZipCode)
{
	var lZipCode = trim(document.forms["AddEdit"][pZipCode].value);
	if(fnBlank(lZipCode))
	{
		alert(MSG_ZIP_CODE_INVALID);
		document.forms["AddEdit"][pZipCode].focus();
		return false;
	}
	else if(!fnNumericOnly(lZipCode))
	{
		alert(MSG_ZIP_CODE_INVALID);
		document.forms["AddEdit"][pZipCode].focus();
		return false;
	}

	return true;
}



function validateEmailField(pEmail)
{
	var lEmail = trim(document.forms["AddEdit"][pEmail].value);

	if(fnBlank(lEmail))
	{
		alert(MSG_EMAIL_RQD);
		document.forms["AddEdit"][pEmail].focus();
		return false;
	}
	else if(fnNumericOnly(lEmail) || fnEmailNoAtCheck(lEmail) ||  fnInvalidEmail(lEmail))
	{	
		alert(MSG_EMAIL_INVALID);
		document.forms["AddEdit"][pEmail].focus();
		return false;
	}

	return true;
}

function fnBlank(field)
{
    if(field == "" || field == null)
        return true;
    else
        return false;
}

function fnSpecialCharacterOnly(field)
{
    count= 0;

    for(i=0;i<field.length;i++)
    {

        cTemp=field.charCodeAt(i);

        if(!(((cTemp>=97)&&(cTemp<=122))||((cTemp>=65)&&(cTemp<=90))||((cTemp>=48)&&(cTemp<=57))))
        {
            count++;
        }
        else
            continue;
    }

    if(count == field.length)
        return true;
    else
        return false;
}

function fnSpecialCharacterPhone(field)

{

            for(i=0;i<field.length;i++)

            {

                        cTemp=field.charCodeAt(i);

                        if(((cTemp>=97)&&(cTemp<=122)) || ((cTemp>=65)&&(cTemp<=90)) || ((cTemp>=48)&&(cTemp<=57)) || cTemp == 45 || cTemp == 43 || cTemp == 32)

                                    continue;

                        else

                                    return true;

            }



            return false;

}


function fnNumericOnly(field)
{
    count = 0;

    for(i=0;i<field.length;i++)
    {
        cTemp=field.charCodeAt(i);
        if(((cTemp>=48)&&(cTemp<=57)))
            count++;
        else
            continue;
    }

    if(count == field.length)
        return true;
    else
        return false;
}

function fnCheckPhoneLength(field)
{
        count = 0;
        for(i=0;i<field.length;i++)
        {
            cTemp=field.charCodeAt(i);
            if(((cTemp>=48)&&(cTemp<=57)))
            {
                count++;
            }
            else
                continue;
        }

        if(count == 10)
            return true;
        else
            return false;
}

function fnAlphaOnly(field)
{
    count = 0;

    for(i=0;i<field.length;i++)
    {
        cTemp=field.charCodeAt(i);
        if(((cTemp>=97)&&(cTemp<=122)) || ((cTemp>=65)&&(cTemp<=90)) )
            count++;
        else
            continue;
    }

    if(count == field.length)
        return true;
    else
        return false;
}

function fnAlphaSpaceOnly(field)
{
    count = 0;

    for(i=0;i<field.length;i++)
    {
        cTemp=field.charCodeAt(i);
        if(((cTemp>=97)&&(cTemp<=122)) || ((cTemp>=65)&&(cTemp<=90))  || cTemp == 32)
            count++;
        else
            continue;
    }

    if(count == field.length)
        return true;
    else
        return false;
}

function fnSpecialCharacter(field)
{
    for(i=0;i<field.length;i++)
    {
        cTemp=field.charCodeAt(i);
        if((((cTemp>=97)&&(cTemp<=122)) || ((cTemp>=65)&&(cTemp<=90)) || ((cTemp>=48)&&(cTemp<=57))))
            continue;
        else
            return true;
    }

    return false;
}

function fnAlpha(field)
{

    for(i=0;i<field.length;i++)
    {
        cTemp=field.charCodeAt(i);
        if(((cTemp>=97)&&(cTemp<=122)) || ((cTemp>=65)&&(cTemp<=90)) )
            return true;
        else
            continue;
    }

    return false;
}

function fnNumeric(field)
{
    for(i=0;i<field.length;i++)
    {
        cTemp=field.charCodeAt(i);
        if(((cTemp>=48)&&(cTemp<=57)))
            return true;
        else
            continue;
    }
    return false;
}

function fnEmailNoAtCheck(field)
{
    for(i=0;i<field.length;i++)
    {
        cTemp=field.charCodeAt(i);
        if(cTemp != 64)
            continue;
        else
            return false;
    }
    return true;

}

function fnInvalidEmail(field)
{
    var regularExpression = /^([A-Za-z0-9_-]+\.)*[A-Za-z0-9_-]+\@([A-Za-z0-9_-]+\.)+[A-Za-z]{2,4}$/;

    if(!field.match(regularExpression))
        return true;
    else
        return false;

}

 function maxLengthExceeded(field, maxvalue)
{
     var textLength = field.length;
     if (textLength > maxvalue) 
		 return true;
}


function isDouble(val){
	val = trimNumber(val);
	//alert(val);
	if (fnBlank(val)){return false;}
	var pointCount = 0;
	for(var i=0;i<val.length;i++){
		if(!isDoubleDigit(val.charAt(i))){return false;}
		if(val.charCodeAt(i) == 46)
		{
			pointCount++;
			//alert("point increase");
		}
		}
	if(pointCount>1)return false;
	if(!fnNumeric(val)){return false;}
	if(pointCount == 0)
	{
		if(maxLengthExceeded(val, 8))return false;
	}else
	{
		if(val.substring(0,val.indexOf(".")).length>8)return false;
		if(val.indexOf(".") != val.length-1)
		{
			//alert(val.substring(val.indexOf(".") + 1,val.length));
			if(val.substring(val.indexOf(".") + 1,val.length).length>2)return false;
		}
	}
	return true;
}

function isDoubleDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890.";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}

function trimNumber(s) { 
return s.replace(/^0+/, ''); 
} 

//Added by arati for giftcertficate validation
function validateBillingShippingAddressGc(pPrefix, pFirstName, pLastName, pAddrLn1, pCity, pState,pCountry, pZip, pContactNo)
{
	if(!validateNameFields(pPrefix, pFirstName, pLastName))
		return false;
	else if(!validateAddressFieldsGc(pAddrLn1, pCity, pState, pCountry, pZip))
		return false;
	else if(!validateAddressLengthGc(pAddrLn1, pCity, pState, pZip))
		return false;
	else if(!validateBillingPhoneField(pContactNo))
		return false;
	else if(!validateZipCodeField(pZip))
		return false;
	else
		return true;
}


function validateAddressFieldsGc(pAddrLn1, pCity, pState, pCountry, pZip)
{
	var addressLine1 = trim(document.forms["AddEdit"][pAddrLn1].value);
	//var addressLine2 = trim(document.forms["AddEdit"][pAddrLn2].value);
	var city = trim(document.forms["AddEdit"][pCity].value);
	var state = trim(document.forms["AddEdit"][pState].value);
	var country = trim(document.forms["AddEdit"][pCountry].value);
	var zipCode = trim(document.forms["AddEdit"][pZip].value);

    if(fnBlank(addressLine1))
    {
        alert(MSG_ADDR_LN1_RQD);
        document.forms["AddEdit"][pAddrLn1].focus();
        return false;
    }
    else if(fnNumericOnly(addressLine1))
    {
        alert(MSG_ADDR_LN1_INVALID);
        document.forms["AddEdit"][pAddrLn1].focus();
        return false;
    }
    else if(fnSpecialCharacterOnly(addressLine1))
    {
        alert(MSG_ADDR_LN1_INVALID);
        document.forms["AddEdit"][pAddrLn1].focus();
        return false;
    }

    /*if(!fnBlank(addressLine2))
    {
		if(fnNumericOnly(addressLine2))
		{
			alert(MSG_ADDR_LN2_INVALID);
			document.forms["AddEdit"][pAddrLn2].focus();
			return false;
		}
		else if(fnSpecialCharacterOnly(addressLine2))
		{
			alert(MSG_ADDR_LN2_INVALID);
			document.forms["AddEdit"][pAddrLn2].focus();
			return false;
		}
    }*/

    if(fnBlank(city))
    {
        alert(MSG_CITY_REQD);
        document.forms["AddEdit"][pCity].focus();
        return false;
    }else if(!fnAlphaSpaceOnly(city))
    {
        alert(MSG_CITY_INVALID);
        document.forms["AddEdit"][pCity].focus();
        return false;
    }
    /*else if(fnSpecialCharacterOnly(city))
    {
        alert(MSG_CITY_INVALID);
        document.forms["AddEdit"][pCity].focus();
        return false;
    }
    else if(fnNumericOnly(city))
    {
        alert(MSG_CITY_INVALID);
        document.forms["AddEdit"][pCity].focus();
        return false;
    }*/

    if(fnBlank(state))
    {
        alert(MSG_STATE_REQD);
        document.forms["AddEdit"][pState].focus();
        return false;
    }else if(!fnAlphaSpaceOnly(state))
	{
        alert(MSG_STATE_INVALID);
        document.forms["AddEdit"][pState].focus();
        return false;
    }
    /*else if(fnSpecialCharacterOnly(state))
    {
        alert(MSG_STATE_INVALID);
        document.forms["AddEdit"][pState].focus();
        return false;
    }
    else if(fnNumericOnly(state))
    {
        alert(MSG_STATE_INVALID);
        document.forms["AddEdit"][pState].focus();
        return false;
    }*/


	if(country == "-1" || country == "-- Select --")
	{
		alert(MSG_COUNTRY_SELECT);
		document.forms["AddEdit"][pCountry].focus();
		return false;
	}
    if(fnBlank(zipCode))
    {
        alert(MSG_ZIP_REQD);
        document.forms["AddEdit"][pZip].focus();
        return false;
    }

	return true;
}

function validateAddressLengthGc(pAddrLn1, pCity, pState, pZip)
{
	var addressLine1 = trim(document.forms["AddEdit"][pAddrLn1].value);
	var city = trim(document.forms["AddEdit"][pCity].value);
	var state = trim(document.forms["AddEdit"][pState].value);
	var zipCode = trim(document.forms["AddEdit"][pZip].value);
	if(addressLine1.length > 90)
	{
		alert(MSG_ADRESS_MAX_LENGTH);
		document.forms["AddEdit"][pAddrLn1].focus();
		return false;
	}
	if(city.length > 25)
	{
		alert(MSG_CITY_MAX_LENGTH);
		document.forms["AddEdit"][pCity].focus();
		return false;
	}
	if(state.length > 25)
	{
		alert(MSG_STATE_MAX_LENGTH);
		document.forms["AddEdit"][pState].focus();
		return false;
	}
	if(zipCode.length > 7)
	{
		alert(MSG_ZIP_MAX_LENGTH);
		document.forms["AddEdit"][pZip].focus();
		return false;
	}
	return true;
}


function validateRequestFields1(pPrefix, pFirstName, pLastName, pAddrLn1, pCity, pState, pCountry, pZip, pContactNo, pEmail, pItemQty, pItemName, pItemDesc)
{
	if(!validateItemFields(pItemQty, pItemName, pItemDesc))
		return false;
	else if(!validateNameFields(pPrefix, pFirstName, pLastName))
		return false;
	else if(!validateAddressFieldsGc(pAddrLn1, pCity, pState, pCountry, pZip))
		return false;
	else if(!validateZipCodeField(pZip))
		return false;
	else if(!validatePhoneField(pContactNo))
		return false;
	else if(!validateEmailField(pEmail))
		return false;
	else
		return true;
}

//function for currency validation

function validateCurrencyFields()
{
	var currency=document.getElementById("currency").name;
	var currency_value=document.forms["SEARCH"][currency].value;
	var inrupee=document.getElementById("exchangerate").name;
	var inr=trim(document.forms["SEARCH"][inrupee].value);
	if(currency_value=="SEL")
	{
	alert("Please Select Currency");
	document.forms["SEARCH"][currency].focus();
	return false;
	}
	else if(fnBlank(inr))
	{
	alert("Please Enter Exchange Rate" );
	document.forms["SEARCH"][inrupee].focus();
    return false;
	}
	else if(!isDouble(inr))
	{
	alert("Exchange Rate is Invalid");
	document.forms["SEARCH"][inrupee].focus();
	return false;
	}
	return true;
}
function validateBillingShippingAddressWizard(pPrefix, pFirstName, pLastName, pAddrLn1, pCity, pState, pStateDropdown, pCountry, pZip, pContactNo)
{ 
	if(!validateNameFieldsWizard(pPrefix, pFirstName, pLastName))
		return false;
	else if(!validateAddressFieldsWizard(pAddrLn1, pCity, pState,pStateDropdown, pCountry, pZip))
		return false;
	else if(!validateAddressLengthWizard(pAddrLn1, pCity, pState, pZip))
		return false;
	else if(!validateBillingPhoneFieldWizard(pContactNo))
		return false;
	else if(!validateZipCodeFieldWizard(pZip))
		return false;
	else
		return true;
}
function validateNameFieldsWizard(pPrefix, pFirstName, pLastName)
{
	var prefix = document.forms["AddEdit"][pPrefix].value;
	var firstName = trim(document.forms["AddEdit"][pFirstName].value);
	//var middleName = trim(document.forms["AddEdit"][pMiddleName].value);
	var lastName = trim(document.forms["AddEdit"][pLastName].value);
	if(prefix == "-1" || prefix == "-- Select --")
	{
		
		return false;

	}
	
	if(fnBlank(firstName))
	{
		
		return false;

	}else if(!fnAlphaOnly(firstName))
	{
		
		return false;
	}
	else if(fnBlank(lastName))
	{
		
		return false;
	}else if(!fnAlphaOnly(lastName))
	{
		
		return false;
	}

	/*var i;
	for (i = 0; i < firstName.length; i++)
	{

		var c = firstName.charAt(i);
		if (c.search(alphanum) == -1 && speChars.indexOf(c) == -1)
		{
			alert(MSG_FIRST_NAME_INVALID);
			document.forms["AddEdit"][pFirstName].focus();;
			return false;
		}
	  }

	if (BLANK != firstName && ((firstName.search(alpha)) == -1))
	{
		alert(MSG_FIRST_NAME_INVALID);
		document.forms["AddEdit"][pFirstName].focus();
		return false;
	}*/

	/*if(!fnBlank(middleName))
	{
		for (i = 0; i < middleName.length; i++)
		{
			var c = middleName.charAt(i);
			if (c.search(alphanum) == -1 && speChars.indexOf(c) == -1)
			{
				alert(MSG_MIDDLE_NAME_INVALID);
				document.forms["AddEdit"][pMiddleName].focus();
				return false;
			}
		}

		if ((middleName.search(alpha)) == -1)
		{
			alert(MSG_MIDDLE_NAME_INVALID);
			document.forms["AddEdit"][pMiddleName].focus();
			return false;
		}
	}*/

	/*for (i = 0; i < lastName.length; i++)
	{
		var c = lastName.charAt(i);
		if (c.search(alphanum) == -1 && speChars.indexOf(c) == -1)
		{
			alert(MSG_LAST_NAME_INVALID);
			document.forms["AddEdit"][pLastName].focus();
			return false;
		}
	}

	if (BLANK != lastName && ((lastName.search(alpha)) == -1))
	{
		alert(MSG_LAST_NAME_INVALID);
		document.forms["AddEdit"][pLastName].focus();
		return false;
	}*/
	return true;
}

function validateAddressFieldsWizard(pAddrLn1, pCity, pState,pStateDropdown, pCountry, pZip)
{
	var addressLine1 = trim(document.forms["AddEdit"][pAddrLn1].value);
	//var addressLine2 = trim(document.forms["AddEdit"][pAddrLn2].value);
	var city = trim(document.forms["AddEdit"][pCity].value);
	var state = trim(document.forms["AddEdit"][pState].value);
	//alert("state:"+state);
    var stateDropdown = trim(document.forms["AddEdit"][pStateDropdown].value);
	//alert("stateDropdown:"+stateDropdown);
	var country = trim(document.forms["AddEdit"][pCountry].value);
	var zipCode = trim(document.forms["AddEdit"][pZip].value);
       if(fnBlank(addressLine1))
    {
       
        return false;
    }
    else if(fnNumericOnly(addressLine1))
    {
       
        return false;
    }
    else if(fnSpecialCharacterOnly(addressLine1))
    {
       
        return false;
    }

    /*if(!fnBlank(addressLine2))
    {
		if(fnNumericOnly(addressLine2))
		{
			alert(MSG_ADDR_LN2_INVALID);
			document.forms["AddEdit"][pAddrLn2].focus();
			return false;
		}
		else if(fnSpecialCharacterOnly(addressLine2))
		{
			alert(MSG_ADDR_LN2_INVALID);
			document.forms["AddEdit"][pAddrLn2].focus();
			return false;
		}
    }*/

    if(fnBlank(city))
    {
        
        return false;
    }else if(!fnAlphaSpaceOnly(city))
	{
        
        return false;
    }
    /*else if(fnSpecialCharacterOnly(city))
    {
        alert(MSG_CITY_INVALID);
        document.forms["AddEdit"][pCity].focus();
        return false;
    }
    else if(fnNumericOnly(city))
    {
        alert(MSG_CITY_INVALID);
        document.forms["AddEdit"][pCity].focus();
        return false;
    }*/

   /*Modified as states is made dropdown */
    if((stateDropdown == "-1" || stateDropdown == "-- Select --") || ((fnBlank(state) || state=="Enter State") && stateDropdown=="Others"))
	{
		
		return false;
	}
		else if(!fnAlphaSpaceOnly(state))
	{
       
        return false;
    }
    /*else if(fnSpecialCharacterOnly(state))
    {
        alert(MSG_STATE_INVALID);
        document.forms["AddEdit"][pState].focus();
        return false;
    }
    else if(fnNumericOnly(state))
    {
        alert(MSG_STATE_INVALID);
        document.forms["AddEdit"][pState].focus();
        return false;
    }*/


	if(country == "-1" || country == "-- Select --")
	{
		
		return false;
	}
    if(fnBlank(zipCode))
    {
        
        return false;
    }

	return true;
}

function validateAddressLengthWizard(pAddrLn1, pCity, pState, pZip)
{
	var addressLine1 = trim(document.forms["AddEdit"][pAddrLn1].value);
	var city = trim(document.forms["AddEdit"][pCity].value);
	var state = trim(document.forms["AddEdit"][pState].value);
	var zipCode = trim(document.forms["AddEdit"][pZip].value);
	if(addressLine1.length > 90)
	{
		
		return false;
	}
	if(city.length > 25)
	{
		
		return false;
	}
	if(state.length > 25)
	{
		
		return false;
	}
	if(zipCode.length > 7)
	{
		
		return false;
	}
	return true;
}

function validateBillingPhoneFieldWizard(pContactNo)
{
	var lContactNo = trim(document.forms["AddEdit"][pContactNo].value);
	if(fnBlank(lContactNo))
	{
		
		return false;
	}
	else if(!fnNumericOnly(lContactNo))
	{
		
		return false;
	}

	return true;
}

function validatePhoneFieldWizard(pContactNo)
{
	var lContactNo = trim(document.forms["AddEdit"][pContactNo].value);
	if(fnBlank(lContactNo))
	{
		
		return false;
	}
	else if(fnAlpha(lContactNo) || fnSpecialCharacterPhone(lContactNo))
	{
		
		return false;
	}

	return true;
}

function validateZipCodeFieldWizard(pZipCode)
{
	var lZipCode = trim(document.forms["AddEdit"][pZipCode].value);
	if(fnBlank(lZipCode))
	{
		
		return false;
	}
	else if(!fnNumericOnly(lZipCode))
	{
		
		return false;
	}

	return true;
}

function validateTabs(tabIdx){
    ret = true;
    switch(tabIdx){ 
    case 0:
	pPrefix = document.getElementById("Prefix1").name;
	pFirstName = document.getElementById("Fname1").name;
	//pMiddleName = document.getElementById("Mname1").name;
	pLastName = document.getElementById("Lname1").name;
	pAddrLn1 = document.getElementById("Add11").name;
	//pAddrLn2 = document.getElementById("Add21").name;
	pCity =	document.getElementById("City1").name;
	pState = document.getElementById("otherstate1").name;
	pStateDropdown= document.getElementById("State1").name;
	//alert("pState"+pState);
	pCountry = document.getElementById("Country1").name;
	pZip = document.getElementById("ZipC1").name;
	pContactNo = document.getElementById("Contact1").name;

	if(validateBillingShippingAddressWizard(pPrefix, pFirstName, pLastName, pAddrLn1, pCity, pState, pStateDropdown, pCountry, pZip, pContactNo))
		{
		if(!document.getElementById("shipToBill").checked)
		{
			pPrefix = document.getElementById("Prefix").name;
			pFirstName = document.getElementById("Fname").name;
			//pMiddleName = document.getElementById("Mname").name;
			pLastName = document.getElementById("Lname").name;
			pAddrLn1 = document.getElementById("Add1").name;
			//pAddrLn2 = document.getElementById("Add2").name;
			pCity =	document.getElementById("City").name;
			pState = document.getElementById("otherstate2").name;
			pStateDropdown=document.getElementById("State").name;
			pCountry = document.getElementById("Country").name;
			pZip = document.getElementById("ZipC").name;
			pContactNo = document.getElementById("Contact").name;
			if(validateBillingShippingAddressWizard(pPrefix, pFirstName, pLastName, pAddrLn1, pCity, pState, pStateDropdown, pCountry, pZip, pContactNo))
		    ret = true;
			else 
			ret=false;
		}
		
        }else{
          ret = false;
        }
      break;
      }
  return ret;
}
