var errboxbg = '#FF0000';
var errboxcl = '#000000';

var norboxbg = '#9BD7FF';
var norboxcl = '#000000';

var XMLHttpRequestObject = false;
if (window.XMLHttpRequest) {
	XMLHttpRequestObject = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
	XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");	
}        
function changeOpt(otype, ovalue) {
	fld = document.getElementById(otype+'_field');
	if(ovalue == "between")
		fld.style.display = 'inline';
	else
		fld.style.display = 'none';
}
function toggleSection(section) {
	strSection = section + 'logs';
	curs = document.getElementById(strSection).style.display;
	news = curs == "none" ? "block" : "none";
	document.getElementById(strSection).style.display = news;
}
function logResolved(log_ref, practice_no) {
	resultSet = document.getElementById('AJAXResult');
	loadingBox = document.getElementById('AJAXLoading');
	loadingBox.style.display = 'block';
	resultSet.style.display = 'none';
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("POST", "AjaxCallResolved.php", true);
		XMLHttpRequestObject.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		XMLHttpRequestObject.onreadystatechange = function() {
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				loadingBox.style.display = 'none';
				if(XMLHttpRequestObject.responseText != 1) {
					alert("An error occurred processing your request:\r\n"+ XMLHttpRequestObject.responseText);
				}
				else {
					resultSet.style.display = 'block';
				}
			}
		}
		XMLHttpRequestObject.send("log_ref=" + log_ref + "&practice_no=" + practice_no);
	}		
}
function docDo(action, id) {
	if(action == 'print') {
		var newwin = 'printdoc.php';
		var height = '700';
		var width = '850';
	}
	newwin += '?doc_id='+id;
	window.open(newwin, "docWin", "menubar=no, location=no, status=no, toolbar=no, height="+height+", width="+width+"");
}
function EmailLog(log_ref, practice_no) {
	window.open('callEmail.php?log_ref='+ log_ref +'&practice='+ practice_no, 'logEmailWindow', "menubar=yes, location=yes, status=no, toolbar=yes, height=500, width=600");
}
function __doPostBack() {
	history.go(-1);	
}
function __doChangePassword() {
	var pObj = document.getElementById('docplacer');
	var dObj = document.getElementById('changepass');
	pObj.style.opacity = 5;
	pObj.style.filter = 'alpha(opacity=' + 5 + ')';
	dObj.style.display = 'block';
}
function __doClrChgPassFrm() {	
	var pObj = document.getElementById('docplacer');
	var dObj = document.getElementById('changepass');
	pObj.style.opacity = 10;
	pObj.style.filter = 'alpha(opacity=' + 10 + ')';
	dObj.style.display = 'none';
}
function verifyCloseContact() {
	var form = document.close_client;
	if(form.confirm.checked == false)
		alert("You have not confirmed you want to close this client.\n\rYou must check the box to continue");
	else
		form.submit();
	return;
}
function validateForm() {
	document.getElementById('errormsg').style.display = 'none';
	if(document.getElementById('username').value == '') {
		document.getElementById('errormsg').innerHTML = 'You have not entered a username';
		document.getElementById('errormsg').style.display = 'block';
		document.getElementById('username').focus();
		return false;
	}
	if(document.getElementById('user_fullname').value == '') {
		document.getElementById('errormsg').innerHTML = 'You have not entered a full name';
		document.getElementById('errormsg').style.display = 'block';
		document.getElementById('user_fullname').focus();
		return false;
	}
	if(document.getElementById('user_password').value != document.getElementById('user_confpw').value) {
		document.getElementById('errormsg').innerHTML = 'The two passwords do not match';
		document.getElementById('errormsg').style.display = 'block';
		document.getElementById('user_password').focus();
		return false;
	}
	if(document.getElementById('user_email').value == '') {
		document.getElementById('errormsg').innerHTML = 'You have not entered an e-mail address';
		document.getElementById('errormsg').style.display = 'block';
		document.getElementById('user_email').focus();
		return false;
	}
	document.getElementById('addUser').submit();
	return true;
}
function validatePassword() {
	document.getElementById('errorMsg').style.display = 'none';
	if(document.getElementById('oldPw').value == '') {
		document.getElementById('errorMsg').innerHTML = '<li>You have not entered your old password</li>';
		document.getElementById('errorMsg').style.display = 'block';
		document.getElementById('oldPw').focus();
		return false;
	}
	if(document.getElementById('newPw').value != document.getElementById('confPw').value) {
		document.getElementById('errorMsg').style.display = 'block';
		return false;
	}
	document.getElementById('chPass').value = '1';
	return true;	
}
function uploadManual() {
	document.getElementById('AJAXLoading').style.display = 'block';
	document.uploadManualForm.submit();
	return;
}
function togglePwForm() {
	curs = document.getElementById('pwForm').style.display;
	news = (curs == 'block') ? 'none' : 'block';
	document.getElementById('pwForm').style.display = news;
	return true;
}
function toggleNewUserForm() {
	curs = document.getElementById('userForm').style.display;
	news = (curs == 'block') ? 'none' : 'block';
	document.getElementById('userForm').style.display = news;
	return true;
}
function toggleListUsers() {
	curs = document.getElementById('userList').style.display;
	news = (curs == 'block') ? 'none' : 'block';
	document.getElementById('userList').style.display = news;
	return true;
}
function toggleAcknButton() {
	box = document.getElementById('acknbox').checked;
	if(box)
		document.getElementById('submitAcknowledge').disabled = false;
	else
		document.getElementById('submitAcknowledge').disabled = true;
	return;
}
function CheckPassChange() {
	var passbox = document.editcontact.user_password.value;
	if(passbox.length > 0) {
		if(confirm("E-mail user with new password?"))
			document.editcontact.send_email.value = '1';
		else
			document.editcontact.send_email.value = '0';
	}
	return true;
}
function CheckBlankEmail() {
	if(document.editcontact.user_email.value == '') {
		alert("You cannot leave the e-mail box empty");
		document.editcontact.user_email.style.backgroundColor = '#FF0000';
		document.editcontact.user_email.style.color = '#FFFFFF';
		document.editcontact.user_email.focus();
		FormError = 1;
	}
	return true;			
}
function ValidateContactForm() {
	FormError = 0;
	CheckPassChange();
	CheckBlankEmail();
	if(FormError == 0)
		document.editcontact.submit();
	return true;
}
function validateUserForm() {
	document.getElementById('errorMsgUsr').style.display = 'none';
	var err = false;
	if(document.getElementById('username').value == '') {
		document.getElementById('errorMsgUsr').innerHTML = '<li>You have not entered a username</li>';
		document.getElementById('errorMsgUsr').style.display = 'block';
		document.getElementById('username').focus();
		var err = true;
		return false;
	}
	if(document.getElementById('user_fullname').value == '') {
		document.getElementById('errorMsgUsr').innerHTML = '<li>You have not entered a full name</li>';
		document.getElementById('errorMsgUsr').style.display = 'block';
		document.getElementById('user_fullname').focus();
		var err = true;
		return false;
	}
	if(document.getElementById('user_pass').value == '') {
		document.getElementById('errorMsgUsr').innerHTML = '<li>You have not entered a password</li>';
		document.getElementById('errorMsgUsr').style.display = 'block';
		document.getElementById('user_pass').focus();
		var err = true;
		return false;
	}
	if(document.getElementById('user_email').value == '') {
		document.getElementById('errorMsgUsr').innerHTML = '<li>You have not entered an e-mail address</li>';
		document.getElementById('errorMsgUsr').style.display = 'block';
		document.getElementById('user_email').focus();
		var err = true;
		return false;
	}
	if(document.getElementById('user_confpass').value == '') {
		document.getElementById('errorMsgUsr').innerHTML = '<li>You must confirm the password</li>';
		document.getElementById('errorMsgUsr').style.display = 'block';
		document.getElementById('user_confpass').focus();
		var err = true;
		return false;
	}
	if(document.getElementById('user_pass').value != document.getElementById('user_confpass').value) {
		document.getElementById('errorMsgUsr').innerHTML = '<li>The two passwords do not match</li>';
		document.getElementById('errorMsgUsr').style.display = 'block';
		document.getElementById('user_confpass').focus();
		var err = true;
		return false;
	}
	if(!err) {
		document.getElementById('newUser').value = '1';
		return true;
	}
}
function editUser(usrid) {
	document.getElementById('usrId').value = usrid;
	document.userList.submit();
}
function updateVersionDD(prdSelect) {
	var LoadBox = document.getElementById('AjaxLoadVersions');
	LoadBox.style.display = 'block';
	var randomnumber=Math.floor(Math.random()*1091)
	var productDD = prdSelect.options[prdSelect.selectedIndex].value;
	var versionObj = document.getElementById('versionDD');
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("GET", "AjaxVersionPopulate.php?r=" + randomnumber + "&productDD="+productDD, true);
		XMLHttpRequestObject.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		XMLHttpRequestObject.onreadystatechange = function() {
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				var VersionXML = XMLHttpRequestObject.responseText;
				versionObj.length = 0;
				versionObj.options[0] = new Option('Not Selected', '0');
				try {
					xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
					xmlDoc.async="false";
					xmlDoc.loadXML(VersionXML);
				}

				catch(e) {
					try {
					  parser=new DOMParser();
					  xmlDoc=parser.parseFromString(VersionXML,"text/xml");
					}
					catch(e) {
					  alert(e.message);
					  return;
					}
				}
				var Versions = xmlDoc.getElementsByTagName("version");
				for(var i = 0; i < Versions.length; i++) {
					VersionID = xmlDoc.getElementsByTagName("id")[i].childNodes[0].nodeValue
					VersionName = xmlDoc.getElementsByTagName("name")[i].childNodes[0].nodeValue
					versionObj.options[i+1] = new Option(VersionName, VersionID);
				}
				LoadBox.style.display = 'none';
				versionObj.focus();
			}
		}
		XMLHttpRequestObject.send(null);
	}	
	else
		alert("Error; unable to populate version dropdown menu");
}
function checkDocForm(method) {
	DropDowns = new Array('versionDD', 'productDD', 'doctypeDD');
	DropDownsDescs = new Array('product version', 'product', 'document type');
	Fields = new Array('doc_title');
	FieldDescs = new Array('document title');
	TextAreas = new Array('doc_description', 'doc_procedure');
	TextAreasDescs = new Array('document description', 'document procedure');
	Error = new Array();
	for(var i = 0; i < DropDowns.length; i++) {
		ThisEl = document.getElementById(DropDowns[i]);
		if(ThisEl.options[ThisEl.selectedIndex].value == '0')
			Error.push("You have not selected a " + DropDownsDescs[i]);
	}
	for(var i = 0; i < Fields.length; i++) {
		ThisEl = document.getElementById(Fields[i]);
		if(ThisEl.value == '')
			Error.push("You have not entered a " + FieldDescs[i]);
	}
	/*
	for(var i = 0; i < TextAreas.length; i++) {
		ThisEl = document.getElementById(TextAreas[i]);
		if(ThisEl.innerHTML == '')
			Error.push("You have not entered a " + TextAreasDescs[i]);
	}
	*/
	if(Error.length > 0) {
		ErrorMsg = "Cannot process document because:\n\n";
		for(var j = 0; j < Error.length; j++)
			ErrorMsg += " - " + Error[j] + "\n";
		alert(ErrorMsg);
		return false;
	}
	else {
		document.getElementById('subMethod').value = method;
		myOnSubmitEventHandler();
		document.doc_form.submit();
		return true;
	}
}
function myOnSubmitEventHandler() {

	try {
		if(typeof(document.getElementById('editor1').EscapeUnicode) == 'undefined') {
			throw "Error"
		} else {
			document.getElementById('editor1').EscapeUnicode = true;
			document.getElementById('xhtml1').value = document.getElementById('editor1').value;
		}			
		if(typeof(document.getElementById('editor2').EscapeUnicode) == 'undefined') {
			throw "Error"
		} else {
			document.getElementById('editor2').EscapeUnicode = true;
			document.getElementById('xhtml2').value = document.getElementById('editor2').value;
		}			
		if(typeof(document.getElementById('editor3').EscapeUnicode) == 'undefined') {
			throw "Error"
		} else {
			document.getElementById('editor3').EscapeUnicode = true;
			document.getElementById('xhtml3').value = document.getElementById('editor3').value;
		}			
		if(typeof(document.getElementById('editor4').EscapeUnicode) == 'undefined') {
			throw "Error"
		} else {
			document.getElementById('editor4').EscapeUnicode = true;
			document.getElementById('xhtml4').value = document.getElementById('editor4').value;
		}			

	}
	catch(er) {
		document.getElementById('xhtml1').value = document.getElementById('doc_equipment').value;
		document.getElementById('xhtml2').value = document.getElementById('doc_description').value;
		document.getElementById('xhtml3').value = document.getElementById('doc_notes').value;
		document.getElementById('xhtml4').value = document.getElementById('doc_procedure').value;

	}
}
function ResolveXStandard() {
	var Contents = document.getElementById("objcontent");
	for(var i = 0; i < Contents.length; i++) {
		var ThisName = Contents[i].name;
		var ThisValue = Contents[i].value;
		try  {
			if(typeof(Contents[i].EscapeUnicode) == 'undefined') {
				throw "Error";	
			}
			else {	
				Contents[i].EscapeUnicode = true;
				document.getElementById('xhtml'+i).value = ThisValue;
			}
		}
		catch(er) {
			document.getElementById('xhtml'+i).value = document.getElementById('content'+i).value;		
		}
	}
}
function updateAbbr(abbr) {
	document.getElementById('abbr').innerHTML = abbr;
}
function ShowSearchForm() {
	var resultLoad = document.getElementById('resultload');
	var resultSet = document.getElementById('resultset');
	var resultBox = document.getElementById('result');
	var searchForm = document.getElementById('searchform');
	searchForm.style.display = 'block';
	resultLoad.style.display = 'none';
	resultSet.style.display = 'none';
	resultBox.style.display = 'none';
	form = document.search_form;
	form.authorDD.selectedIndex = 0;
	form.doctypeDD.selectedIndex = 0;
	form.dateRangeDD.selectedIndex = 0;
	document.getElementById('search_text').value = '';
	form.productDD.selectedIndex = 0;
	form.doc_id.value = '';
}
function XMLHttpSearchRequest() {
	var resultLoad = document.getElementById('resultload');
	var resultSet = document.getElementById('resultset');
	var resultBox = document.getElementById('result');
	var searchForm = document.getElementById('searchform');
	form = document.search_form;
	authorDD = form.authorDD.options[form.authorDD.selectedIndex].value;
	doctypeDD = form.doctypeDD.options[form.doctypeDD.selectedIndex].value;
	dateRangeDD = form.dateRangeDD.options[form.dateRangeDD.selectedIndex].value;
	search_text = document.getElementById('search_text').value;
	productDD = form.productDD.options[form.productDD.selectedIndex].value;
	doc_id = form.doc_id.value;
	
	if(search_text.length > 0 && search_text.length < 4) {
		alert("Please specify at least 4 characters to use the text search feature");
		document.getElementById('search_text').focus();
	}
	else {
		searchForm.style.display = 'none';
		resultLoad.style.display = 'block';
		resultSet.style.display = 'none';
		resultBox.style.display = 'none';
		var randomnumber=Math.floor(Math.random()*1091)
		if(XMLHttpRequestObject) {
			XMLHttpRequestObject.open("GET", "AjaxSearch.php?r=" + randomnumber + "&authorDD="+authorDD+"&doctypeDD="+doctypeDD+"&dateRangeDD="+dateRangeDD+"&search_text="+search_text+"&doc_id="+doc_id+"&productDD="+productDD, true);
			XMLHttpRequestObject.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
			XMLHttpRequestObject.onreadystatechange = function() {
				if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
					resultSet.innerHTML = XMLHttpRequestObject.responseText;
					resultLoad.style.display = 'none';
					resultBox.style.display = 'block';
					resultSet.style.display = 'block';
				}
			}
			XMLHttpRequestObject.send(null);
		}	
	}
}

