// JavaScript Document
/*
function Check_On_Submit()
{
	var validated = true
	if (
		CheckForBlank(document.getElementById("tbx_Company_Name"), "Company name cannot be left blank") == false ||
		//CheckForBlank(document.getElementById("tbx_Mailing_Add"), "Mailing Address cannot be left blank") == false ||
		CheckForBlank(document.getElementById("tbx_Street"), "Mailing Address cannot be left blank") == false ||		
		CheckForBlank(document.getElementById("tbx_City"), "City cannot be left blank") == false ||
		CheckForBlank(document.getElementById("tbx_Postal_Code"), "Postal Code cannot be left blank") == false ||		
		CheckForCombo(document.getElementById("cmb_State"), "Select State") == false ||		
		CheckForCombo(document.getElementById("cmb_Country"), "Select Country") == false ||		
		CheckForBlank(document.getElementById("tbx_Phone"), "Telephone No. cannot be left blank") == false ||		
		CheckForBlank(document.getElementById("tbx_fax"), "Fax No. cannot be left blank") == false ||				
		CheckForBlank(document.getElementById("tbx_First_Deligate_Name"), "First Delegate Name cannot be left blank") == false ||				
		CheckForBlank(document.getElementById("tbx_Title"), "First Delegate Title cannot be left blank") == false ||						
		CheckEmailAddress(document.getElementById("tbx_Email"), false) == false || 
		CheckEmailAddress(document.getElementById("tbx_Email_2"), true) == false || 		
		validatePhoneNumber(document.getElementById("tbx_Phone")) == false ||
		validatePhoneNumber(document.getElementById("tbx_fax")) == false  
		)
	validated = false;
	
	var Tot_Field = parseFloat(document.getElementById("tbx_Total").value);
	if(Tot_Field < 1 && validated)
	{
		alert("Please select any one package given"); 
		validated = false;
	}

	return validated;
}
*/
function CheckForBlank(obj, comment)
{
	//var obj = document.getElementById(obj_id);
	if(obj.value == "")
	{
		alert(comment);
		obj.focus();
		return false;
	}
	else 
		return true;
}

function CheckForBlank_Zero(obj,comment)
{
	if(obj.value == "" || eval(obj.value) == "0" )
	{
		alert(comment);
		obj.focus();
		return false;
	}
	else 
		return true;
}

function CheckForCombo(obj, comment)
{
//	var obj = document.getElementById(obj_id);
	if(obj.value == 0)
	{
		alert(comment);
		return false;
	}
	else 
		return true;
}

function CheckEmailAddress(obj, ignore_blank)
{
	var email_length = trim(obj.value).length;
	if (ignore_blank)
	{
		if(email_length < 1)
			return true;
	}
	
	var objMailIdsArr = obj.value.split(",")
		
	for(i = 0; i < objMailIdsArr.length; i++)		
	{
		if(ValidateEmailAddress(objMailIdsArr[i]) == false)
		{
			obj.focus();
			obj.select();
			return false;
		}
	}
	
}

function CompareObjectValues(obj, confirm_obj, comment)
{// Method to compare the values of 2 text fields and display the error message
	if(obj.value == confirm_obj.value)
			return true;
	else 
	{
		alert(comment);
		confirm_obj.focus();
		return false;
	}
}

		
function ValidateEmailAddress(emailStr) 
{
//	var emailStr = obj.value;
	//var emailPat=/^(.+)@(.+)$/
	var emailPat=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null) {
		var textObj =document.getElementById("tbxEmail"); 
		//textObj.style.backgroundColor = "#DFA3D9"
		alert("Please enter a valid email address.")
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	
	// See if "user" is valid 
	/*if (user.match(userPat)==null) {
		var textObj =document.getElementById("tbxEmail"); 
		//textObj.style.backgroundColor = "#DFA3D9"
	    alert("Email address username is not valid.")
	    return false
	}*/

	/* if the e-mail address is at an IP address  */
	/*var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		  for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
				var textObj =document.getElementById("tbxEmail"); 
				//textObj.style.backgroundColor = "#DFA3D9"
		        alert("Email address destination IP is invalid.")
			return false
		    }
	    }
	    return true
	}*/
	
	// Domain is symbolic name
	/*var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		var textObj =document.getElementById("tbxEmail"); 
		//textObj.style.backgroundColor = "#DFA3D9"
		alert("Email address domain name doesn't seem to be valid.")
	    return false
	}*/
	
	/* Make sure that it ends in a three-letter word or a two-letter word, and that hostname preceding domain or country. */
	
	/*var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
	{
		var textObj =document.getElementById("tbxEmail"); 
		//textObj.style.backgroundColor = "#DFA3D9"
	   alert("Email address must end in a three-letter domain, or two letter country.")
	   return false
	}*/
	
	// Make sure there's a host name preceding the domain.
	/*if (len<2) {
		var textObj =document.getElementById("tbxEmail"); 
		//textObj.style.backgroundColor = "#DFA3D9"
	   var errStr="Email address is missing a hostname."
	   alert(errStr)
	   return false
	}*/
	
	// If we've gotten this far, everything's valid!
	return true;
}

