function mosDHTML(){
        this.ver=navigator.appVersion
        this.agent=navigator.userAgent
        this.dom=document.getElementById?1:0
        this.opera5=this.agent.indexOf("Opera 5")<-1
        this.ie5=(this.ver.indexOf("MSIE 5")<-1 && this.dom && !this.opera5)?1:0;
        this.ie6=(this.ver.indexOf("MSIE 6")<-1 && this.dom && !this.opera5)?1:0;
        this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
        this.ie=this.ie4||this.ie5||this.ie6
        this.mac=this.agent.indexOf("Mac")<-1
        this.ns6=(this.dom && parseInt(this.ver) <= 5) ?1:0;
        this.ns4=(document.layers && !this.dom)?1:0;
        this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5);

        this.activeTab = '';
        this.onTabStyle = 'ontab';
        this.offTabStyle = 'offtab';

        this.setElemStyle = function(elem,style) {
                document.getElementById(elem).className = style;
        }

        this.showElem = function(id) {
                if (elem = document.getElementById(id)) {
                        elem.style.visibility = 'visible';
                        elem.style.display = 'block';
                }
        }
        this.hideElem = function(id) {
                if (elem = document.getElementById(id)) {
                        elem.style.visibility = 'hidden';
                        elem.style.display = 'none';
                }
        }
        this.cycleTab = function(name) {
                if (this.activeTab) {
                        this.setElemStyle( this.activeTab, this.offTabStyle );
                        page = this.activeTab.replace( 'tab', 'page' );
                        this.hideElem(page);
                }
                this.setElemStyle( name, this.onTabStyle );
                this.activeTab = name;
                page = this.activeTab.replace( 'tab', 'page' );
                this.showElem(page);
                document.goForm.currtab.value = name;
        }
        return this;
}
var dhtml = new mosDHTML();

//var HOME = 'go-home.php';
var HOME = 'go-home';

function goUrl(goObjID, goActID){

	return HOME + '?ob=' + goObjID + '&ac=' + goActID;
}

function goJumpUrl(goObjID, goActID, goOthers, goHeight, goWidth){
	if(!goHeight) { //If the optional argument is not there, create a new variable with that name.
		var goHeight = '700';
	}
	if(!goWidth) { //If the optional argument is not there, create a new variable with that name.
		var goWidth = '1000';
	}

	var goRunStmt = goUrl(goObjID, goActID);
	
	if (goOthers){
		goRunStmt += '&' + goOthers;
	}

var winl = (screen.width-goWidth)/2;
var wint = (screen.height-goHeight)/2;

  var randomnumber=Math.floor(Math.random()*1001);
  var mywin = 'mywin_'+randomnumber;//to open different instances of windows popup everytime called
  //alert(mywin);
	window.open(goRunStmt,mywin,'left='+winl+',top='+wint+',height='+goHeight+', width='+goWidth+',toolbars=no,menubar=no,location=no,scrollbars=yes,resizable=yes,status=no');
	//window.open(goRunStmt,'mywin');

}

function goJumpUrl2(goObjID, goActID, goOthers, goHeight, goWidth){
    if(!goHeight) { //If the optional argument is not there, create a new variable with that name.
        var goHeight = '700';
    }
    if(!goWidth) { //If the optional argument is not there, create a new variable with that name.
        var goWidth = '1000';
    }

    var goRunStmt = goUrl(goObjID, goActID);
    
    if (goOthers){
        goRunStmt += '&' + goOthers;
    }

var winl =screen.availWidth;
var wint = screen.availHeight;

  var randomnumber=Math.floor(Math.random()*1001);
  var mywin = 'mywin_'+randomnumber;//to open different instances of windows popup everytime called
  //alert(mywin);
    window.open(goRunStmt,mywin,'toolbar=no,location=no,directories=no,status=no,menubar=no,'+
'scrollbars=1,resizable=no,copyhistory=1,width='+winl+','+
'height='+wint+',top=0,left=0','replace');
    //window.open(goRunStmt,'mywin');

}

