var ProgDir = "/DataConnection/";
var NewWindow = null;
var NS4 = (document.layers) ? 1 : 0;
var IE4 = (document.all) ? 1 : 0;
var docAll = (document.all!=null);
function OpenDownloadWindow() {
	var nw = window.open('/DataBrowZer/Action/DownloadReady.a4d','Download_Ready','width=320,height=300,scrollbars=yes,toolbar=yes,resizable=yes');
	nw.opener = self;
	nw.focus();		
}

function OpenZipDownloadWindow(ActionParameter, zipFileName, AddLoRes) {
        if (AddLoRes == '')
		AddLoRes = "AddLoRes=No"
	var nw = window.open('/Download/ZipFileDownload.a4d?'+ActionParameter+'&'+zipFileName + '&'+AddLoRes,'ZIP_Download','width=350,height=180,scrollbars=no,toolbar=no,resizable=no');
	//nw.opener = self;
	//nw.focus();		
}

function OpenComboSelectWindow(ActionParameter) {	
	var nw = window.open('/dialog/ComboSelect.a4d?'+ActionParameter,'Select','width=350,height=450,scrollbars=yes,toolbar=no,resizable=no');
	nw.opener = self;
	nw.focus();		
}


function getDocSpec(id) {
	if (docAll) {
		return document.all[id];
	} else {
		return document.layers[id];
	}
}

function WindowOpen(URL,w,h,WindowName) { 
	if (NS4) {
		var left = window.screenX + ((window.outerWidth - w) / 2);
		var top = window.screenY + ((window.outerHeight - h) / 2);
		var build = "screenX=" + left + ",screenY=" + top + ",resizable=yes,scrollbars=yes,width=" + w + ",height=" + h;
	} else if (IE4) {
		var left = (screen.width - w) / 2;
		var top = (screen.height - h) / 2;
		var build = "left=" + left + ",top=" + top + ",resizable=yes,scrollbars=yes,titlebar=no,width=" + w + ",height=" + h;
	} else {
		var build = 'width='+w+',height='+h+',resizable=yes,scrollbars=yes';
	}
	NewWindow = window.open(URL, WindowName, build);
	NewWindow.opener = self;
	NewWindow.focus();
}