function IntIEKeyCap() {
	//alert(window.event.keyCode + " -- IEKeyCap");
	if ((window.event.keyCode < 46) || (window.event.keyCode > 57)) {
		window.event.keyCode = 0
	};
}


function validatePhoneNumber(obj)
{
	var phoneNo = obj.value
	if(phoneNo.length < 7 || phoneNo.length > 32)
	{
		alert("Phone number must be between 7 and 32 characters long.");
		obj.select();
		obj.focus();
		return false;
	}
	else
		return true;
}

function Check_Payment()
{
	var card_Obj = document.getElementById("rdb_Card");
	
	var card_Visa = document.getElementById("rdb_Visa");
	var card_Master = document.getElementById("rdb_Master");
	var card_Amex = document.getElementById("rdb_Amex");
	var card_Name = document.getElementById("tbx_Card_Name");
	var card_Month = document.getElementById("cmb_Month");
	var card_Year = document.getElementById("cmb_Year");
	var card_Number = document.getElementById("tbx_Card_Number");
	
	if (card_Obj.checked)
	{
		card_Visa.disabled = false; 
		card_Master.disabled = false; 
		card_Amex.disabled = false; 
		card_Name.disabled = false; 
		card_Month.disabled = false; 
		card_Year.disabled = false; 
		card_Number.disabled = false; 
	}
	else
	{
		card_Visa.disabled = true; 
		card_Master.disabled = true; 
		card_Amex.disabled = true; 
		card_Name.disabled = true; 
		card_Month.disabled = true; 
		card_Year.disabled = true; 
		card_Number.disabled = true; 
	}
}

function Activate_Deactivate_package(obj, str, num)
{
	Clear_Package();
	Activate_Package(obj, str, num);
}

function Clear_Package()
{
	Clear_Calculation(); 
	//Deactivate_Package(this, 'cbx_1Day', 3);
	//Deactivate_Package(this, 'cbx_2Day', 3);
	Deactivate_All_Packages();
}

function Deactivate_All_Packages()
{
	var chkPackId = "";
	//var returnFlag = true;
	for( var i=0 ; i<=document.forms[0].elements.length-1 ; i++ )
	{
		//alert(document.forms[0].elements[i].type + " - " + document.forms[0].elements[i].name);
		if(document.forms[0].elements[i].type=="radio")
		{
			chkPackId = eval("document.forms[0].elements[" + i + "].id");
			if (chkPackId.indexOf("Day") > 0 )
			{
				cbx_Obj = document.getElementById(chkPackId);	
				cbx_Obj.checked = false;
				cbx_Obj.disabled = true;
			}
		}
	}
}
	
function Clear_package_Selection()
{
	/*
	for (i = 0 ; i < 4; i++)
	{
		var obj_pack = document.getElementById("rdb_Package_" + i);
		obj_pack.checked = false ;
	}
	*/
	var chkPackId = "";
	//var returnFlag = true;
	for( var i=0 ; i<=document.forms[0].elements.length-1 ; i++ )
	{
		//alert(document.forms[0].elements[i].type + " - " + document.forms[0].elements[i].name);
		if(document.forms[0].elements[i].type=="radio")
		{
			chkPackId = eval("document.forms[0].elements[" + i + "].id");
			if (chkPackId.indexOf("Package") > 0 )
			{
				cbx_Obj = document.getElementById(chkPackId);	
				cbx_Obj.checked = false;
				//cbx_Obj.disabled = true;
			}
		}
	}

}
	