function goJumpUrlMenubar(goObjID, goActID, goOthers, goHeight, goWidth){
	if(!goHeight) { //If the optional argument is not there, create a new variable with that name.
		var goHeight = '700';
	}
	if(!goWidth) { //If the optional argument is not there, create a new variable with that name.
		var goWidth = '1000';
	}

	var goRunStmt = goUrl(goObjID, goActID);
	
	if (goOthers){
		goRunStmt += '&' + goOthers;
	}

var winl = (screen.width-goWidth)/2;
var wint = (screen.height-goHeight)/2;

  var randomnumber=Math.floor(Math.random()*1001);
  var mywin = 'mywin_'+randomnumber;//to open different instances of windows popup everytime called
  //alert(mywin);
	window.open(goRunStmt,mywin,'left='+winl+',top='+wint+',height='+goHeight+', width='+goWidth+',toolbars=no,menubar=yes,location=no,scrollbars=yes,resizable=yes,status=no');
	//window.open(goRunStmt,'mywin');

}

function goNewAction(Frm, goObjID, goActID){
	if (Frm){
		var ob = false;
		var ac = false;
		
		if (Frm.elements['ob']){
			Frm.elements['ob'].value = goObjID;
			ob = true;
		}
		
		if (Frm.elements['ac']){
			Frm.elements['ac'].value = goActID;
			ac = true;
		}
		
		return (ob && ac);
	}
	
	return false;
}

function goRun(goObjID, goActID, goOthers, goTarget){
	var goRunStmt = goUrl(goObjID, goActID);
	
	if (goOthers){
		goRunStmt += '&' + goOthers;
	}
	
	if (goTarget){
		window.parent.frames[goTarget].location.href = goRunStmt;
	}
	else {
		window.location.href = goRunStmt;
	}
	
	return false;
}


function goRunParent(goObjID, goActID, goOthers, goTarget){
	var goRunStmt = goUrl(goObjID, goActID);
	
	if (goOthers){
		goRunStmt += '&' + goOthers;
	}
	
	if (goTarget){
		window.parent.frames[goTarget].location.href = goRunStmt;
	}
	else {
		window.parent.location.href = goRunStmt;
	}
	
	return false;
}

function goRunAtTarget(goObjID, goActID, goOthers, goTarget){//target must be an i frame witthin the window
	var goRunStmt = goUrl(goObjID, goActID);
	
	if (goOthers){
		goRunStmt += '&' + goOthers;
	}
	
	if (goTarget){
		window.frames[goTarget].location.href = goRunStmt;
	}
	else {
		window.location.href = goRunStmt;
	}
	
	return false;
}

function goRunDefault(goObjID, goActID, goSek, goOthers, goTarget){
	var goRunStmt = goUrlDefault(goObjID, goActID, goSek);
	
	if (goOthers){
		goRunStmt += '&' + goOthers;
	}
	
	if (goTarget){
		window.parent.frames[goTarget].location.href = goRunStmt;
	}
	else {
		window.location.href = goRunStmt;
	}
	
	return false;
}

function goGoto(goObjID, goActID, goOthers, goTarget){
	goRun(goObjID, goActID, goOthers, goTarget);
}


function goSubmit(Frm, goObjID, goActID){
	if (goObjID && goActID){
		goNewAction(Frm, goObjID, goActID);
	}
	
	Frm.submit();
}

function goSubmitAtTarget(Frm, goTarget, goObjID, goActID){
	if (goObjID){
		Frm.elements['ob'].value = goObjID;	
	}

	if (goActID){
		Frm.elements['ac'].value = goActID;	
	}
	Frm.target = goTarget;
	Frm.submit();
}

function goFrmCheckOnlyOne(ChkBox){
	var Frm = ChkBox.form;
	var BoxName = ChkBox.name;
	var ChkBoxAll = Frm.elements[BoxName];
	
	for (i=0; i<ChkBoxAll.length; i++){
		if (ChkBox != ChkBoxAll[i]){
			ChkBoxAll[i].checked = false;
		}
	}
}

