//
// $Id: core.js,v 1.1 2005/07/08 15:33:59 amoe Exp $
//
//****************** global variables *********************//
var ns4			= (document.layers)?1:0;
var ie4			= (document.all)?1:0;
var ns6			= (document.getElementById && !document.all)?1:0;


//****************** subroutines **************************//
function Visible(id, wref){
	
	var ref = (wref)?wref:top.glMainRef;
	var r = (ref)?ref:self;
	var eref = ref.document.getElementById(id);
	var disp = eref.style.display;
	disp = (disp == 'none')? "block":"none";
	eref.style.display = disp;
}

function SetSelected(name, val, wref){
	
	var ref = (wref)?wref:top.glMainRef;
	var r = (ref)?ref:self;
	var f = ref.document.forms;
	
	for(i=0;i<f.length;i++){
		if(f[i][name]){
			for(j=0;j < f[i][name].length;j++){
				s = f[i][name][j];	
					if(s.value == val){
						s.selected = true;
						break;
					}
			}
		break;
		}
	}
}

function isDateValid (day, month, year, hour, minute) {
	
		if ((!month && !day && !year)){
			return false;
		}
		else{
			var intYear = parseInt(year);
		   	var intDay = parseInt(Number(day));
		   	var intMonth = parseInt(Number(month));
		   	var intHour = hour;
		   	var intMinute = minute;
		   	var days = new Array();
			days[0] = 0;
			days[1] = 31; days[2] = daysInFebruary(intYear); 
			days[3] = 31; days[4] = 30; days[5] = 31; days[6] = 30;
			days[7] = 31; days[8] = 31; days[9] = 30; 
			days[10] = 31; days[11] = 30; days[12] = 31;
				if (!intDay) return false;
				if (!days[intMonth]) return false;
		   		if (!(intYear > 1899 && intYear < 2101)) return false;
		   		if ((intDay > days[intMonth]) ||(intDay < 1)) return false;
				if (intHour && (intHour < 0 ||intHour > 24)) return false;		   		
				if (intMinute && (intMinute < 0 ||intMinute > 60)) return false;		   		
		    return true;
		}
}

function daysInFebruary (iYear){   
  return (((iYear % 4 == 0) && ((!(iYear % 100 == 0)) || (iYear % 400 == 0)))?29:28);
}

function parseDate(datestr, validate){
	
	var pDate = new Object();
	var validate = (!validate)?true:false;	
			
		if(!datestr){
			return true;
		}
	
	var tmp = '';
	var res = false;
	var pattern = /(\d{1,2})\W{1,}(\d{1,2})\W{1,}(\d{2,4})\s{0,}(\d{0,2})\W{0,1}(\d{0,2})/g;
 	 	
		if(pattern.test(datestr)){ 	
			pattern.exec(datestr);
		 	pDate.string	= datestr;
		 	pDate.day 		= RegExp.$1;
		 	pDate.month 	= RegExp.$2;
		 	pDate.year 		= (RegExp.$3 < 50)?'20'+RegExp.$3:RegExp.$3;
		 	pDate.hour 		= RegExp.$4;
		 	pDate.minute 	= RegExp.$5;
		 	tmp = (pDate.hour)?' '+pDate.hour+':'+pDate.minute:'';
			res 			= isDateValid(pDate.day, pDate.month, pDate.year, pDate.hour, pDate.minute);
			pDate.iso		= (res)?pDate.year+'-'+pDate.month+'-'+pDate.day+tmp:'';
		}
 	
		if(validate){
			return (res)?pDate:false;
			
		}
		else{
			return pDate;
		}
}

function SetErrorClass(eref){
	eref.className = 'ErrorField';
	eref.focus();
}

function CheckDate(f, message){
	
	var ret = true;
	
	for(i=2; i<CheckDate.arguments.length; i++){
		var e = f[CheckDate.arguments[i]];
		var val = parseDate(e.value);
			
			if(!parseDate(e.value)){
				(message)?alert( message):'';
				SetErrorClass(e);
				ret = false;
			}
	}
	return ret;
}

function ConvertDate(f){
	
	for(i=1; i<ConvertDate.arguments.length; i++){
		var e = f[ConvertDate.arguments[i]];
		oDate = parseDate(e.value);
		e.value = (oDate.iso)?oDate.iso:e.value;
	}
}	

function SubmitForm(f, wref){
	
	var ref = (wref)?wref:top.glMainRef;
	var r = (ref)?ref:self;
	r.document.body.style.display = 'none';
	f.submit();
}

function RefreshOpener(){
	var o = window.open('','TA_CONTENTSHELL');
			
		if(o.glMainRef){
			o.glMainRef.location.reload();
		}
		else{
			o.location.reload();
		}
}

function openWindow(url,percent,name,left,top,toolbar,location,status,menubar,scrollbars,resizable) {
	
	if(url) {
		var name = (name)?name:'_new';
		var width = window.screen.availWidth * percent / 100;
		var height = window.screen.availHeight * percent / 100;
		var left = (left)?left:(window.screen.availWidth - width)/2;
		var top = (top)?top:(window.screen.availHeight - height)/2;
		var toolbar = (toolbar)?toolbar:'no';
		var location = (location)?location:'no';
		var status = (status)?status:'no';
		var menubar = (menubar)?menubar:'yes';
		var scrollbars = (scrollbars)?scrollbars:'yes';
		var resizable = (resizable)?resizable:'yes';
		var ref = window.open(url,name,'left='+left+',top='+top+',toolbar='+toolbar+',location='+location+',status='+status+',menubar='+menubar+',scrollbars='+scrollbars+',resizable='+resizable+',width='+width+',height='+height+'');
		ref.focus();
	}
}