function WindOpen(URL,WindowName) { 
	var name = navigator.appName;
	var platform = navigator.platform;
	var w = 430;
	var h = 370;
	var macnetw = 500;
	var macneth = 370;
	
	if (platform == "MacPPC"){
		if (name == "Microsoft Internet Explorer") {
			var left = (screen.width - w) / 2;
			var top = (screen.height - h) / 2;
			var build = "left=" + left + ",top=" + top + ",resizable=yes,scrollbars=yes,titlebar=no,width=" + w + ",height=" + h + " ,location=0";
			} 
		else {
			var left = window.screenX + ((window.outerWidth - macnetw) / 2);
			var top = window.screenY + ((window.outerHeight - macneth) / 2 );
			var build = "screenX=" + left + ",screenY=" + top + ",resizable=yes,scrollbars=yes,width=" + macnetw + ",height=" + macneth;
    			}
	}
	else {
		if (name == "Microsoft Internet Explorer") {
			var left = (screen.width - w) / 2;
			var top = (screen.height - h) / 2;
			var build = "left=" + left + ",top=" + top + ",resizable=yes,scrollbars=yes,titlebar=no,width=" + w + ",height=" + h + " ,location=0";
			} 
		else {
			var left = window.screenX + ((window.outerWidth - w) / 2);
			var top = window.screenY + ((window.outerHeight - h) / 2);
			var build = "screenX=" + left + ",screenY=" + top + ",resizable=yes,scrollbars=yes,width=" + w + ",height=" + h;
    	}
	}
	NewWindow = window.open(URL, WindowName, build);
	NewWindow.opener = self;
	NewWindow.focus();
}
function GoToField(WhichForm,WhichElement) {
	SetWindowFocus();
	document.forms[WhichForm].elements[WhichElement].focus();
}
function GoToFieldDelayed(WhichForm,WhichElement,When) {
	SetWindowFocus();
	eval("setTimeout(\"GoToField('" + WhichForm + "','" + WhichElement + "')\"," + When + ")");
}
function SetFocus(WhichElement) {
	SetWindowFocus();
	eval("document." + WhichElement + ".focus()");
}
function SetFocusDelayed(WhichElement,When) {
	SetWindowFocus();
	eval("setTimeout('SetFocus(\"" + WhichElement + "\")'," + When + ")");
}
function SetWindowFocus() {
	window.focus();
}
function GoToFirstField() {
	SetWindowFocus();
	document.forms[0].elements[0].focus();
}
function CenterWindow(w,h) {
	if (NS4) {
		var left = window.screenX + ((window.outerWidth - w) / 2);
		var top = window.screenY + ((window.outerHeight - h) / 2);
	} else if (IE4) {
		var left = (screen.width - w) / 2;
		var top = (screen.height - h) / 2;
	} else {
		var left = 0;
		var top = 0;
	}
	MoveWindow(left,top);
}
function MoveWindow(left,top) {
	window.moveTo(left,top);
}
function ResizeWindow(w,h) {
	window.resizeTo(w,h);
}
function GoToURL(WhatURL) {
	document.location.href=WhatURL;
}
function encode(Value) {
	var VALUE = escape(Value)
	return(VALUE)
}
function decode(Value) {
	var VALUE = unescape(Value)
	return(VALUE)
}
function getCookie(Name) {
	var search = Name + "="
	var RetStr = ""
	var offset = 0
	var end = 0
	if (document.cookie.length > 0) {
		offset = document.cookie.indexOf(search)
		if (offset != -1) {
			offset += search.length
			end = document.cookie.indexOf(";",offset)
			if(end == -1)
				end = document.cookie.length
			RetStr = decode(document.cookie.substring(offset,end))
		}
	}
	return (RetStr)
}
function setCookie(Name, Value, Expire) {
	document.cookie = Name + "=" + encode(Value) + "; path=/" + ((Expire == null) ? "" : ("; expires=" + Expire.toGMTString()));
}
function CheckDate(Field) {
	var count;
	var ValMonth;
	var FirstSlash;
	var LastSlash;
	var GivenMonth;
	var MV;
	var DV;
	var YV;
	T = Date.parse(Field.value);
	DT = new Date();
	if (Field.value.toLowerCase()=="asap") {
		MV = DT.getMonth()+1;
		if (MV < 10) {
			MV = "0" + MV;
		}
		DV = DT.getDate();
		if (DV < 10) {
			DV = "0" + DV;
		}
		YV = DT.getYear();
		if (YV < 1000) {
			if (YV < 30) {
				YV = 2000 + YV;
			} else {
				YV = 1900 + YV;
			}
		}
		Field.value = MV + "/" + DV + "/" + YV;
		alert("ASAP has been converted to todays date!");
		Field.focus();
		Field.select();
		return;
	}
	DT.setTime(T);
	if (Field.value == "") {
		return;
	}
	if ( isNaN(DT.getMonth()) || (Field.value.indexOf(DT.getDate()) == -1) ) {
		alert("You have entered an invalid Date!\nPlease enter the date as DD/MM/YYYY");
		Field.focus();
		Field.select();
		return;
	} else {
		switch (DT.getMonth()) {
			case 0:
				ValMonth = "jan";
				break;
			case 1:
				ValMonth = "feb";
				break;
			case 2:
				ValMonth = "mar";
				break;
			case 3:
				ValMonth = "apr";
				break;
			case 4:
				ValMonth = "may";
				break;
			case 5:
				ValMonth = "jun";
				break;
			case 6:
				ValMonth = "jul";
				break;
			case 7:
				ValMonth = "aug";
				break;
			case 8:
				ValMonth = "sep";
				break;
			case 9:
				ValMonth = "oct";
				break;
			case 10:
				ValMonth = "nov";
				break;
			case 11:
				ValMonth = "dec";
				break;
		}	
		if (Field.value.indexOf("/")==-1) {
			if (Field.value.toLowerCase().indexOf(ValMonth) == -1) {
				alert("You have entered an invalid Date!\nPlease enter the date as DD/MM/YYYY");
				Field.focus();
				Field.select();
				return;
			} else 	if (Field.value.toLowerCase().indexOf(ValMonth) != -1) {
						MV = DT.getMonth()+1;
						if (MV < 10) {
							MV = "0" + MV;
						}
						DV = DT.getDate();
						if (DV < 10) {
							DV = "0" + DV;
						}
						YV = DT.getYear();
						if (YV < 1000) {
							if (YV < 30) {
								YV = 2000 + YV;
							} else {
								YV = 1900 + YV;
							}
						}
						Field.value = MV + "/" + DV + "/" + YV;
						return;
			}
		} else {
			FirstSlash = Field.value.indexOf("/");
			LastSlash = Field.value.lastIndexOf("/");
			GivenMonth = Field.value.substring(0,FirstSlash);
			if (GivenMonth != DT.getMonth()+1) {
				alert("You have entered an invalid Date!\nPlease enter the date as DD/MM/YYYY");
				Field.focus();
				Field.select();
				return;
			}
		}
	}
	MV = DT.getMonth()+1;
	if (MV < 10) {
		MV = "0" + MV;
	}
	DV = DT.getDate();
	if (DV < 10) {
		DV = "0" + DV;
	}
	YV = DT.getYear();
	if (YV < 1000) {
		if (YV < 30) {
			YV = 2000 + YV;
		} else {
			YV = 1900 + YV;
		}
	}
	Field.value = MV + "/" + DV + "/" + YV;
}
function GetAbrevMonth(MonthNumber) {
	switch (MonthNumber) {
		case 1:
			return("Jan");
			break;
		case 2:
			return("Feb");
			break;
		case 3:
			return("Mar");
			break;
		case 4:
			return("Apr");
			break;
		case 5:
			return("May");
			break;
		case 6:
			return("Jun");
			break;
		case 7:
			return("Jul");
			break;
		case 8:
			return("Aug");
			break;
		case 9:
			return("Sep");
			break;
		case 10:
			return("Oct");
			break;
		case 11:
			return("Nov");
			break;
		case 12:
			return("Dec");
			break;
	}
}
function CheckDateOracle(Field,Mandatory) {
	var count;
	var ValMonth;
	var FirstSlash;
	var LastSlash;
	var GivenMonth;
	var AbrevMonth;
	var MV;
	var DV;
	var YV;
	T = Date.parse(Field.value);
	DT = new Date();
	if (Field.value.toLowerCase()=="asap" || Field.value.toLowerCase()=="now" || Field.value.toLowerCase()=="today") {
		MV = DT.getMonth()+1;
		DV = DT.getDate();
		if (DV < 10) {
			DV = "0" + DV;
		}
		YV = DT.getYear();
		if (YV < 1000) {
			if (YV < 30) {
				YV = 2000 + YV;
			} else {
				YV = 1900 + YV;
			}
		}
		AbrevMonth = GetAbrevMonth(MV);
		Field.value = DV + " " + AbrevMonth + ", " + YV;
		return;
	}
	DT.setTime(T);
	if (Field.value == "") {
		if (Mandatory == "1" || Mandatory.toLowerCase() == "y" || Mandatory.toLowerCase() == "yes") {
			alert("A date must be filled in!");
			Field.focus();
			Field.select();
		}
		return;
	}
	if ( isNaN(DT.getMonth()) || (Field.value.indexOf(DT.getDate()) == -1) ) {
		alert("You have entered an invalid Date!\nPlease enter the date as DD MMM, YYYY");
		Field.focus();
		Field.select();
		return;
	} else {
		switch (DT.getMonth()) {
			case 0:
				ValMonth = "jan";
				break;
			case 1:
				ValMonth = "feb";
				break;
			case 2:
				ValMonth = "mar";
				break;
			case 3:
				ValMonth = "apr";
				break;
			case 4:
				ValMonth = "may";
				break;
			case 5:
				ValMonth = "jun";
				break;
			case 6:
				ValMonth = "jul";
				break;
			case 7:
				ValMonth = "aug";
				break;
			case 8:
				ValMonth = "sep";
				break;
			case 9:
				ValMonth = "oct";
				break;
			case 10:
				ValMonth = "nov";
				break;
			case 11:
				ValMonth = "dec";
				break;
		}
		if (Field.value.indexOf("/")==-1) {
			if (Field.value.toLowerCase().indexOf(ValMonth) == -1) {
				alert("You have entered an invalid Date!\nPlease enter the date as DD MMM, YYYY");
				Field.focus();
				Field.select();
				return;
			} else 	if (Field.value.toLowerCase().indexOf(ValMonth) != -1) {
				MV = DT.getMonth()+1;
				DV = DT.getDate();
				if (DV < 10) {
					DV = "0" + DV;
				}
				YV = DT.getYear();
				if (YV < 1000) {
					if (YV < 30) {
						YV = 2000 + YV;
					} else {
						YV = 1900 + YV;
					}
				}
				AbrevMonth = GetAbrevMonth(MV);
				Field.value = DV + " " + AbrevMonth  + ", " + YV;
				return;
			}
		} else {
			FirstSlash = Field.value.indexOf("/");
			LastSlash = Field.value.lastIndexOf("/");
			GivenMonth = Field.value.substring(0,FirstSlash);
			if (GivenMonth != DT.getMonth()+1) {
				alert("You have entered an invalid Date!\nPlease enter the date as DD MMM, YYYY");
				Field.focus();
				Field.select();
				return;
			}
		}
	}
	MV = DT.getMonth()+1;
	DV = DT.getDate();
	if (DV < 10) {
		DV = "0" + DV;
	}
	YV = DT.getYear();
	if (YV < 1000) {
		if (YV < 30) {
			YV = 2000 + YV;
		} else {
			YV = 1900 + YV;
		}
	}
	AbrevMonth = GetAbrevMonth(MV);
	Field.value = DV + " " + AbrevMonth  + ", " + YV;
}
function CheckDate4D(Field) {
	var count;
	var ValMonth;
	var FirstSlash;
	var LastSlash;
	var GivenMonth;
	var MV;
	var DV;
	var YV;
	T = Date.parse(Field.value);
	DT = new Date();
	if (Field.value.toLowerCase()=="asap") {
		MV = DT.getMonth()+1;
		if (MV < 10) {
			MV = "0" + MV;
		}
		DV = DT.getDate();
		if (DV < 10) {
			DV = "0" + DV;
		}
		YV = DT.getYear();
		if (YV < 1000) {
			if (YV < 30) {
				YV = 2000 + YV;
			} else {
				YV = 1900 + YV;
			}
		}
		Field.value = YV + "-" + MV + "-" + DV;
		alert("ASAP has been converted to todays date!");
		Field.focus();
		Field.select();
		return;
	}
	DT.setTime(T);
	if (Field.value == "") {
		return;
	}
	if ( isNaN(DT.getMonth()) || (Field.value.indexOf(DT.getDate()) == -1) ) {
		alert("You have entered an invalid Date!\nPlease enter the date as DD/MM/YYYY");
		Field.focus();
		Field.select();
		return;
	} else {
		switch (DT.getMonth()) {
			case 0:
				ValMonth = "jan";
				break;
			case 1:
				ValMonth = "feb";
				break;
			case 2:
				ValMonth = "mar";
				break;
			case 3:
				ValMonth = "apr";
				break;
			case 4:
				ValMonth = "may";
				break;
			case 5:
				ValMonth = "jun";
				break;
			case 6:
				ValMonth = "jul";
				break;
			case 7:
				ValMonth = "aug";
				break;
			case 8:
				ValMonth = "sep";
				break;
			case 9:
				ValMonth = "oct";
				break;
			case 10:
				ValMonth = "nov";
				break;
			case 11:
				ValMonth = "dec";
				break;
		}
		if (Field.value.indexOf("/")==-1) {
			if (Field.value.toLowerCase().indexOf(ValMonth) == -1) {
				alert("You have entered an invalid Date!\nPlease enter the date as DD/MM/YYYY");
				Field.focus();
				Field.select();
				return;
			} else 	if (Field.value.toLowerCase().indexOf(ValMonth) != -1) {
				MV = DT.getMonth()+1;
				if (MV < 10) {
					MV = "0" + MV;
				}
				DV = DT.getDate();
				if (DV < 10) {
					DV = "0" + DV;
				}
				YV = DT.getYear();
				if (YV < 1000) {
					if (YV < 30) {
						YV = 2000 + YV;
					} else {
						YV = 1900 + YV;
					}
				}
				Field.value = YV + "-" + MV + "-" + DV;
				return;
			}
		} else {
			FirstSlash = Field.value.indexOf("/");
			LastSlash = Field.value.lastIndexOf("/");
			GivenMonth = Field.value.substring(0,FirstSlash);
			if (GivenMonth != DT.getMonth()+1) {
				alert("You have entered an invalid Date!\nPlease enter the date as DD/MM/YYYY");
				Field.focus();
				Field.select();
				return;
			}
		}
	}
	MV = DT.getMonth()+1;
	if (MV < 10) {
		MV = "0" + MV;
	}
	DV = DT.getDate();
	if (DV < 10) {
		DV = "0" + DV;
	}
	YV = DT.getYear();
	if (YV < 1000) {
		if (YV < 30) {
			YV = 2000 + YV;
		} else {
			YV = 1900 + YV;
		}
	}
	Field.value = YV + "-" + MV + "-" + DV;
}