function pageWidth() {
	return window.innerWidth != null? window.innerWidth : document.documentElement && document.documentElement.clientWidth ?       document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
} 
function pageHeight() {
	return  window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ?  document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
}
function posLeft() {
	return typeof window.pageXOffset != 'undefined' ? window.pageXOffset :document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
}
function posTop() {
	return typeof window.pageYOffset != 'undefined' ?  window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
} 
function posRight() {
	return posLeft()+pageWidth();
} 
function posBottom() {
	return posTop()+pageHeight();
}
function showRecipients(mailshot_no) {
	resultSet = document.getElementById('AJAXResult');
	resultSet.style.display = 'none';
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("POST", "AjaxMailshotRecipients.php", true);
		XMLHttpRequestObject.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		XMLHttpRequestObject.onreadystatechange = function() {
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				resultSet.innerHTML = XMLHttpRequestObject.responseText;
				resultSet.style.display = 'block';
				resultSet.style.top = posTop() + 100;
				resultSet.style.height = document.getElementById('contactlist').offsetHeight + 150;
				resultSet.style.width = document.getElementById('contactlist').offsetWidth + 40;
			}
		}
		XMLHttpRequestObject.send("msid=" + mailshot_no);
	}		
}
function editSupplierSubmit() {
	conf = document.editSupplierAJAX.delete_supplier.checked == true ? confirm('Do you really want to delete this supplier?') : true;
	if(conf) {
		document.getElementById('AJAXResult').style.display = 'none';
		document.editSupplierAJAX.submit();
	}
}
function editSupplier(supplier_no) {
	loading = document.getElementById('AJAXLoading');
	resultSet = document.getElementById('AJAXResult');
	resultSet.style.display = 'none';
	loading.style.display = 'block';
	loading.style.top = posTop() + 100;
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("POST", "AjaxEditSupplier.php?r=" + Math.floor(Math.random()*1132), true);
		XMLHttpRequestObject.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		XMLHttpRequestObject.onreadystatechange = function() {
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				resultSet.innerHTML = XMLHttpRequestObject.responseText;
				loading.style.display = 'none';
				resultSet.style.display = 'block';
				resultSet.style.top = posTop() + 100;
				resultSet.style.height = document.getElementById('supplierdata').offsetHeight + 50;
				//resultSet.style.width = document.getElementById('supplierdata').offsetWidth + 40;
			}
		}
		XMLHttpRequestObject.send("supplier_no=" + supplier_no);
	}	
}
function showContacts(client_no) {
	resultSet = document.getElementById('clientcontacts');
	resultSet.style.display = 'none';
	if(XMLHttpRequestObject) {
		XMLHttpRequestObject.open("POST", "AjaxContacts.php", true);
		XMLHttpRequestObject.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
		XMLHttpRequestObject.onreadystatechange = function() {
			if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
				resultSet.innerHTML = XMLHttpRequestObject.responseText;
				resultSet.style.display = 'block';
				resultSet.style.top = posTop() + 100;
				resultSet.style.height = document.getElementById('contactlist').offsetHeight + 40;
			}
		}
		XMLHttpRequestObject.send("g=" + client_no);
	}	
}
function loadCall() {
	var callsel = document.getElementById('log_ref');
	var callid = callsel.options[callsel.selectedIndex].value;
	var practice = document.getElementById('practice_no').value;
	var url = '/calls/callView.php?log_ref=' + callid + '&practice='+practice;
	if(callid == '0')
		alert("Pick a call from the dropdown before clicking View");
	else
		window.location = url;
}
function showDevCalls() {
	var conf = confirm('The following calls have been assigned to our Development Team. \r\rWe display these calls so you can see the status, however we cannot guarantee any timeframe of completion unless something has already been discussed with you directly.\r\r By clicking OK you agree to use these calls for reference only');
	if(conf) {
		document.getElementById('devcalls').style.display = 'block';
		document.getElementByid('devcallnk').style.display = 'none';
	}
	else
		return;
}
function toggleCalls(type) {
	cur = document.getElementById('calls'+type).style.display;
	news = cur == 'block' ? 'none' : 'block';
	document.getElementById('calls'+type).style.display = news;
	return;
}
var datePickerDivID = "datepicker";
var iFrameDivID = "datepickeriframe";

