
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;
	}
		
}

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 isValidDate( year, month, day )
{
   year  = parseInt(year,10);
   month = parseInt(month,10);
   day   = parseInt(day,10);

   if (( month==4) || (month==6) || (month==9) || (month==11) )
   { if (( day < 1) || (day > 30) )
     { alert( "Date should between 1 to 30" );
       return (false);
     }
   }
   else
   { if ( month!=2 )
     { if ( (day < 1) || (day > 31 ))
       {  alert( "Date should between 1 to 31" );
          return (false);
       }
     }
     else
     { // month == 2
       if ( ( year % 100 ) != 0 && (year % 4 == 0) || ( year % 100 ) == 0 && ( year % 400) == 0 )
       { if ( day > 29 )
         {  alert( "Date should between 1 to 29" );
            return (false);
         }
       }
       else
       { if ( day > 28 )
         { alert( "Date should between 1 to 28" );
           return (false);
         }
       }
     }
   }
 return (true);
}

function checkMobileNo(mobileNo){
	
if (mobileNo == "")
  {
    alert("Please fill in mobile phone");
    return (false);
  }

  if (mobileNo.length < 11)
  {
    alert("length of mobile phone should be 11");
    return (false);
  }

  if (mobileNo.length > 11)
  {
    alert("length of mobile phone should be 11");
    return (false);
  }
  
  if (isNaN(mobileNo))
  {
    alert("invalid mobile phone format");
    return (false);
  }
  
  var mo2 = mobileNo.substring(0,3);
  
  if(!(mo2=='134'||mo2=='135' || mo2=='136' || mo2=='137' || mo2=='138' || mo2=='139')){
    alert("invalid mobile phone format");
    return (false);
  }
  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(dataValue) {
var regex = new RegExp("^(?:(?:([0-9]{4}(-|\/)(?:(?:0?[1,3-9]|1[0-2])(-|\/)(?:29|30)|((?:0?[13578]|1[02])(-|\/)31)))|([0-9]{4}(-|\/)(?:0?[1-9]|1[0-2])(-|\/)(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))(-|\/)0?2(-|\/)29))))$");
return regex.test(dataValue);
}


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);
}

//trim spaces with regular expression
String.prototype.trim = function()
{
	return this.replace(/(^\s*)|(\s*$)/g, "");
}

//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 checkMBPhone(phone){
	var mbphno = /^(13[0-9])|(15[0-9])|(18[0-9])/;
	var num11 = /^\d{11}$/;
	if( "" != phone ){
		if(num11.exec(phone)){
			if(mbphno.exec(phone)){
			    return true;
			}
			else{
				return false;
			}
		}
		else{
			return false;
		}
	}
	else{
		return false;
	}  
    return false;
}  


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);
}   

function getPosition(_f6){
	var _f7=document.body;
	_f6=document.getElementById(_f6);
	var rl=0;
	var rt=0;
	var p=_f6;
	try{
		while(p&&p!=_f7){
			rl+=p.offsetLeft;
			rt+=p.offsetTop;
			p=p.offsetParent;
		}
		//alert(rl);
	}
	catch(e){
	}
	return {"left":rl,"top":rt};
}

function realLeft(_fb){
return getPosition(_fb).left;
}

function realTop(_fd){
return getPosition(_fd).top;
}


function checknumber(String) 
{ 
    if(trimTxt(String)=="")
    {
       return false;
    }
    var Letters = "1234567890"; 
    var i; 
    var c; 
    for( i = 0; i < String.length; i ++ ) 
    { 
        c = String.charAt( i ); 
        if (Letters.indexOf( c ) ==-1) 
        { 
           return false; 
        } 
    } 
    return true; 
} 
function trimTxt(txt)
{
   return txt.replace(/(^\s*)|(\s*$)/g, "");
}


