function checkAll(flag,form,checkbox_name){
	for (i = 0; i < form.length; i++){
		var e=form[i];
		if ((e.name == checkbox_name) && (e.type=='checkbox')){
			if(flag.checked){
				e.checked = true ;
			}
			else{
				e.checked = false;
			}
		}
	}
}

function uncheckAll(form,checkbox_name){
	for (i = 0; i < form.length; i++){
		var e=form[i];
		if ((e.name == checkbox_name) && (e.type=='checkbox')){
			e.checked = false ;
		}
	}
}





function DBC2SBC (str) {
        var i;
        var result='';
        for(i=0; i < str.length; i++)
        {
                code = str.charCodeAt(i);

                if (code == 12290)
                {
                        result += String.fromCharCode(46);
                }
                else if (code == 183)
                {
                        result += String.fromCharCode(64);
                }
                else if(code >= 65281 && code<65373)
                {
                        result += String.fromCharCode(str.charCodeAt(i)-65248);
                }
                else
                {
                        result += str.charAt(i);
                }
        }
        return result;
}


function new_window(w,h,url)
{
	var l=(window.screen.width/2)-w/2;
	var t=(window.screen.height/2)-h/2;
	window.open(url,'','width='+w+',height='+h+',top='+t+',left='+l+',menubar=no,toobar=no,scrollbar=no,resizable=no,status=no,loation=no');
}

function check_all(form_object)
{
	for (var i=0;i<form_object.elements.length;i++)
	{
		var e = form_object.elements[i];
		if ((e.name != 'check_all_box') && (e.type=='checkbox') && (!e.disabled))
		{
			e.checked = form_object.check_all_box.checked;
		}
	}
}

function uncheck_all(form_object)
{	
	var total_checkboxes = 0;
	var total_checkedboxes = 0;
	for (var i=0;i<form_object.elements.length;i++)
	{
		var e = form_object.elements[i];
		if ((e.name != 'check_all_box') && (e.type=='checkbox'))
		{
			total_checkboxes++;
			if (e.checked)
			{
				total_checkedboxes++;
			}
		}
	}
	
	if (total_checkboxes==total_checkedboxes)
	{
		form_object.check_all_box.checked=true;
	}
	else
	{
		form_object.check_all_box.checked=false;
	}
}



