// JavaScript Document


function conDel(page, msg )
{
	var okDel = window.confirm(msg);
	if (okDel) 
	{
		window.location = page ;
	}
}
  

function CekMaxNum(FldNm, MinNum, MaxNum,comment)
{
	if(eval(FldNm + ".value") > MaxNum || eval(FldNm + ".value") < MinNum)
	{	
		alert(comment) ;		
		eval(FldNm + ".select()") ;
		eval(FldNm + ".focus()");
	}
		
}
function CekNumeric(e)
{
	var keynum;
	var keychar;
	var numcheck;
	
	if(window.event) // IE
	  {
	  keynum = e.keyCode;
	  }
	else if(e.which) // Netscape/Firefox/Opera
	  {
	  keynum = e.which;
	  }		
	if((keynum>=48 && keynum<=57) || keynum==8 || keynum==13)
	{ keychar= true ; }  
	else
	{ keychar= false ; }	
	
	return keychar ;
}
function CekCurrency(e, curr)
{
	var keynum;
	var keychar;
	var numcheck;
	var myString;
	myString = curr ;	
	if(window.event) // IE
	  {
	  keynum = e.keyCode;
	  }
	else if(e.which) // Netscape/Firefox/Opera
	  {
	  keynum = e.which;
	  }			  
	if((keynum>=48 && keynum<=57) || keynum==8 || keynum==13)
	{ keychar= true ; }  
	else if( keynum==46 )
	{ 	
		if ( myString.indexOf(".") != -1 )
			keychar= false ;
		else
			keychar= true ;
	}
	else
	{ keychar= false ; }	
	
	return keychar ;
}


var dateFormat = function () {
	var	token        = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloZ]|"[^"]*"|'[^']*'/g,
		timezone     = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		timezoneClip = /[^-+\dA-Z]/g,
		pad = function (value, length) {
			value = String(value);
			length = parseInt(length) || 2;
			while (value.length < length)
				value = "0" + value;
			return value;
		};

	// Regexes and supporting functions are cached through closure
	return function (date, mask) {
		// Treat the first argument as a mask if it doesn't contain any numbers
		if (
			arguments.length == 1 &&
			(typeof date == "string" || date instanceof String) &&
			!/\d/.test(date)
		) {
			mask = date;
			date = undefined;
		}

		date = date ? new Date(date) : new Date();
		if (isNaN(date))
			throw "invalid date";

		var dF = dateFormat;
		mask   = String(dF.masks[mask] || mask || dF.masks["default"]);

		var	d = date.getDate(),
			D = date.getDay(),
			m = date.getMonth(),
			y = date.getFullYear(),
			H = date.getHours(),
			M = date.getMinutes(),
			s = date.getSeconds(),
			L = date.getMilliseconds(),
			o = date.getTimezoneOffset(),
			flags = {
				d:    d,
				dd:   pad(d),
				ddd:  dF.i18n.dayNames[D],
				dddd: dF.i18n.dayNames[D + 7],
				m:    m + 1,
				mm:   pad(m + 1),
				mmm:  dF.i18n.monthNames[m],
				mmmm: dF.i18n.monthNames[m + 12],
				yy:   String(y).slice(2),
				yyyy: y,
				h:    H % 12 || 12,
				hh:   pad(H % 12 || 12),
				H:    H,
				HH:   pad(H),
				M:    M,
				MM:   pad(M),
				s:    s,
				ss:   pad(s),
				l:    pad(L, 3),
				L:    pad(L > 99 ? Math.round(L / 10) : L),
				t:    H < 12 ? "a"  : "p",
				tt:   H < 12 ? "am" : "pm",
				T:    H < 12 ? "A"  : "P",
				TT:   H < 12 ? "AM" : "PM",
				Z:    (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
				o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4)
			};

		return mask.replace(token, function ($0) {
			return ($0 in flags) ? flags[$0] : $0.slice(1, $0.length - 1);
		});
	};
}();

// Some common format strings
dateFormat.masks = {
	"default":       "ddd mmm d yyyy HH:MM:ss",
	shortDate:       "m/d/yyyy",
	mediumDate:      "mmm d, yyyy",
	longDate:        "mmmm d, yyyy",
	fullDate:        "dddd, mmmm d, yyyy",
	shortTime:       "h:MM TT",
	mediumTime:      "h:MM:ss TT",
	longTime:        "h:MM:ss TT Z",
	isoDate:         "yyyy-mm-dd",
	isoTime:         "HH:MM:ss",
	isoDateTime:     "yyyy-mm-dd'T'HH:MM:ss",
	isoFullDateTime: "yyyy-mm-dd'T'HH:MM:ss.lo"
};

// Internationalization strings
dateFormat.i18n = {
	dayNames: [
		"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
		"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
	],
	monthNames: [
		"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
		"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
	]
};

// For convenience...
Date.prototype.format = function (mask) {
	return dateFormat(this, mask);
}


var dtCh= "/";
function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		alert("The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day")
		return false
	}	
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Please enter a valid date")
		return false
	}
return true
}

function echeck(str) {
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}