var dayArrayShort = new Array('Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa');
var dayArrayMed = new Array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
var dayArrayLong = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
var monthArrayShort = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
var monthArrayMed = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec');
var monthArrayLong = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
 
var defaultDateSeparator = "-";
var defaultDateFormat = "ymd";
var dateSeparator = defaultDateSeparator;
var dateFormat = defaultDateFormat;


function displayDatePicker(dateFieldName, displayBelowThisObject, dtFormat, dtSep)
{
  var targetDateField = document.getElementsByName (dateFieldName).item(0);
 
  if (!displayBelowThisObject)
    displayBelowThisObject = targetDateField;
 
  if (dtSep)
    dateSeparator = dtSep;
  else
    dateSeparator = defaultDateSeparator;
 
  if (dtFormat)
    dateFormat = dtFormat;
  else
    dateFormat = defaultDateFormat;
 
  var x = displayBelowThisObject.offsetLeft;
  var y = displayBelowThisObject.offsetTop + displayBelowThisObject.offsetHeight ;
 
  var parent = displayBelowThisObject;
  while (parent.offsetParent) {
    parent = parent.offsetParent;
    x += parent.offsetLeft;
    y += parent.offsetTop ;
  }
 
  drawDatePicker(targetDateField, x, y);
}

function drawDatePicker(targetDateField, x, y)
{
  var dt = getFieldDate(targetDateField.value );
 
  if (!document.getElementById(datePickerDivID)) {
    var newNode = document.createElement("div");
    newNode.setAttribute("id", datePickerDivID);
    newNode.setAttribute("class", "dpDiv");
    newNode.setAttribute("style", "visibility: hidden;");
    document.body.appendChild(newNode);
  }
 
  var pickerDiv = document.getElementById(datePickerDivID);
  pickerDiv.style.position = "absolute";
  pickerDiv.style.left = x + "px";
  pickerDiv.style.top = y + "px";
  pickerDiv.style.visibility = (pickerDiv.style.visibility == "visible" ? "hidden" : "visible");
  pickerDiv.style.display = (pickerDiv.style.display == "block" ? "none" : "block");
  pickerDiv.style.zIndex = 10000;
 
  refreshDatePicker(targetDateField.name, dt.getFullYear(), dt.getMonth(), dt.getDate());
}


