
function getDays(year, month){
	switch(month){
	    case 1:
	    case 3:
	    case 5:
	    case 7:
	    case 8:
	    case 10:
	    case 12:
	      return 31;
	    case 2:{
	      var d = new Date();
		  d.setFullYear(year, 1, 29);
		  var m = d.getMonth();
		  return (m==2)?28:29;
	    } 
	    default:
		  return 30;	    
	}
}

function isValidAccount(aAccStr, minLen, maxLen)
{
	if(aAccStr.length<minLen || aAccStr.length>maxLen )
		return false;
	if(aAccStr.search(/^[A-Za-z0-9]+$/) != -1)
		return true;
	else return false;
}

// verify password
function verifyPassword(pass, passconfirm){
  if(pass.value != passconfirm.value){
    return false;
  }
  return true;
}

function lTrim(str){
  var whitespace = new String(" \t\n\r");
  var s = new String(str);
  if (whitespace.indexOf(s.charAt(0)) != -1){
    var j=0, i = s.length;
    while (j < i && whitespace.indexOf(s.charAt(j)) != -1){
      j++;
    }
    s = s.substring(j, i);
  }
  return s;
}

function rTrim(str){
  var whitespace = new String(" \t\n\r");
  var s = new String(str);
  if (whitespace.indexOf(s.charAt(s.length-1)) != -1){
    var i = s.length - 1;
    while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1){
      i--;
    }
    s = s.substring(0, i+1);
  }
  return s;
}

function trim(str){
  return rTrim(lTrim(str));
}

// check field is null or empty
function isEmpty(obj){
  if(obj.value==null || trim(obj.value)==""){
    return true;
  }
  return false;
}

// set date field to a string format
function toDateString(year, month, day, date, splitstr){
	var str = year.value + splitstr +
	           month.value + splitstr +
			   day.value;
	date.value = str;
}

// create year list
function createYearList(start, end, list){
	var olen = list.length;
	var total = olen + (Math.abs(end - start) + 1);
	list.length = total;
	var delta = total - olen;
	var inc = (start<=end)?1:-1;
	for(var i=0;i<delta;i++){
		list.options[olen+i] = new Option(start+(i*inc), start+(i*inc));
	}
}

// check email format
function isValidEmail(emailstr){
	if (emailstr.length <= 0){
		return false;
	}
	return (emailstr.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1);
}

// clone option list
function optionClone(opts){
	var destOpts = new Array(opts.length);
	for(var i=0;i<destOpts.length;i++){
		destOpts[i] = new Option(opts[i].text, opts[i].value);
	}
	return destOpts;
}

// check the object is Integer
function isInt(obj){
    var i = obj.toString().search(/^[-\+]?\d+$/);
	return (i!=0)?false:true;
}

// set which option be selected in option list according to specific value
function setSelectedOption(val, opts){
	for(var i=0;i<opts.length;i++){
		var comp = (isInt(val))?parseInt(opts[i].value):opts[i].value;
		opts[i].selected = (comp == val)?true:false;
	}
}

// string to Date object
function toDate(str, splitstr){
	var units = str.split(splitstr);
	var d = new Date(units[0], units[1]-1, units[2], 0, 0, 0, 0);
	return d;
}

// find object x
function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

// find object y
function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

// create a window
function createWindow(winid, top, left, width, height, zindex, border, bgColor, position){
	var w = document.getElementById(winid);
	if(!w){
		w = document.createElement("div");
		w.setAttribute("id", winid);
		w.style.position = position;
		w.style.top = top;
		w.style.left = left;
		w.style.width = width;
		w.style.height = height;
		w.style.zIndex = zindex;
		w.style.border = border;
		w.style.backgroundColor = bgColor;
	}
	return w;
}

// close a window
function closeWindow(winid){
	var w = document.getElementById(winid);
	if(w){
		document.form1.removeChild(w);
	}
}


function isValidPhone(phoneNo){
	if(phoneNo.length<1){
		return false;
	}
	if(phoneNo.search("^[(][0][0-9][)][0-9]{3,4}[-]?[0-9]{4}$")!=-1){
		return true;
	}
	return false;
}

function isValidCellPhone(phoneNo){
	if(phoneNo.length<1){
		return false;
	}
	if(phoneNo.search("^[0][9][0-9]{2}[-]?[0-9]{6}$")!=-1){
		return true;
	}
	return false;
}

function textCounter(obj, limit){
  if (obj.value.length > limit) // if too long...trim it!
    obj.value = obj.value.substring(0, limit);
}