function lastday(month1, year1){
	if ( month1==1 ||  month1==3 ||  month1==5 ||  month1==7 ||  month1==8 ||  month1==10 ||  month1==12 )
		enddate = 31 ;
	else if	( month1 == 2 ){
		if ( year1 % 4 == 0 )
			enddate = 29 ;
		else
			enddate = 28 ;
	}
	else
		enddate = 30 ;
	return enddate ;	
}

function cekDateAfterNow(date1, month1 , year1 ,datenow, monthnow, yearnow){
date1 = parseInt(date1) ;
month1 = parseInt(month1) ;
year1 = parseInt(year1) ;

datenow = parseInt(datenow) ;
monthnow = parseInt(monthnow) ;
yearnow = parseInt(yearnow) ;
	if ( year1 < yearnow )
		return false ;
	else if ( year1 > yearnow )	
		return true ;
	else if	( year1 == yearnow ){
		if ( month1 < monthnow )
			return false ;
		else if ( month1 > monthnow )
			return true ;
		else{
			if ( date1 < datenow )
				return false ;
			else
				return true ;
		}
	}
}

function change(date1, month1 , year1 ,datenow, monthnow, yearnow){	
date1 = parseInt(date1) ;
month1 = parseInt(month1) ;
year1 = parseInt(year1) ;

datenow = parseInt(datenow) ;
monthnow = parseInt(monthnow) ;
yearnow = parseInt(yearnow) ;
var begindate = 1 ;
var enddate = lastday(month1, year1);
var befbegindate = 0;
var befenddate = 0;
var aftbegindate = 0;
var aftenddate = 0;
var flagdate = 0 ;
var flagday = 1 ; //SUNDAy -  7=Saturday
var flagpart = 0 ; // 0 = before real date ; 1 = real date ; 2 = after real date ; 3 = end ;

var datef = month1 + '/1/' + year1 ; 
today=new Date(datef);
thisDay=today.getDay();
if ( thisDay != 0){
	befenddate = lastday(month1-1, year1);
	befbegindate = befenddate - thisDay + 1 ;
	flagdate = befbegindate ;
}
else{
	flagdate = 1 ;
	flagpart = 1 ;
}
var datef = month1 + '/' + enddate + '/' + year1 ; 
today=new Date(datef);
thisDay=today.getDay();
if ( thisDay != 6){
	aftbegindate = 1 ;
	aftenddate = 6 - thisDay ;
}

var mnth=0;
var yr=0;

strCal = "" ;
strCal = strCal + "<table width='100%' border='0' cellspacing='1' cellpadding='4'>";
strCal = strCal + "<tr>";
strCal = strCal + "<td colspan='7' class='calHead'>";
strCal = strCal + "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
strCal = strCal + "<tr>";
if ( cekDateAfterNow( date1, month1 , year1 ,datenow, monthnow, yearnow ) == true ){
	var dateStr2 = dateFormat(month1 + '/' + date1 + '/' + year1, "longDate");
	strCal = strCal + "<td width='150' style='font-size:12px;'>" + dateStr2 + "</td>";
	strCal = strCal + "<input name='date1' type='hidden' value='" + date1 + "' />";
	strCal = strCal + "<input name='month1' type='hidden' value='" + month1 + "' />";
	strCal = strCal + "<input name='year1' type='hidden' value='" + year1 + "' />";
}
else{
	strCal = strCal + "<td width='150' style='font-size:10px;'>Please Choose a Future Date</td>";
	strCal = strCal + "<input name='date1' type='hidden' value='-' />";
	strCal = strCal + "<input name='month1' type='hidden' value='-' />";
	strCal = strCal + "<input name='year1' type='hidden' value='-' />";
}
strCal = strCal + "<td align='right' style='font-size:12px;'>";
if( month1 >= 2 ){	
	mnth = month1 - 1 ;
	yr = year1 ;
}
else{	
	mnth = 12 ;
	yr = year1 - 1 ;
}

// 2008 04 30 budi st

var dateprev;

if ((mnth == monthnow) && (yr == yearnow)) {
	dateprev = datenow
}
else {
	dateprev = 1
} // end budi st

//strCal = strCal + "<a onclick='change(1," + mnth + "," + yr + "," + datenow + "," + monthnow + "," + yearnow + ") ;' style='cursor:pointer;' title='Previous Month'><img src='designimgs/arrow_leftcal.jpg' alt='' width='27' height='23' border='0' align='absmiddle'></a>";

strCal = strCal + "<a onclick='change(" + dateprev + "," + mnth + "," + yr + "," + datenow + "," + monthnow + "," + yearnow + ") ;' style='cursor:pointer;' title='Previous Month'><img src='designimgs/arrow_leftcal.jpg' alt='' width='27' height='23' border='0' align='absmiddle'></a>";

strCal = strCal + "<a onclick='change(" + datenow + "," + monthnow + "," + yearnow + "," + datenow + "," + monthnow + "," + yearnow + ") ;' style='cursor:pointer;' title='Today'><img src='designimgs/arrow_centercal.jpg' alt='' width='26' height='23' border='0' align='absmiddle'>";
if( month1 <= 11 ){
	mnth = 1 + month1  ;
	yr = year1 ;
}
else{
	mnth = 1 ;
	yr = year1 + 1 ;
}

// 2008 04 30 budi st

var datenext;

if ((mnth == monthnow) && (yr == yearnow)) {
	datenext = datenow
}
else {
	datenext = 1
} // end budi st

//strCal = strCal + "<a onclick='change(1," + mnth + "," + yr + "," + datenow + "," + monthnow + "," + yearnow + ") ;' style='cursor:pointer;' title='Next Month'><img src='designimgs/arrow_rightcal.jpg' alt='' width='28' height='23' border='0' align='absmiddle'></a>";

strCal = strCal + "<a onclick='change(" + datenext + "," + mnth + "," + yr + "," + datenow + "," + monthnow + "," + yearnow + ") ;' style='cursor:pointer;' title='Next Month'><img src='designimgs/arrow_rightcal.jpg' alt='' width='28' height='23' border='0' align='absmiddle'></a>";

strCal = strCal + "Select Month</td>";
strCal = strCal + "</tr>";
strCal = strCal + "</table>";
strCal = strCal + "</td>";
strCal = strCal + "</tr>";
    
strCal = strCal + "	<tr>";
strCal = strCal + "<td width='50' class='day'>Sun</td>";
strCal = strCal + "<td width='50' class='day'>Mon</td>";
strCal = strCal + "<td width='50' class='day'>Tue</td>";
strCal = strCal + "<td width='50' class='day'>Wed</td>";
strCal = strCal + "<td width='50' class='day'>Thu</td>";
strCal = strCal + "<td width='50' class='day'>Fri</td>";
strCal = strCal + "<td width='50' class='day'>Sat</td>";
strCal = strCal + "</tr>";
flagday=1;
while(flagpart != 3){
	if ( flagday == 1 )
		strCal = strCal + "<tr>";
		
	if ( flagpart == 0 ){
			if ( flagdate >= befbegindate && flagdate <= befenddate ) {	
				if( month1 == 1 )					
					yr = year1 - 1 ;				
				else					
					yr = year1 ;				
				mnth = month1 - 1  ;
				strCal = strCal + "<td bgcolor='#c4cddd' class='dateOther' onclick='change(" + flagdate + "," + mnth + "," + yr + "," + datenow + "," + monthnow + "," + yearnow + ") ;' style='cursor:pointer;'>" + flagdate + "</td>";
				if ( flagdate == befenddate ){
					flagpart = 1 ;
					flagdate = 1 ;
				}
				else
					flagdate = flagdate + 1 ;
			}
			else{
				flagpart = 1 ;
				flagdate = 1 ;
			}
	}
	else if ( flagpart == 1 ){
		if ( flagdate >= begindate && flagdate <= enddate ) {
			if ( flagdate == date1 )
				strCal = strCal + "<td bgcolor='#FF0000' class='dateActive' onclick='change(" + flagdate + "," + month1 + "," + year1 + "," + datenow + "," + monthnow + "," + yearnow + ") ;' style='cursor:pointer;'>" + flagdate + "</td>";
			else if ( flagday  == 1 || flagday == 7 )	
				strCal = strCal + "<td bgcolor='#fa6666' class='date' onclick='change(" + flagdate + "," + month1 + "," + year1 + "," + datenow + "," + monthnow + "," + yearnow + ") ;' style='cursor:pointer;'>" + flagdate + "</td>";
			else
				strCal = strCal + "<td bgcolor='#004da3' class='date' onclick='change(" + flagdate + "," + month1 + "," + year1 + "," + datenow + "," + monthnow + "," + yearnow + ") ;' style='cursor:pointer;'>" + flagdate + "</td>";
			if ( flagdate == enddate ){
				flagpart = 2 ;
				flagdate = 1 ;
			}
			else
				flagdate = flagdate + 1 ;
		}
		else{
			flagpart = 2 ;
			flagdate = 1 ;
		}				
	}
	else if ( flagpart == 2 ){
		if ( aftbegindate == 0 && aftenddate == 0 ){
			flagpart = 3 ;
			flagdate = 1 ;
		}
		else{
			if ( flagdate >= aftbegindate && flagdate <= aftenddate ) {	
				if( month1 == 12 )					
					yr = year1 + 1 ;				
				else					
					yr = year1 ;				
				mnth = month1 + 1  ;
				strCal = strCal + "<td bgcolor='#c4cddd' class='dateOther' onclick='change(" + flagdate + "," + mnth + "," + yr + "," + datenow + "," + monthnow + "," + yearnow + ") ;' style='cursor:pointer;'>" + flagdate + "</td>";
				if ( flagdate == aftenddate ){
					flagpart = 3 ;
					flagdate = 1 ;
				}
				else
					flagdate = flagdate + 1 ;
			}
			else{
				flagpart = 3 ;
				flagdate = 1 ;
			}
		}		
	}
	
	flagday = flagday + 1 ;
	if ( flagday == 8 ){
		strCal = strCal + "</tr>";
		flagday = 1 ;
	}
}

	strCal = strCal + "</table>";
	
	document.getElementById('calendar').innerHTML= strCal ;	
}