function refreshDatePicker(dateFieldName, year, month, day)
{
  var thisDay = new Date();
 
  if ((month >= 0) && (year > 0)) {
    thisDay = new Date(year, month, 1);
  } else {
    day = thisDay.getDate();
    thisDay.setDate(1);
  }
 
  var crlf = "\r\n";
  var TABLE = "<table cols=7 class='dpTable'>" + crlf;
  var xTABLE = "</table>" + crlf;
  var TR = "<tr class='dpTR'>";
  var TR_title = "<tr class='dpTitleTR'>";
  var TR_days = "<tr class='dpDayTR'>";
  var TR_todaybutton = "<tr class='dpTodayButtonTR'>";
  var xTR = "</tr>" + crlf;
  var TD = "<td class='dpTD' onMouseOut='this.className=\"dpTD\";' onMouseOver=' this.className=\"dpTDHover\";' ";    
  var TD_title = "<td colspan=5 class='dpTitleTD'>";
  var TD_buttons = "<td class='dpButtonTD'>";
  var TD_todaybutton = "<td colspan=7 class='dpTodayButtonTD'>";
  var TD_days = "<td class='dpDayTD'>";
  var TD_selected = "<td class='dpDayHighlightTD' onMouseOut='this.className=\"dpDayHighlightTD\";' onMouseOver='this.className=\"dpTDHover\";' ";
  var xTD = "</td>" + crlf;
  var DIV_title = "<div class='dpTitleText'>";
  var DIV_selected = "<div class='dpDayHighlight'>";
  var xDIV = "</div>";
 
  var html = TABLE;

  html += TR_title;
  html += TD_buttons + getButtonCode(dateFieldName, thisDay, -1, "&lt;") + xTD;
  html += TD_title + DIV_title + monthArrayLong[ thisDay.getMonth()] + " " + thisDay.getFullYear() + xDIV + xTD;
  html += TD_buttons + getButtonCode(dateFieldName, thisDay, 1, "&gt;") + xTD;

  html += xTR;
 
  html += TR_days;
  for(i = 0; i < dayArrayShort.length; i++)
    html += TD_days + dayArrayShort[i] + xTD;
  html += xTR;
 
  html += TR;
 
  for (i = 0; i < thisDay.getDay(); i++)
    html += TD + "&nbsp;" + xTD;
 
  do {
    dayNum = thisDay.getDate();
    TD_onclick = " onclick=\"updateDateField('" + dateFieldName + "', '" + getDateString(thisDay) + "');\">";
    
    if (dayNum == day)
      html += TD_selected + TD_onclick + DIV_selected + dayNum + xDIV + xTD;
    else
      html += TD + TD_onclick + dayNum + xTD;
    
    if (thisDay.getDay() == 6)
      html += xTR + TR;
    
    thisDay.setDate(thisDay.getDate() + 1);
  } while (thisDay.getDate() > 1)
 
  if (thisDay.getDay() > 0) {
    for (i = 6; i > thisDay.getDay(); i--)
      html += TD + "&nbsp;" + xTD;
  }
  html += xTR;
 
  var today = new Date();
  var todayString = "Today is " + dayArrayMed[today.getDay()] + ", " + monthArrayMed[ today.getMonth()] + " " + today.getDate();
  html += TR_todaybutton + TD_todaybutton;
  html += "<button class='dpTodayButton' onClick='refreshDatePicker(\"" + dateFieldName + "\");'>this month</button> ";
  html += "<button class='dpTodayButton' onClick='updateDateField(\"" + dateFieldName + "\");'>close</button>";
  html += xTD + xTR;
 
  html += xTABLE;
 
  document.getElementById(datePickerDivID).innerHTML = html;
  adjustiFrame();
}