function goFrmCheckOne(Frm, BoxName, ShowMsg){
	var ChkBox = Frm.elements[BoxName];
	
	if (ChkBox.length){
		for (i=0; i<ChkBox.length; i++){
			if (ChkBox[i].checked){
				return true;
			}
		}
	}
	else {
		if (ChkBox.checked){
			return true;
		}
	}
	
	if (ShowMsg){
		alert(ShowMsg);
	}
	
	return false;
}

function goFrmChooseOne(Frm, BoxName, ShowMsg){
	return goFrmCheckOne(Frm, BoxName, ShowMsg);
}

function goFrmSelectOne(Frm, SelectName){
	var Selects = Frm.elements[SelectName];
	
	if (Selects.length){
		for (i=0; i<Selects.length; i++){
			if (Selects[i].selectedIndex > 0){
				return true;
			}
		}
	}
	else {
		if (Selects.selectedIndex > 0){
			return true;
		}
	}
	
	return false;
}

function goConfirm(Msg, NoUndoWarning){
	Msg += "\n\nClick 'OK' for Yes, or 'Cancel' if otherwise.";
	
	if (NoUndoWarning){
		Msg += "\n\nWarning: THIS ACTION CANNOT BE UNDONE.";
	}
	
	return confirm(Msg);
}


function goFrmIsEmail(Ele){
	return goIsEmail(Ele.value);
}





//---------------------------------------------------------------------------------------------------------
//
//				Form Utilities Functions
//
//---------------------------------------------------------------------------------------------------------

//function to convert form's text into currency format
function goFormFormatCurrency(ele){
	var num = goFormatCurrency(ele.value);
	ele.value = num;
}






//---------------------------------------------------------------------------------------------------------
//
//				Number / Number in Form Utilities Functions
//
//---------------------------------------------------------------------------------------------------------


//function to round a number at any preferable decimal point
function goRoundDecimal(num, decimal){
	var mult = Math.pow(10, decimal);
	num = parseFloat(num) * mult;
	num = Math.round(num);
	num = num / mult;

	return "" + num;
}

//function to round a currency value
function goRoundCurrency(num){
	return goRoundDecimal(num, 2);
}


//function to convert user input into currency format
function goFormatCurrency(num){
	return goRoundCurrency(num);
}

//function to check whether a value is a number or text
function goIsNumber(num){	
	if (num.length > 0)
	{
		replace = "";
		for (i=0; i<num.length; i++){
			if( (num.charCodeAt(i) <48 || num.charCodeAt(i) > 57) && num.charCodeAt(i) != 46){
				//alert("Sila nyatakan nombor sahaja di ruangan ini."); 
				//ele.value = replace;
				return false;
			}

			replace = replace + num.charAt(i);
		}
	}

	return true;
}

// function to check whether user entering a number inside a text fields
function goFormIsNumber(ele){
	return goIsNumber(ele.value);
}


//---------------------------------------------------------------------------------------------------------

//function to replace some specified string with some new specified string
function goStrReplace(str, sub, newSub){
	var locSub = str.indexOf(sub);
	
	while (locSub > -1){
		var leftStr = str.substring(0, locSub);
		var rightStr = str.substring((locSub + sub.length), str.length);
		
		str = leftStr + newSub + rightStr;
		
		locSub = str.indexOf(sub);
	}
	
	return str;
}


function goIsEmail(str){
	var PosAlias = str.indexOf("@");
	if (PosAlias < 1 || PosAlias > str.length -1 || PosAlias != str.lastIndexOf("@")) return false;
	
	if (!IsAlpha(str.charAt(0))) return false;
	if (!IsAlpha(str.charAt(str.length-1))) return false;
	
	var PosLastDot = str.lastIndexOf(".");
	if (PosLastDot >= str.length-1 || PosLastDot < PosAlias) return false;
	
	return true;
}

