function calculateDuration(strStart,strEnd,strDuration)
{
	fldStart = document.getElementById(strStart);
	fldEnd = document.getElementById(strEnd);
	fldDuration = document.getElementById(strDuration);

	if (fldDuration.value != "365")
	{
		fldEndNone = document.getElementById("txtSTEnd");
		fldStartNone = document.getElementById("txtSTStart");

		if (fldEndNone.value == "NaN/NaN/NaN")
		{
			fldEndNone.value = "";
		}

		if (fldStart.value != "" && fldEnd.value != "")
		{
			var txtYear = "";
			arrStart = fldStart.value.split('/');
			arrEnd = fldEnd.value.split('/');
			if (arrStart[2].length == 2)
			{
				txtYear = "20" + arrStart[2];
			}
			else
			{
				txtYear = arrStart[2];
			}
			intYear = txtYear;
			intMonth = parseInt(arrStart[1]) - 1;
			intDate = arrStart[0];
			var datStart = new Date(intYear, intMonth, intDate);
			
			if (arrEnd[2].length == 2)
			{
				txtYear = "20" + arrStart[2];
			}
			else
			{
				txtYear = arrEnd[2];
			}
			intYear = txtYear;
			intMonth = parseInt(arrEnd[1]) - 1;
			intDate = arrEnd[0];
			var datEnd = new Date(intYear, intMonth, intDate);
			//alert(datStart + ' ' + datEnd)		
			var intDays = Math.round((datEnd.getTime() - datStart.getTime())/(1000*60*60*24)) + 1;
			//alert(intDays)
			if(isNaN(intDays))
			{
				if (fldStart.value != "" && fldEnd.value != "") alert("You must enter a valid Start and End date.");
				return;
			}
			//alert(intDays)
			if (intDays < 0)
			{
				//SetEndDate(2);
				return;
			}
			fldDuration.value = intDays.toString();
		}
    }
    else
    {
		SetEndDateForAMT("txtSTDuration","txtSTStart","txtSTEnd");
    }
}

function SetDuration(strStartField,strEndField,strDurationField) {
	var fld2 = document.getElementById(strDurationField)
	fld2.value = calculateDuration(strStartField,strEndField);
}

function SetEndDate(intDuration,strStart,strEnd)
{
	intDuration = parseInt(intDuration);
	fldStart = document.getElementById(strStart);
	fldEnd = document.getElementById(strEnd);
	
	if (intDuration < 1)
	{	
		fldEnd.value = "";
		return;
	}
	if (fldStart.value != "" && !isNaN(intDuration))
	{
		var txtYear = "";
		arrStart = fldStart.value.split('/');
		if (arrStart[2].length == 2)
		{
			txtYear = "20" + arrStart[2];
		}
		else
		{
			txtYear = arrStart[2];
		}
		var datStart = new Date(txtYear, parseInt(arrStart[1]) - 1, arrStart[0]);
		datStart.setDate(datStart.getDate() + parseInt(intDuration) - 1);

		if (intDuration > 0)
			fldEnd.value = datStart.getDate() + '/' + (datStart.getMonth() + 1) + '/' + datStart.getFullYear();

		calculateDuration(strStart, strEnd, "txtSTDuration");
	}
}

function SetEndDateForAMT(strDuration,strStart,strEnd)
{
	fldDuration = document.getElementById(strDuration);
	fldStart = document.getElementById(strStart);
	fldEnd = document.getElementById(strEnd);
	
	if (fldStart && fldEnd && fldDuration)
	{
		arrStart = fldStart.value.split('/');

		if (arrStart[1].substring(0,1) == "0")
		{
			tempString = arrStart[1].substring(1);
			arrStart[1] = tempString;
		}	

		var datStart = new Date(arrStart[2], parseInt(arrStart[1]) - 1, arrStart[0]);
		
		datStart.setDate(datStart.getDate() + (fldDuration.value - 1));

		day = datStart.getDate();
		if(day<10) day = "0" + day;

		month = datStart.getMonth() + 1;
		if(month<10) month = "0" + month;

		year = datStart.getFullYear();

		if (year < 1999)
		{
			year = year + 100;
		}

		fldEnd.value = day + '/' + month + '/' + year;
	}
}

