function NewWindow(mypage, myname, w, h, scroll) {
		var winl = (screen.width - w) / 2;
		var wint = (screen.height - h) / 2;
		winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable';
		win = window.open(mypage, myname, winprops);
		if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}

function copyToParent (itemtext) {
	window.opener.addToParent(itemtext);
	window.close();
}

function validateString(string,msg) {
    if (string.value == "") {
    	alert (unescape(msg));
    	string.focus();
    	return false;
    } else {
    	return true;
    }
    //alert('here');
}

function validateNumber(string,msg)
{
	if (isNaN( parseFloat(string.value)) == true && string.value != '') {
		alert (unescape(msg));
		string.focus();
		return false;
	} else {
		return true;
	}
}

function confirmFilled(string,msg)
{
	if (string.value != '') {
	     var response = window.confirm(unescape(msg));
	     if (response) {
	     	return true;
	     } else {
	     	return false;
	     }
	}
}


function hasOptions(obj) {
	if (obj!=null && obj.options!=null) { return true; }
		return false;
}


function selectUnselectMatchingOptions(obj,regex,which,only) {
	if (window.RegExp) {
		if (which == "select") {
			var selected1=true;
			var selected2=false;
		} else if (which == "unselect") {
			var selected1=false;
			var selected2=true;
		} else {
			return;
		}
		var re = new RegExp(regex);
		if (!hasOptions(obj)) { return; }
		for (var i=0; i<obj.options.length; i++) {
			if (re.test(obj.options[i].text)) {
				obj.options[i].selected = selected1;
			} else {
				if (only == true) {
					obj.options[i].selected = selected2;
					}
			}
		}
	}
}
		

function selectMatchingOptions(obj,regex) {
	selectUnselectMatchingOptions(obj,regex,"select",false);
}

function selectOnlyMatchingOptions(obj,regex) {
	selectUnselectMatchingOptions(obj,regex,"select",true);
}

function unSelectMatchingOptions(obj,regex) {
	selectUnselectMatchingOptions(obj,regex,"unselect",false);
}
	
function sortSelect(obj) {
	var o = new Array();
	if (!hasOptions(obj)) { return; }
	for (var i=0; i<obj.options.length; i++) {
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
		}
	if (o.length==0) { return; }
	o = o.sort( 
		function(a,b) { 
			if ((a.text+"") < (b.text+"")) { return -1; }
			if ((a.text+"") > (b.text+"")) { return 1; }
			return 0;
			} 
		);

	for (var i=0; i<o.length; i++) {
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
		}
}

function selectAllOptions(obj) {
	if (!hasOptions(obj)) { return; }
	for (var i=0; i<obj.options.length; i++) {
		obj.options[i].selected = true;
		}
	}
	
function moveSelectedOptions(from,to) {
	// Unselect matching options, if required
	if (arguments.length>3) {
		var regex = arguments[3];
		if (regex != "") {
			unSelectMatchingOptions(from,regex);
			}
		}
	// Move them over
	if (!hasOptions(from)) { return; }
	for (var i=0; i<from.options.length; i++) {
		var o = from.options[i];
		if (o.selected) {
			if (!hasOptions(to)) { var index = 0; } else { var index=to.options.length; }
			to.options[index] = new Option( o.text, o.value, false, false);
			}
		}
	// Delete them from original
	for (var i=(from.options.length-1); i>=0; i--) {
		var o = from.options[i];
		if (o.selected) {
			from.options[i] = null;
			}
		}
	if ((arguments.length<3) || (arguments[2]==true)) {
		sortSelect(from);
		sortSelect(to);
		}
	from.selectedIndex = -1;
	to.selectedIndex = -1;
	}

function copySelectedOptions(from,to) {
	var options = new Object();
	if (hasOptions(to)) {
		for (var i=0; i<to.options.length; i++) {
			options[to.options[i].value] = to.options[i].text;
			}
		}
	if (!hasOptions(from)) { return; }
	for (var i=0; i<from.options.length; i++) {
		var o = from.options[i];
		//if (o.selected) {
			if (options[o.value] == null || options[o.value] == "undefined" || options[o.value]!=o.text) {
			if (!hasOptions(to)) { var index = 0; } else { var index=to.options.length; }
			
			var newOption = window.opener.document.createElement("OPTION");
			opener.document.Main.rates.options.add(newOption);
			var selectLength = opener.document.Main.rates.length;
			//alert(selectLength);
			opener.document.Main.rates.options[selectLength-1].value = o.value;
			opener.document.Main.rates.options[selectLength-1].text = o.text;
			
			}
	}
}