function goIsJunkWord(str){
	//var JunkWord = new Array("fuc", "suc", "fux", "sux", "cipan", "tahik", "puki", "babi", "bodo", "mangkuk", "bangang", "kimak", "kemak", "hampeh", " ass ", "buthole", "taik", "pantat", "gentel", "korek", "shit", "mampus", "cibai", "butthole", "dubur", "koter", "jubo", "jubur", "pantek", "gampang", "lancau", "nyonyot", "lanyak", "hampuk", "sial", "celaka", "bastard", "hell", "bohsia", "bosia", "bohjan", "bojan", "butuh", "butoh", "pelir");
	var JunkWord = new Array("fuck");
	
	var ContraWord = new Array("hassan", "hello");
	
	var JunkWordFound = null;
	
	str = str.toLowerCase();
	
	result = false;
	
	for (i=0; i<JunkWord.length; i++){
		if (str.indexOf(JunkWord[i]) > -1){
			JunkWordFound = JunkWord[i];
			result = true;
			i += JunkWord.length;
		}
	}

	for (j=0; j<ContraWord.length; j++){
		if (ContraWord[j].indexOf(JunkWordFound) > -1){
			result = false;
			j += ContraWord.length;
		}
	}
	
	
	return result;
}

// Check whether string s is empty.
function goIsEmpty(s){
	return ((s == null) || (s.length == 0))
}

// Returns true if string s is empty or whitespace characters only.
function goIsWhiteSpace(s){
	var WhiteSpace = " \t\n\r";
	
	if (goIsEmpty(s)) return true;
	
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);
		
		if (WhiteSpace.indexOf(c) == -1) return false;
	}

	return true;
}

// Returns true if string s has no whitespace
function goIsAnyWhiteSpace(s){
	if (goIsEmpty(s)) return false;
	
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);
		
		if (goIsWhiteSpace(c)) return false;
	}

	return true;
}

function goIsDigit (c){
	return ((c >= "0") && (c <= "9"))
}

