//format the number with decimals
function format2digit(s){
	s=parseFloat(s);
	s=s +'';					
	if(s != null &&  !isNaN(s)){
		var len = s.length;
		var decfound = false;
		var i;
		for (i = 0; i < len ; i++){
			var c = s.charAt(i);
			if (c == '.')  decfound = true;
			if (decfound==true){
				if (i == (len-3)) break; 
				if (i == (len-2)) {s=s+'0';  break;} 
				s = s.substring(0, i + 3 ) ;  break; 
			}
		}
		if (decfound==false) s=s +'.00';
		return s;
	}else{
		return '0.00';
	}
}

//format the currency
function FormatCurrency(num,nCountryCode){       
		var sVal='';
		var minus='';
		var Decimal='.';
		var decipart='';
		var isdecimal = true;
		num=num.toString();
		if (num.lastIndexOf("-") == 0) { minus='-'; }
		if (num.lastIndexOf(Decimal) < 0) { num=num + "00";isdecimal=false; }
		if(isdecimal){decipart=FormatClean(num.split(Decimal)[1]);num=num.split(Decimal)[0]+'00';}
		num = FormatClean(num);
		if(!isdecimal)
			sVal = minus + FormatDollar(num,",");
		else
			sVal = minus + FormatDollar(num,",") + "." + decipart; 
		if(sVal==0){sVal='';}
		return sVal;
}
	
function FormatClean(num){
	var sVal='';
	var nVal = num.length;
	var sChar='';
	var findfirst=false;
	var rVal='';
	try{
		for(i=0;i<nVal;i++){
			sChar = num.charAt(i);
			nChar = sChar.charCodeAt(0);
			if ((nChar >=48) && (nChar <=57)) sVal += num.charAt(i);   
		}
	}
	catch (exception) { AlertError("Format Clean",e); }
		
	nVal = sVal.length;
	try{
		for(i=0;i<nVal;i++){
			sChar = sVal.charAt(i);
			nChar = sChar.charCodeAt(0);
			if ((nChar >48) && (nChar <=57) || findfirst) {
				rVal += sVal.charAt(i);   
				findfirst=true;
			}
		}
	}
	catch (exception) { AlertError("Format Clean",e); }
	if(rVal=='') rVal='0';
	return rVal;
}

function FormatCents(amount){
	var cents = '';
	try{
		amount = parseInt(amount);
		var samount = new String(amount);
		if (samount.length == 0) { return '00'; }
		if (samount.length == 1) { return '0' + samount; }
		if (samount.length == 2) { return samount; }
		cents =  samount.substring(samount.length -2,samount.length);
	}
	catch (exception) { AlertError("Format Cents",e); }
	return cents;
}
	
function FormatDollar(amount,CommaDelimiter){
	try {
		amount = parseInt(amount);
		var samount = new String(amount);
		if (samount.length < 3) { return 0; }  
		samount =  samount.substring(0,samount.length -2);
		for (var i = 0; i < Math.floor((samount.length-(1+i))/3); i++){
			samount = samount.substring(0,samount.length-(4*i+3)) + CommaDelimiter + samount.substring(samount.length-(4*i+3));
		}
	}
	catch (exception) { AlertError("Format Comma",e); }
	return samount;
}

//validate and format the phone number
function ValidatePhone(m){
	p=m.value
	if(p.length==3){
			pp=p;
			d4=p.indexOf('(')
			d5=p.indexOf(')')
			if(d4==-1){
					pp="("+pp;
			}
			if(d5==-1){
					pp=pp+")";
			}
			m.value="";
			m.value=pp;
	}
	if(p.length>3){
			d1=p.indexOf('(')
			d2=p.indexOf(')')
			if (d2==-1){
					l30=p.length;
					p30=p.substring(0,4);
					p30=p30+")"
					p31=p.substring(4,l30);
					pp=p30+p31;
					m.value="";
					m.value=pp;
			}
	}
	if(p.length>5){
			p11=p.substring(d1+1,d2);
			if(p11.length>3){
				 p12=p11;
				 l12=p12.length;
				 l15=p.length
				 p13=p11.substring(0,3);
				 p14=p11.substring(3,l12);
				 p15=p.substring(d2+1,l15);
				 m.value="";
				 pp="("+p13+")"+p14+p15;
				 m.value=pp;
			}
			l16=p.length;
			p16=p.substring(d2+1,l16);
			l17=p16.length;
			if(l17>3&&p16.indexOf('-')==-1){
					p17=p.substring(d2+1,d2+4);
					p18=p.substring(d2+4,l16);
					p19=p.substring(0,d2+1);
			pp=p19+p17+"-"+p18;
			m.value="";
			m.value=pp;
			}
	}
}

function FormatPhone(pno){
	var result='',pos=0;
	pno=trim(pno);
	pno=pno.replace(/[()-]/ig,'');
	if(pno.length>=3){
		result='('+pno.substr(0,3)+')';
		pos=3
	}
	if(pno.length>7){
		result=result+pno.substr(3,3)+'-';
		pos=6
	}
	result=result+pno.substr(pos);
	return(result);
}

//some string/intenger functions		
function trim(str){
	var i=0;
	var leftpos,rightpos;
	for(i=1;i<=str.length;i++){
		if(str.substr(i-1,1)!=' '){
			leftpos=i-1;
			break;
		}
	}
	for(i=str.length;i>=1;i--){
		if(str.substr(i-1,1)!=' '){
			rightpos=i;
			break;
		}
	}
	return(str.substr(leftpos,rightpos));
}

function tonumber(val){
	if(isNaN(val)) return(0);
	if (val==''){val=0;}
	val=val.toString();
	return parseInt(val);
}

function cint(num){
	num=trim(num);
	if(isNaN(num)) return(0);
	else return(num);
}

//validate the cc expiry date
function ValidateExpDate(m){
	p=m.value
	if(p.length==2){
		pp=p;
		d4=p.indexOf('/')
		if(d4==-1){
				pp=pp+'/';
		}
		m.value="";
		m.value=pp;
	}
	if(p.length>2){
		d2=p.indexOf('/')
		if (d2==-1){
				l30=p.length;
				p30=p.substring(0,2);
				p30=p30+"/"
				p31=p.substring(4,l30);
				pp=p30+p31;
				m.value="";
				m.value=pp;
		}
	}
}

//validate the max length in textarea/textbox object
function validatemaxlength(objtxt,len,name){
	if (parseInt(objtxt.value.length)>parseInt(len)){
		alert(name + "  must be with in " + len + " characters!")
		objtxt.focus();
		return false;
	}
}