function TranslateDate(thisfield,strError) {
var retVal = true;
if ((thisfield.value.indexOf('/')==-1) && (thisfield.value!='')) {
var lblError = document.getElementById(strError);
	if ((thisfield.value.length == 6) || (thisfield.value.length == 8)) {
		lblError.innerText='';
		var day = thisfield.value.substring(0,2)
		var mth = thisfield.value.substring(2,4)
		var yr = thisfield.value.substring(4,thisfield.value.length)
		thisfield.value = day + '/' + mth + '/' + yr;		
	}
	else {
		lblError.innerText = 'Accepted date formats: DD/MM/YY, DD/MM/YYYY';
		retVal = false;	
		}
	}
	return retVal;
	}

//trim all whitespace use in onblur
function trimValue(thisfield) {
thisfield.value = thisfield.value.replace(/ /g,""); 
}

function trimAll(sString) {
while (sString.substring(0,1) == ' ')
	{
	sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
	sString = sString.substring(0,sString.length-1);
	}
return sString;
}

//put this into onblur to make all chars uppercase. include 'all' 
//in type parm for all leave blank for first letter only e.g. surnames
function toUpperCase(thisfield,type){
if (thisfield.value.length > 0) {
	var inputString = thisfield;
	if (type=='all') {
	thisfield.value = thisfield.value.replace(thisfield.value,thisfield.value.toUpperCase());
	}
	else {
		//var firstletter = thisfield.value.charAt(0);
		//thisfield.value=thisfield.value.replace(firstletter,firstletter.toUpperCase());
		thisfield.value = inputString.value.capitalize();
		}
	}
}

String.prototype.capitalize = function(){
	return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); } );
};

function changeGender(thisfield,genderfield) {
var fld = document.getElementById(genderfield)
if ((thisfield.value == 'Mr') || (thisfield.value == 'Master') || (thisfield.value == 'Sir')) {
	fld.selectedIndex = 1
	}
	else if ((thisfield.value == 'Mrs') || (thisfield.value == 'Miss') || (thisfield.value == 'Ms')){
	fld.selectedIndex = 2	
	}
	else if ((thisfield.value == '') || (thisfield.value == '0')) {
	fld.selectedIndex = 0	
	}
} 

function commideaPayment(certID,methodID) {
var url = './transaction.aspx?cid=' + certID + '&mid=' + methodID;
var fields = new Array('txtRef','txtStart','txtExpiry','txtIssue','txtSecCode','hidAmt','txtHolder');
var values = new Array (7);
var winfeatures="title:no;dialogWidth:400px;dialogHeight:300px;help:no;toolbars:no;scroll:no;status:no;resizable:no";
for (var i=0;i < fields.length;i++) {
	var thisfield = document.getElementById(fields[i]);
	
	if ((fields[i]=='txtExpiry') || (fields[i]=='txtStart'))	
		{
			values[i] = thisfield.value.replace("/","")			
		}
		else
		{
			values[i] = thisfield.value	
		}
	}
var newwin = window.showModalDialog(url,values,winfeatures);
if (newwin == "1") {self.location.href = './confirmation.aspx'}
}

function commideaMsg(){
var btn = document.getElementById('btnPayment');
btn.style.display='none';
var label = document.getElementById('lblWaitMsg');
label.style.display='inline';
} 

function commideaMsgx(){
var btncontinue = document.getElementById('btnContinue');
btncontinue.style.display='none';
var btnclose = document.getElementById('btnClose');
if (btnclose) {
btnclose.style.display='none';
}
var authcode = document.getElementById('txtAuthCode');
if (authcode) {
authcode.style.display='none';
}
var btncancel = document.getElementById('btnCancel');
if (btncancel) {
btncancel.style.display='none';
}
var label = document.getElementById('lblWaitMessage');
label.style.display='inline';
var label2 = document.getElementById('lblPaymentFeedback');
label2.style.display='none';
} 

function getTransactionValues() {
var fields = new Array('hidPan','hidStart','hidExpiry','hidIssue','hidSecurityCode','hidValue','hidHolder');
	for (var i=0;i < window.dialogArguments.length;i++) {
		var thisfield = document.getElementById(fields[i]);
		thisfield.value = window.dialogArguments[i]
	}
}