function Activate_Package(obj, str, num)
{
	var objValue = obj.value;
	if (objValue != 0 )
	{
		for (i = 0; i < num ; i++)
		{
			cbx_Obj = document.getElementById(str + '_' +i)	
			cbx_Obj.disabled = false;
		}
	}
}
/*
function Deactivate_Package(obj, str, num)
{
	var objValue = obj.value;
	if (objValue != 0 )
	{
		for (i = 0; i < num ; i++)
		{
			cbx_Obj = document.getElementById(str + '_' +i)
			cbx_Obj.checked = false;
			cbx_Obj.disabled = true;
		}
	}
}
*/
function Clear_Calculation()
{
	document.getElementById("tbx_Subtot").value = 0;
	document.getElementById("tbx_GST").value = 0;
	document.getElementById("tbx_Total").value = 0	;
}

function Calculate_Value(mem_value, non_mem_value, GST_Value)
{
	
	var obj_non_mem = document.getElementById("rdb_Member_0");
	var cost_Add = 0 ;
	if (obj_non_mem.checked) 
		cost_Add = non_mem_value;
	else
		cost_Add = mem_value;
		
	//var obj_Sub = parseFloat(document.getElementById("tbx_Subtot").value) + cost_Add  ;
	var obj_Sub = cost_Add  ;
	var obj_GST = obj_Sub * GST_Value; //.06 ;
	var obj_Tot = obj_Sub + obj_GST;
	
	document.getElementById("tbx_Subtot").value = obj_Sub;
	document.getElementById("tbx_GST").value = obj_GST;
	document.getElementById("tbx_Total").value = obj_Tot	;
	
	round2decimals(document.getElementById("tbx_Subtot"));
	round2decimals(document.getElementById("tbx_GST"));
	round2decimals(document.getElementById("tbx_Total"));
}

function round2decimals(obj) 
{
	if( trim(obj.value) != "" ) {
		obj.value = formatCurrencyForDecimals(trim(obj.value), 2);
	}
}

function formatCurrencyForDecimals(original_number, decimals) 
{
	var result1 = original_number * Math.pow(10, decimals);
	var result2 = Math.round(result1);
	var result3 = result2 / Math.pow(10, decimals);
	return pad_with_zeros(result3, decimals);
}

function trim(str) 
{
	//alert(str + " === trim");
	for( lspace=0 ; lspace<str.length ; lspace++ )
		if( str.charAt(lspace)!=' ' )
			break;
	str = str.substring( lspace );
	for( rspace=str.length-1 ; rspace>=0 ; rspace-- )
		if( str.charAt(rspace)!=' ' )
			break;
	str = str.substring( 0, rspace+1 );
	return str;
}


function pad_with_zeros(rounded_value, decimal_places) 
{
	var value_string = rounded_value.toString()
	var decimal_location = value_string.indexOf(".")
	if (decimal_location == -1) {
		decimal_part_length = 0
		value_string += decimal_places > 0 ? "." : ""
	}
	else {
		decimal_part_length = value_string.length - decimal_location - 1
	}
	
	var pad_total = decimal_places - decimal_part_length
	if (pad_total > 0) {
		for (var counter = 1; counter <= pad_total; counter++) 
			value_string += "0"
	}
	return value_string
}

function Check_Payment_Mode(obj)
{
		Clear_Package()
		Clear_package_Selection()
		var card_Obj = document.getElementById("rdb_Card");
		var invoice_Obj = document.getElementById("rdb_Invoice");
		var cheque_Obj = document.getElementById("rdb_Cheque");
		card_Obj.disabled = true
		invoice_Obj.disabled = true
		cheque_Obj.disabled = true
		
		if (obj.value  == 1)
		{
			invoice_Obj.disabled = false
			cheque_Obj.disabled = false
			card_Obj.disabled = false
		}
		else
		{
			card_Obj.disabled = false
			card_Obj.checked = true
		}
		
}

function ValidateField(obj,type,comment) 
{
	var strReg='';
	var objStr = obj.value;
	
	if (obj.value!="")
	{
		if (type=="alphanumaric")
		{	
			strReg=/^[a-zA-Z0-9&\s.\-_'\/\\]+$/
		}
		else if (type=="website")
		{
		    strReg=/[wW]{3}.\w+.\w+/
		}
		else if (type=="value")
		{
		    strReg=/^[0-9\.\-]+$/
		}
		
		var matchArray=objStr.match(strReg)
		if (matchArray==null)
		{
			alert(comment)
			obj.focus();
			return false;
		}
		
	}
	// If we've gotten this far, everything's valid!
	return true;
}