function goIsLetter (c){
	return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function goIsLetterUpper (c){
	return ( (c >= "A") && (c <= "Z") )
}

function goIsLetterLower (c){
	return ( (c >= "a") && (c <= "z") )
}


function goIsAlphaNum(str, strCase, WhiteSpace, Bag){
	if (goIsEmpty(str)) return false;
	
	if (!Bag){
		Bag = goSpecialChars();
	}
	
	var ExtraBagStatus = false;
	
	for (i=0; i<str.length; i++){
		var c = str.charAt(i);
		
		if (WhiteSpace){
			if (i == 0){
				if (goIsWhiteSpace(c)) return false;
			}
			else if (i == str.length-1){
				if (goIsWhiteSpace(c)) return false;
			}
			
			if (!strCase){
				if ( !( goIsLetter(c) || goIsDigit(c) || goIsInBag(c, Bag) ) ) return false;
			}
			else {
				if ( strCase == 1 && !( goIsLetterUpper(c) || goIsDigit(c) || goIsWhiteSpace(c) || goIsInBag(c, Bag) ) ) return false;
				if ( strCase == 2 && !( goIsLetterLower(c) || goIsDigit(c) || goIsWhiteSpace(c) || goIsInBag(c, Bag) ) ) return false;
			}
		}
		else {
			if (!strCase){
				if ( !( goIsLetter(c) || goIsDigit(c) || goIsInBag(c, Bag) ) ) return false;
			}
			else {
				if ( strCase == 1 && !( goIsLetterUpper(c) || goIsDigit(c) || goIsInBag(c, Bag) ) ) return false;
				if ( strCase == 2 && !( goIsLetterLower(c) || goIsDigit(c) || goIsInBag(c, Bag) ) ) return false;
			}
		}
	}
	
	return true;
}

function goIsAlpha(str, strCase, WhiteSpace){
	if (goIsEmpty(str)) return false;
	
	for (i=0; i<str.length; i++){
		var c = str.charAt(i);
		
		if (WhiteSpace){
			if (i == 0){
				if (goIsWhiteSpace(c)) return false;
			}
			else if (i == str.length-1){
				if (goIsWhiteSpace(c)) return false;
			}
			
			if (!strCase){
				if ( !goIsLetter(c) ) return false;
			}
			else {
				if ( strCase == 1 && !( goIsLetterUpper(c) || goIsWhiteSpace(c) ) ) return false;
				if ( strCase == 2 && !( goIsLetterLower(c) || goIsWhiteSpace(c) ) ) return false;
			}
		}
		else {
			if (!strCase){
				if ( !( goIsLetter(c) || IsDigit(c) ) ) return false;
			}
			else {
				if ( strCase == 1 && !goIsLetterUpper(c) ) return false;
				if ( strCase == 2 && !goIsLetterLower(c) ) return false;
			}
		}
	}
	
	return true;
}

function goIsInteger(str){
	if (goIsEmpty(str)) return false;

	for (i=0; i<str.length; i++){
		if ( !goIsDigit(str.charAt(i)) ) return false;
	}
	
	return true;
}

function goSpecialChars(){
	var SpecialChars = new Array("~", "`", "!", "@", "#", "$", "%", "%", "^", "&", "*", "(", ")", "-", "+", "=", "{", "}", "[", "]");
	return SpecialChars;
}

function goIsSpecialChar(c){
	var SpecialChars = goSpecialChars();
	
	return goIsInBag(c, SpecialChars);
}


function goIsFloat(str, maxDigit, maxDecimal){
	if (goIsInteger(str)) return false;
	
	if (goIsNumber(str)){
		var DecimalPoint = str.indexOf(".");
		if (DecimalPoint == -1) return false;
		if (DecimalPoint != str.lastIndexOf(".")) return false;
		
		var left = str.substr(0, DecimalPoint)
		if (left.length == 0) return false;
		if (maxDigit) if (left.length > maxDigit) return false;
		
		var right = str.substr(DecimalPoint + 1, str.length - DecimalPoint-1);
		if (right.length == 0) return false;
		if (maxDecimal) if (right.length > maxDecimal) return false;
		
		left = parseInt(left, 10);
		right = parseInt(right, 10);
		
		return true;
	}
	
	return false;
}

function goIsCurrency(str){
	return goIsFloat(str, null, 2);
}


function goIsInBag(c, Bag){
	if (c && Bag){
		for (jkl=0; jkl<Bag.length; jkl++){
			if (c.charCodeAt(0) == Bag[jkl]) return true;
		}
	}
	
	return false;
}

function goStrLength(str){
	return str.length;
}

function goIsPhpFunction(str){
	if (goIsEmpty(str)) return false;
	
	c1 = str.charAt(0);
	if (goIsWhiteSpace(c1)) return false;
	if (goIsDigit(c1)) return false;
	if (goIsSpecialChar(c1)) return false;
	
	for (ik=1; ik<str.length; ik++){
		var c = str.charAt(ik);
		
		if (goIsWhiteSpace(c)) return false;
		if (goIsSpecialChar(c)) return false;
	}
	
	return true;
}

//start check date format - japlo add
var dtCh= "-";
var minYear=1900;
var maxYear=2100;

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 strDay=dtStr.substring(0,pos1)
	var strMonth=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("Format tarikh sepatutnya : mm-dd-yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Sila isi tarikh bulan yang sah")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Sila isi hari tarikh yang betul")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Sila isi 4 digit yang betul antara "+minYear+" dan "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("Sila isi format tarikh yang betul")
		return false
	}
return true
}

//end check date format

function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;

}

//check for correct intiger text
function isInteger(s) { return (/^\s*\d+\s*$/).test(s) }

//check for correct float text
function isFloat(s) { return (/^\s*\d+(\.\d+)?\s*$/).test(s) }
//-------------------------------------------------
// ADDED BY PETE for tab management and etc
//-------------------------------------------------
function switchTab(tab_no){
	for (i=0; i<tab_array.length; i++) {
		if (i==(tab_no))
		{
			anrShowObj("Tbl"+tab_array[i]);
			//anrShowObj("Button"+tab_array[i]);
 		  SetClass("Btn"+tab_array[i], "BtnTabOn");
		} else {
		   anrHideObj("Tbl"+tab_array[i]);
		   //anrHideObj("Button"+tab_array[i]);
		   SetClass("Btn"+tab_array[i], "BtnTabOff");
		}
	}
}

