﻿function restrictNum(e,hasDot,hasSpace){
    var key = (window.event) ? event.keyCode : e.which;
    var bl = (key > 32 && key < 41) || (key > 44 && key < 47) || (key > 47 && key < 58) || (key > 95 && key < 106) || (key > 7 && key < 10) || (key > 111 && key < 124) ;
    bl = (hasDot) ? (bl || key == 190 || key == 110 ):bl;
    bl = (hasSpace) ? (bl || key == 32):bl;
    if ( bl )
        return; 
    else {
        if (window.event)   
            window.event.returnValue = null; 
        else                
            e.preventDefault();
    }
}
function currencyToLetters(number) {
	var worth = new Array("", "هزار", "ميليون", "ميليارد", "بليارد", "تليارد", "بيليون", "تليون", "", "", "")
	var output = "";
	var parts = number.split(",");
	for (i = 0; i < parts.length; i++) {
		if (parts[i] != "000") {
			if (i != 0) output += " و ";
			output += parToLetters(parts[i]) + " " + worth[parts.length - i - 1];
		}
	}
	return output;
}
function parToLetters(number) {
	number = parseInt(number, 10) + "";
	var first = new Array("صفر", "يک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه", "ده", "يازده", "دوازده", "سيزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده");
	var second = new Array("", "", "بيست", "سي", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود");
	var third = new Array("", "صد", "دويست", "سيصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد");
	if (parseInt(number) >= 0 && parseInt(number) <= 19)
		return first[number];
	if (parseInt(number) >= 20 && parseInt(number) <= 99)
		return second[number.charAt(0)] + ((number.charAt(1) == '0') ? "" : " و " +  first[parseInt(number.charAt(1))]);
	if (parseInt(number) % 100 == 0)
		return third[parseInt(number) / 100];
	return third[number.charAt(0)] + " و " + parToLetters(number.substr(1));
}
function FormatCurrency(inp){
	inp.value = 0 + inp.value;
	number = filterNum(inp.value);
	number = parseInt(number, 10) + "";
	if (number.length > 3)
	{
		var mod = number.length % 3;
		var output = (mod > 0 ? (number.substring(0, mod)) : '');
		for (i=0 ; i < Math.floor(number.length / 3); i++)
		{
			if ((mod == 0) && (i == 0))
				output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
			else
				output += ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);
		}
	}
	else 
		output = number;
	if(output == 0 && inp.value == "0")
	    inp.value = "";
	 else
	    inp.value = output;
		
	if (document.getElementById(inp.id  + "_Letter" )  != null)
	    document.getElementById(inp.id  + "_Letter").innerHTML = currencyToLetters(output) ;
}
function filterNum(inp){
	re = /^\$|[^0-9]|,/g;
	return inp.replace(re, "");
}