function winOptionDesc(strOptionID,strIsHarPur,strIsExcess) {
var winfeatures="Menu=False, Scrollbars=1, Toolbar=False, Width=500, Height=400";
window.open('./option_info.aspx?oid=' + strOptionID + '&hp=' + strIsHarPur + '&e=' + strIsExcess,'',winfeatures);
}

function winMoreInfoDesc(strMoreInfo) {
window.open('./moreInfo/' + strMoreInfo + '.html','',"status=no,toolbar=no,menubar=no,location=no, width=350, height=400");
}

function winMoreInfo(stageNameID) {
    window.open('info.aspx?snid=' + stageNameID, '', "status=no,toolbar=no,menubar=no,location=no, width=350, height=400");
}


function winPolicyDesc(strOptionID,strIsExcess) {
var winfeatures="Menu=False, Scrollbars=1, Toolbar=False, Width=350, Height=400";
window.open(strOptionID,'',winfeatures);
}

function openAddressFinder(fieldprefix) {
window.open("addressfinder.aspx?pref=" + fieldprefix, "AddressFinder", "Menu=False, Toolbar=False, Width=600, Height=400");
return false; 
} 

function getPostcode() {
	var loaded = document.getElementById('hidIsLoaded');
	if (loaded.value == '0') {
		var method;
		var prefix = document.getElementById('hidPrefix');
		var openerPostcode = self.opener.document.getElementById(prefix.value + 'txtPostcode');
		var openerStreet = self.opener.document.getElementById(prefix.value + 'txtAddress1');
		var thisFind = document.getElementById('txtFind');
		if (openerPostcode.value !='') {
			thisFind.value = openerPostcode.value;
			method=1;			
		}
		else {
			thisFind.value = openerStreet.value;
			method=0;
			}
		var rbByPostcode = document.getElementById('rbByPostcode');	
		if (thisFind.value !='') {
			var btnFind = document.getElementById('btnFind');	
			loaded.value = '1';
			var rbByStreet = document.getElementById('rbByStreet');
			if (method == 1) {
			rbByPostcode.checked=true;	
				}
				else {
					rbByStreet.checked=true;
					}										
			btnFind.click();
			}
			else {
			rbByPostcode.checked=true;
			}
	}
}

function setAddressValue(field,value) { 
    var g = document.getElementById(field); 
    g.value = value; 
}
 
 function selectAddress() 
{    
	var addressvalues = new Array(5);
	var d = document.getElementById('hidAddress1'); 
	addressvalues[0]=d.value
    var d = document.getElementById('hidAddress2'); 
	addressvalues[1]=d.value
	var d = document.getElementById('hidAddress3'); 
	addressvalues[2]=d.value
    var d = document.getElementById('hidAddress4'); 
	addressvalues[3]=d.value  
	var d = document.getElementById('hidAddress5'); 
	addressvalues[4]=d.value
    var pcode = document.getElementById('hidPostcode'); 

	//removing blanks from array of address values, so it all shifts upwards in personal section
	var noblanks = new Array()
	var count = 0
	for (var i=0;i < 5;i++) {
		if (addressvalues[i]!='') {
			noblanks[count] = addressvalues[i]
			count++
			}
		}
	var count = noblanks.length
	while (count < 5) {
	noblanks[count] = ""
	count++
	}
	var fldPrefix = document.getElementById('hidPrefix');
	var strPrefix = fldPrefix.value;
	self.opener.setAddressValue(strPrefix + 'txtAddress1','');	
	self.opener.setAddressValue(strPrefix + 'txtAddress2',noblanks[0]);	
	self.opener.setAddressValue(strPrefix + 'txtAddress3',noblanks[1]); 
	self.opener.setAddressValue(strPrefix + 'txtAddress4',noblanks[2]); 
	self.opener.setAddressValue(strPrefix + 'txtAddress5',noblanks[3]); 	    
	self.opener.setAddressValue(strPrefix + 'txtPostcode',pcode.value); 
    var tel = self.opener.document.getElementById(strPrefix + 'txtTelDay'); 
    tel.focus();
    self.close(); 
    return false; 
}