function inputEmail(input,msg){
	var re = /^[_a-zA-Z0-9\-\.]+@([\-_a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,3}$/;
	if(!input.value.match(re)){
		return False(input,msg);
	}
	else{
		return true;
	}
		
	//var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT|name|NAME)$"
    //var re = new RegExp(regu);
    //if (input.value.search(re) != -1){
	//	return true;
	//}
	//else{
	//	return False(input,msg);
	//}
}

function False(input,msg){
	alert(msg);
	input.focus();
	return false;
}

function isnumber(input,msg){
	for (var i=0; i < input.value.length; i++){
		var oneChar = input.value.substring(i,i+1)
		if ((oneChar < "0" || oneChar > "9" ) && oneChar !=".") {
			return False(input,msg);
		}
	}
	return true;
}

function verifynumber(thisa){
    return event.keyCode>=48&&event.keyCode<=57||(thisa.value.indexOf('.')<0?event.keyCode==46:false);
}

function inputIDCard(input,year,msg)
{
	//if(input.value=="")	return true;
	var regExp = /^\d{6}(\d{2}|)(\d{2})(\d\d)(\d\d)(?:\d\d\d(\d|x|))$/i;
	var matched;
	if((matched = input.value.match(regExp))==null)
		return False(input,msg);
	if(matched[1]==""&&matched[5]!="")
		return False(input,msg);
	if(matched[1]!=""&&(parseInt(matched[1])!=19||matched[5]==""))
		return False(input,msg);
	else
	{
		if(matched[1]=="")	id_year="19"+matched[2];
		else	id_year=matched[1]+matched[2];
		if(id_year!=year)
			return False(input,msg);
	}
	if(parseInt(matched[2])<30)
		return False(input,msg);
	if(parseInt(matched[3])>12)
		return False(input,msg);
	if(parseInt(matched[4])>31)
		return False(input,msg);
	return true;
}



function Check_Character(obj,msg,minlength,maxlength){
	if(minlength > 0 ){
		if(obj.value==""){
			window.alert("Please fill in " + msg);
			obj.focus();
			return false;
		}
	}
	if(obj.value.length < minlength || obj.value.length > maxlength){
		window.alert("the length of " + msg+" between " + minlength + " and " + maxlength);
		obj.focus();
		return false;
	}
	var fields = new Array("'","[","]","|","\"");
	for (var i=0;i<obj.value.length;i++){
		for (var j=0;j<fields.length;j++){
			if(obj.value.substring(i,i+1) == fields[j]){
				alert( msg + " has invalid character ");
				obj.focus();
				return false;  
			}
		}
	}
	return true;

}

function viewLoading(img_url){
	var loader=document.createElement('<div class="loading"  style="z-index:1;visibility:visible; position:absolute;left:0px;top:0px;height:40px;width:309px"></div>');
	
	loader.innerHTML='<img src="' + img_url + '" width="309" height="40">'
	loader.style.pixelTop=document.body.scrollTop+document.body.clientHeight/2-50
	loader.style.pixelLeft=document.body.scrollLeft+document.body.clientWidth/2-155
	document.body.appendChild(loader)
}



function isDate (theStr) {
	
	var the1st = theStr.indexOf('-');
	var the2nd = theStr.lastIndexOf('-');

	if (the1st == the2nd) { return(false); }
	else {
	var y = theStr.substring(0,the1st);
	var m = theStr.substring(the1st+1,the2nd);
	var d = theStr.substring(the2nd+1,theStr.length);
	var maxDays = 31;

	if (isInt(m)==false || isInt(d)==false || isInt(y)==false) 
		return(false);
	else if (y.length < 4) return(false);
	else if (!isBetween (m, 1, 12)) return(false); 
	else if (m==4 || m==6 || m==9 || m==11) maxDays = 30;
	else if (m==2) {
		if (y % 4 > 0) maxDays = 28;
		else if (y % 100 == 0 && y % 400 > 0) maxDays = 28;
		else maxDays = 29;
	}
	if (isBetween(d, 1, maxDays) == false) { return(false); }
	else { return(true); }
	}
}
function isBetween (val, lo, hi) {
	if ((val < lo) || (val > hi)) { return(false); }
	else { return(true); }
}

function isInt (theStr) {
	var News_Catalog = true;
	if (isEmpty(theStr)) { News_Catalog=false; }
	else{
		for (var i=0; i<theStr.length; i++) {
			if (isDigit(theStr.substring(i,i+1)) == false) {
				News_Catalog = false; break;
			}
		}
	}
	return(News_Catalog);
}

function isDigit(s){
	var patrn=/^[0-9]{1,20}$/;
	if (!patrn.exec(s)) return false
	return true
}
function isEmpty (str) {
	if ((str==null)||(str.length==0)) return true;
	else return(false);
}

function isPositiveNum(str){
return /^[0-9\.]+$/ig.test(str)	
	
}

//Count string byte number, return integer
String.prototype.ByteCount = function()
{
	txt = this.replace(/(<.*?>)/ig,"");
	txt = txt.replace(/([\u0391-\uFFE5])/ig, "11");
	var count = txt.length;
	return count;
}


function nl2br(str){
		return str.replace(/([^>])\n/g, '$1<br />');
}
function trim(str) {
		return str.replace(/^\s+|\s+$/g,"");
}
function ltrim(str) {
		return str.replace(/^\s+/,"");
}
function rtrim(str) {
		return str.replace(/\s+$/,"");
}
function strip(str) {
    	return str.replace(/^\s+/, '').replace(/\s+$/, '');
}
function stripTags(str) {
		return str.replace(/<\/?[^>]+>/gi, '');
}
function escapeHTML(str) {
		return str.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
}
function unescapeHTML(str) {
		return str.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&nbsp;/g,' ').replace(/&quot;/g,'"');
}
function include(str,key){
		return str.indexOf(key) > -1;
}
function startsWith(str,key){
		return str.indexOf(key) === 0;
}
function endsWith(str,key){
	    var d = str.length - key.length;
	    return d >= 0 && str.lastIndexOf(key) === d;	
}
function isBlank(str){
		return strip(str) == '';
}
function isEmail(str){
		return /^[A-Z_a-z0-9-\.]+@([A-Z_a-z0-9-]+\.)+[a-z0-9A-Z]{2,4}$/.test(str);
}
function isPhone(str){
		return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/.test(str);
}
function isMobile(str){
		return /^((\(\d{2,3}\))|(\d{3}\-))?((1[35]\d{9})|(18[89]\d{8}))$/.test(str);
}
function isUrl(str){
		return /^(http:|ftp:)\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"])*$/.test(str);
}
function isIp(str){
		return /^(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5]).(0|[1-9]\d?|[0-1]\d{2}|2[0-4]\d|25[0-5])$/.test(str);
}
function isNum(str){
		return /^\d+$/.test(str);
}
function isZip(str){
		return /^[1-9]\d{5}$/.test(str);
}
function isEN(str){
		return /^[A-Za-z]+$/.test(str);
}

function isCharNumOnly(str){   
   return /^[A-Za-z0-9]+$/.test(str);
}   