function getButtonCode(dateFieldName, dateVal, adjust, label)
{
  var newMonth = (dateVal.getMonth () + adjust) % 12;
  var newYear = dateVal.getFullYear() + parseInt((dateVal.getMonth() + adjust) / 12);
  if (newMonth < 0) {
    newMonth += 12;
    newYear += -1;
  }
 
  return "<button class='dpButton' onClick='refreshDatePicker(\"" + dateFieldName + "\", " + newYear + ", " + newMonth + ");'>" + label + "</button>";
}

function getDateString(dateVal)
{
  var dayString = "00" + dateVal.getDate();
  var monthString = "00" + (dateVal.getMonth()+1);
  dayString = dayString.substring(dayString.length - 2);
  monthString = monthString.substring(monthString.length - 2);
 
  switch (dateFormat) {
    case "dmy" :
      return dayString + dateSeparator + monthString + dateSeparator + dateVal.getFullYear();
    case "ymd" :
      return dateVal.getFullYear() + dateSeparator + monthString + dateSeparator + dayString;
    case "mdy" :
    default :
      return monthString + dateSeparator + dayString + dateSeparator + dateVal.getFullYear();
  }
}

function getFieldDate(dateString)
{
  var dateVal;
  var dArray;
  var d, m, y;
 
  try {
    dArray = splitDateString(dateString);
    if (dArray) {
      switch (dateFormat) {
        case "dmy" :
          d = parseInt(dArray[0], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[2], 10);
          break;
        case "ymd" :
          d = parseInt(dArray[2], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[0], 10);
          break;
        case "mdy" :
        default :
          d = parseInt(dArray[1], 10);
          m = parseInt(dArray[0], 10) - 1;
          y = parseInt(dArray[2], 10);
          break;
      }
      dateVal = new Date(y, m, d);
    } else if (dateString) {
      dateVal = new Date(dateString);
    } else {
      dateVal = new Date();
    }
  } catch(e) {
    dateVal = new Date();
  }
 
  return dateVal;
}