function setAjaxBase(objUpdated,postType,requstURL,ajaxParam,curBtn,runCode,onOverRunCode)
{ 
		  var ajaxUpdateList = new Ajax.Updater(
		     { success: objUpdated },
			 requstURL ,
			 {
				 encoding:'gb2312',
				 method: 'get',
				 parameters: ajaxParam,
				 onCreate:function(){
					 if(curBtn){
						 curBtn.disabled = true;
					 }
					 if(runCode){
						 eval(runCode);
					 }
				 },
				 onComplete:function(){
					 if(curBtn){
						 curBtn.disabled = false;
					 }
					 if(onOverRunCode){
						eval(onOverRunCode); 
					 }
					 
				 },
				 onFailure:function(){
					 alert('failed');
					 if(curBtn){
						 curBtn.disabled = false;
					 }
					 if(onOverRunCode){
						eval(onOverRunCode); 
					 }

				 },
				 evalScripts:true
			 }
		  );
}


function setAjaxBaseUTF8(objUpdated,postType,requstURL,ajaxParam,curBtn,runCode,onOverRunCode)
{ 
		  var ajaxUpdateList = new Ajax.Updater(
		     { success: objUpdated },
			 requstURL ,
			 {
				 encoding:'utf-8',
				 method: postType=='get' ? 'get':'post',
				 parameters: ajaxParam,
				 onCreate:function(){
					 if(curBtn){
						 curBtn.disabled = true;
					 }
					 if(runCode){
						 eval(runCode);
					 }
				 },
				 onComplete:function(){
					 if(curBtn){
						 curBtn.disabled = false;
					 }
					 if(onOverRunCode){
						eval(onOverRunCode); 
					 }
					 
				 },
				 onFailure:function(){
					 alert('failed');
					 if(curBtn){
						 curBtn.disabled = false;
					 }
					 if(onOverRunCode){
						eval(onOverRunCode); 
					 }

				 },
				 evalScripts:true
			 }
		  );
}


function formatCurrencyNumber(value,currency)
{
    var num = new NumberFormat();
    num.setInputDecimal('.');
    num.setNumber(value); 
    num.setPlaces('2', false);
	//if(currency){
	//	num.setCurrencyValue(currency);
	//	num.setCurrency(true);
	//	num.setCurrencyPosition(num.LEFT_OUTSIDE);
	//}
    num.setNegativeFormat(num.LEFT_DASH);
    num.setNegativeRed(false);
    num.setSeparators(true, ',', ',');
	var formatedNum = num.toFormatted();
	if(formatedNum.indexOf('.') == -1)
	{
		return "<span class='currency'><span class='currencycharac'>"+currency+"</span><span class='currencyint'>"+formatedNum+"</span><span class='currencydecimal'></span></span>"
	}
	else
	{
		return "<span class='currency'><span class='currencycharac'>"+currency+"</span><span class='currencyint'>"+formatedNum.substring(0,formatedNum.indexOf('.'))+"</span><span class='currencydecimal'>"+formatedNum.substring(formatedNum.indexOf('.'),formatedNum.length)+"</span></span>"
	}
}


function formatNumberInTwoDecimal(value,currency)
{
    var num = new NumberFormat();
    num.setInputDecimal('.');
    num.setNumber(value); 
    num.setPlaces('2', false);
    num.setNegativeFormat(num.LEFT_DASH);
    num.setNegativeRed(false);
    num.setSeparators(false);
	var formatedNum = num.toFormatted();
	
	
	
	//alert(formatedNum.substring(0,formatedNum.indexOf('.')));
	//alert(formatedNum.substring(formatedNum.indexOf('.')+1,formatedNum.length));
	
}

function fireEvent(element,event){
    if (document.createEventObject){
    // dispatch for IE
    var evt = document.createEventObject();
    return element.fireEvent('on'+event,evt)
    }
    else{
    // dispatch for firefox + others
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent(event, true, true ); // event type,bubbling,cancelable
    return !element.dispatchEvent(evt);
    }
}