function moveAllOptions(from,to) {
	selectAllOptions(from);
	if (arguments.length==2) {
		moveSelectedOptions(from,to);
		}
	else if (arguments.length==3) {
		moveSelectedOptions(from,to,arguments[2]);
		}
	else if (arguments.length==4) {
		moveSelectedOptions(from,to,arguments[2],arguments[3]);
		}
	}

function copyAllOptions(from,to) {
	selectAllOptions(from);
	if (arguments.length==2) {
		copySelectedOptions(from,to);
		}
	else if (arguments.length==3) {
		copySelectedOptions(from,to,arguments[2]);
		}
	}

function swapOptions(obj,i,j) {
	var o = obj.options;
	var i_selected = o[i].selected;
	var j_selected = o[j].selected;
	var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);
	o[i] = temp2;
	o[j] = temp;
	o[i].selected = j_selected;
	o[j].selected = i_selected;
	}
	
function moveOptionUp(obj) {
	if (!hasOptions(obj)) { return; }
	for (i=0; i<obj.options.length; i++) {
		if (obj.options[i].selected) {
			if (i != 0 && !obj.options[i-1].selected) {
				swapOptions(obj,i,i-1);
				obj.options[i-1].selected = true;
				}
			}
		}
	}

function moveOptionDown(obj) {
	if (!hasOptions(obj)) { return; }
	for (i=obj.options.length-1; i>=0; i--) {
		if (obj.options[i].selected) {
			if (i != (obj.options.length-1) && ! obj.options[i+1].selected) {
				swapOptions(obj,i,i+1);
				obj.options[i+1].selected = true;
				}
			}
		}
	}

function removeSelectedOptions(from) { 
	if (!hasOptions(from)) { return; }
	for (var i=(from.options.length-1); i>=0; i--) { 
		var o=from.options[i]; 
		if (o.selected) { 
			from.options[i] = null; 
			} 
		} 
	from.selectedIndex = -1; 
	} 

function removeAllOptions(from) { 
	if (!hasOptions(from)) { return; }
	for (var i=(from.options.length-1); i>=0; i--) { 
		from.options[i] = null; 
		} 
	from.selectedIndex = -1; 
	} 

function addOption(obj,text,value,selected) {
	if (obj!=null && obj.options!=null) {
		obj.options[obj.options.length] = new Option(text, value, false, selected);
		}
	}

function SelectList(CONTROL){
	//alert(CONTROL.length);
	for(var i = 0;i < CONTROL.length;i++){
		CONTROL.options[i].selected = true;
	}
}

function CurrencyFormatted(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}

function importDisableOtherButtons(button) {
	window.Main1.client_import_file.disabled = true;
	window.Main2.employee_import_file.disabled = true;
	window.Main3.assignment_import_file.disabled = true;
	//if (button == 'client') {
		if (window.Main1.client_import_file.value != '') {
			window.Main1.client_import_file.disabled = false;
			window.Main2.employee_import_file.disabled = true;
			window.Main3.assignment_import_file.disabled = true;
		} 
	//} else if (button == 'employee') {
		if (window.Main2.employee_import_file.value != '') {
			window.Main1.client_import_file.disabled = true;
			window.Main2.employee_import_file.disabled = false;
			window.Main3.assignment_import_file.disabled = true;
		} 
	//} else {
		if (window.Main3.assignment_import_file.value != '') {
			window.Main1.client_import_file.disabled = true;
			window.Main2.employee_import_file.disabled = true;
			window.Main3.assignment_import_file.disabled = false;
		} 
	//}	
}

// this function is used by generate_pre_payroll_report.php
function setPrePayrollDate () {
	window.Main.payroll_date.value = window.Main.payroll_date_select.options[window.Main.payroll_date_select.selectedIndex].value;
}

/*function doAttachment (filename,tmp_filename,size,type) {
	var opener = window.opener;
	opener.addAttachment(filename,tmp_filename,size,type);
	window.close();
}*/

function displayAttachment (location) {
	if (window.Main.attachments.selectedIndex >= 0) {
		itemval = window.Main.attachments[window.Main.attachments.selectedIndex].value;
		itemarr = itemval.split("|");
		//alert(itemval);
		id = itemarr[0];
		if (id == '') {
			alert ('This attachment has not been submitted to TSCR yet, please Save the invoice first before viewing.')
		} else {
			NewWindow(location + "attachment/attachment_submit.php?display_file=true&id=" + id + "&status=New","attachments","600","180","yes");
		}
	} else {
		alert ('Please highlight the attachment you want to view.');
	}

}