function splitDateString(dateString)
{
  var dArray;
  if (dateString.indexOf("/") >= 0)
    dArray = dateString.split("/");
  else if (dateString.indexOf(".") >= 0)
    dArray = dateString.split(".");
  else if (dateString.indexOf("-") >= 0)
    dArray = dateString.split("-");
  else if (dateString.indexOf("\\") >= 0)
    dArray = dateString.split("\\");
  else
    dArray = false;
 
  return dArray;
}

function updateDateField(dateFieldName, dateString)
{
  var targetDateField = document.getElementsByName (dateFieldName).item(0);
  if (dateString)
    targetDateField.value = dateString;
 
  var pickerDiv = document.getElementById(datePickerDivID);
  pickerDiv.style.visibility = "hidden";
  pickerDiv.style.display = "none";
 
  adjustiFrame();
  targetDateField.focus();
  if ((dateString) && (typeof(datePickerClosed) == "function"))
    datePickerClosed(targetDateField);
}

function adjustiFrame(pickerDiv, iFrameDiv)
{
  var is_opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
  if (is_opera)
    return;
  
  try {
    if (!document.getElementById(iFrameDivID)) {
      var newNode = document.createElement("iFrame");
      newNode.setAttribute("id", iFrameDivID);
      newNode.setAttribute("src", "javascript:false;");
      newNode.setAttribute("scrolling", "no");
      newNode.setAttribute ("frameborder", "0");
      document.body.appendChild(newNode);
    }
    
    if (!pickerDiv)
      pickerDiv = document.getElementById(datePickerDivID);
    if (!iFrameDiv)
      iFrameDiv = document.getElementById(iFrameDivID);
    
    try {
      iFrameDiv.style.position = "absolute";
      iFrameDiv.style.width = pickerDiv.offsetWidth + "px";
      iFrameDiv.style.height = pickerDiv.offsetHeight + "px";
      iFrameDiv.style.top = pickerDiv.style.top + "px";
      iFrameDiv.style.left = pickerDiv.style.left + "px";
      iFrameDiv.style.zIndex = pickerDiv.style.zIndex - 1;
      iFrameDiv.style.visibility = pickerDiv.style.visibility ;
      iFrameDiv.style.display = pickerDiv.style.display;
    } catch(e) {
    }
 
  } catch (ee) {
  }
 
}
function showInactiveWindow() {
	var windowurl = 'http://support.selectlegal.co.uk/inactivewarn.php';
	this.window.name = 'mainwin';
	window.open(windowurl, "_blank", "menubar=no, location=no, status=no, toolbar=no, height=250, width=450, directories=no");
}
function userEndSession() {
	opener.location = './inactive.php';
	self.close();
}
function qCheckFields() {
	form = document.evaluation;
	var i = 0;
	var msg = 'There are some errors with your evaluation:\r\r';
	if(form.user_name.value == '') {
		msg += "\t - You must enter your name\r";
		i++;
	}
	if(form.user_position.value == '') {
		msg += "\t - You must enter your position within your firm\r";	
		i++;
	}
	if(i > 0)
		alert(msg);
	else
		if(confirm("Submit your evaluation response now?"))
			form.submit();
		else
			return;
}