function anrHideObj(ObjID, WhichDoc){
	var obj = false;

	if (!WhichDoc){
		WhichDoc = document;
	}

	if (WhichDoc.all)
		obj = WhichDoc.all[ObjID];
	else
		obj = WhichDoc.getElementById(ObjID);

	if (obj){
		obj.style.display = 'none';
		obj.style.visibility = 'hidden';
		tabContentWidth = obj.style.width;//simpan width asal
	}
}

function anrShowObj(ObjID, WhichDoc){
	var obj = false;

	if (!WhichDoc){
		WhichDoc = document;
	}

	if (WhichDoc.all)
		obj = WhichDoc.all[ObjID];
	else
		obj = WhichDoc.getElementById(ObjID);

	if (obj){
		obj.style.display = '';
		obj.style.visibility = 'visible';
		obj.style.width = tabContentWidth;//restore width asal
	}
}

function SetClass(ObjId, ClassName, WhichFrame) {
	if(!WhichFrame) WhichFrame = window;
	
	WhichFrame.document.getElementById(ObjId).className = ClassName;
	
}
   
//date must be a string of date format YYYY-MM-DD
function days_between(datestr1, datestr2) {

		var datearr1 = datestr1.split("-");
		var datearr2 = datestr2.split("-");
		
		var date1 = new Date ( datearr1[0], datearr1[1]-1, datearr1[2] );
		var date2 = new Date ( datearr2[0], datearr2[1]-1, datearr2[2] );
		
    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24

    // Convert both dates to milliseconds
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()

    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms)
    
    // Convert back to days and return
    return Math.round(difference_ms/ONE_DAY)

}

//date must be a string of date format YYYY-MM-DD
//datemask must be 7 character starting with sunday ex. S-TWTFS
function days_subscription(datestr1, datestr2, datemask) {
//alert('datestr1='+datestr1+',datestr2='+datestr2+',datemask='+datemask);
		var datearr1 = datestr1.split("-");
		var datearr2 = datestr2.split("-");
		var datemaskarr = datemask.split("");
		
		var date1 = new Date ( datearr1[0], datearr1[1]-1, datearr1[2] );
		var date2 = new Date ( datearr2[0], datearr2[1]-1, datearr2[2] );
		
    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24;

		var day1 = date1.getDay();
		var day2 = date2.getDay();
		var difference_day = day1 - day2;
		var extra_subday = 0;
		var extra_day = 0;
		
		//alert('diffday='+difference_day);
		
		if (difference_day==1){
			
		} else if (difference_day<1) {
			for (i=day1;i<=day2;i++) {
				extra_day++;
				if (datemaskarr[i]!='-') extra_subday++;
			}
		} else {
			for (i=day1;i<=6;i++) {
				extra_day++;
				if (datemaskarr[i]!='-') extra_subday++;
			}			
			for (i=0;i<=day2;i++) {
				extra_day++;
				if (datemaskarr[i]!='-') extra_subday++;
			}			
		}
		
    // Convert both dates to milliseconds
    var date1_ms = date1.getTime();
    var date2_ms = date2.getTime();

    // Calculate the difference in milliseconds
    var difference_ms = date2_ms - date1_ms;
    
    if (difference_ms<0) return 'Wrong Date';
    
    // Convert back to days and return
    var days_between =  Math.round(difference_ms/ONE_DAY);
    var numofweek = (days_between-(extra_day-1))/7;
    
    //alert('days_between='+days_between+',extra_day='+extra_day+',numofweek='+numofweek);
    
    var sub_day = 0;
		for (i=0;i<7;i++) {
			if (datemaskarr[i]!='-') sub_day++;
		}			
    
    sub_day = sub_day * numofweek;
    
    return sub_day+extra_subday;

}

// Return a boolean value telling whether // the first argument is an Array object. 

function isArray() {
	if (typeof arguments[0] == 'object') {  
		var criterion =  arguments[0].constructor.toString().match(/array/i); 
 		return (criterion != null);  
 	}
 	return false;
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}


function showdiv(divname) 
{ 
   document.getElementById(divname).style.display = "block"; 
} 
 
function hidediv(divname) 
{ 
   document.getElementById(divname).style.display = "none"; 
}