var openedWin = null;
var wpercent = 100;

function launch(){
	
	var args = launch.arguments
	var url = args[0]
	var width = args[1]
	var height = args[2]
	
	if (!url || !width || !height) {
		alert("Error");
	} else {
		var scr_w = screen.availWidth
		var scr_h = screen.availHeight
		var target_w = 0
		var target_h = 0
		wpercent = 100

		if(width >= scr_w || height >= scr_h){
			if((width+8) >= (height+27)){
				target_w = scr_w - 8	//target width is screen width - 8
				wpercent = Math.floor((target_w * 100)/width) //get percentage scaled down
				target_h = Math.floor((height * wpercent)/100) - 27 //scale height to  percentage then subtract standard title bar height
				wpercent = Math.floor((target_h * 100)/height)	//re-adjust percentage
				target_w = Math.floor((width * wpercent)/100)	//scale width to new percentage
				width = target_w
				height = target_h
			}else if((height+27) > (width+8)){
				target_h = scr_h - 27
				wpercent = Math.floor((target_h * 100)/height)
				target_w = Math.floor((width * wpercent)/100) - 8
				wpercent = Math.floor((target_w * 100)/width)
				target_h = Math.floor((height * wpercent)/100)
				width = target_w
				height = target_h
			}
		}
		_launch(url, width, height, args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
	}
}

function _launch(){
	closeChild()
	
	var args = _launch.arguments
	var url = args[0]
	var width = args[1]
	var height = args[2]
	var resizable = args[3] ? "yes" : "no"
	var scrollbars = args[4] ? "yes" : "no"
	var toolbar = args[5] ? "yes" : "no"
	var menubar = args[6] ? "yes" : "no"
	var status = args[7] ? "yes" : "no"
	var address = args[8] ? "yes" : "no"
	var directories = args[9] ? "yes" : "no"
	
	var NewX = Math.max(0, Math.floor((screen.availWidth-(width+8))/2));
	var NewY = Math.max(0, Math.floor((screen.availHeight-(height+27))/2));
	
	var params = ''
	
	params += "width="+width // 1
	params += ",height="+height // 2
	params += ",screenx="+NewX
	params += ",screeny="+NewY
	params += ",left="+NewX
	params += ",top="+NewY
	params += ",resizable="+resizable // 3
	params += ",scrollbars="+scrollbars // 4
	params += ",toolbar="+toolbar // 5
	params += ",menubar="+menubar // 6
	params += ",status="+status // 7
	params += ",location="+address // 8
	params += ",directories="+directories // 9
	
	openedWin = window.open(url, "WFNPopup", params);
}

function closeChild () {
	if (openedWin != null) {
		if (!openedWin.closed) {
			openedWin.close();
		}
	}
}

function isDate(dateStr) {

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy.");
return false;
}

month = matchArray[1]; // p@rse date into variables
day = matchArray[3];
year = matchArray[5];

if (month < 1 || month > 12) { // check month range
alert("Month must be between 1 and 12.");
return false;
}

if (day < 1 || day > 31) {
alert("Day must be between 1 and 31.");
return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Month "+month+" doesn`t have 31 days!")
return false;
}

if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
alert("February " + year + " doesn`t have " + day + " days!");
return false;
}
}
return true; // date is valid
}


