document.onkeypress=catchKey;

function IntegerOnly(obj){
	var aCode = window.event.keyCode;
	var isPermittedKeystroke = ((aCode < 32)    // Non printing
	||(aCode >= 33 && aCode <= 40)				// Page Up, Down, Home, End, Arrow
	||(aCode == 46) || (aCode==8) || (aCode >= 48 && aCode <= 57));				// Delete, Back
	if (isPermittedKeystroke)
	{
	}
	else 
	{
		if (obj.value != ""){
			alert("Numbers only");
			obj.value = "";
		}
	}
}	
			
// Limit the text input in the specified field.
		function LimitInput(textfield, maxLength, showAlert)
		{
			var isPermittedKeystroke;
			var enteredKeystroke;
			var currentFieldLength;
			var inputAllowed = true;
			var selectionLength = parseInt(document.selection.createRange().text.length);
		    
			// Get the current and maximum field length
			currentFieldLength = parseInt(textfield.value.length);

			// Allow non-printing, arrow and delete keys
			enteredKeystroke = window.event.keyCode;
			isPermittedKeystroke = ((enteredKeystroke < 32)                     // Non printing
						||(enteredKeystroke >= 33 && enteredKeystroke <= 40)    // Page Up, Down, Home, End, Arrow
						||(enteredKeystroke == 46))								// Delete

			// Decide whether the keystroke is allowed to proceed
			if ( !isPermittedKeystroke )
			{
				if ( ( currentFieldLength - selectionLength ) >= maxLength ) 
				{
					inputAllowed = false;
				}
			}
			window.event.returnValue = inputAllowed;
			if (inputAllowed == false && showAlert==true) alert("Input limit reached. (" + maxLength + " characters)");
			return (inputAllowed);
		}


		// Limit the text input in the specified field.
		function LimitPaste(textfield, maxLength, showAlert)
		{
			var clipboardText;
			var resultantLength;
			var currentFieldLength;
			var pasteAllowed = true;
			var selectionLength = parseInt(document.selection.createRange().text.length);
			

			// Get the current and maximum field length
			currentFieldLength = parseInt(textfield.value.length);		//alert("current " + currentFieldLength);	
			clipboardText = window.clipboardData.getData("Text"); 	
			resultantLength = currentFieldLength + clipboardText.length - selectionLength;
			//alert("clipboardlength " + clipboardText.length);
			if ( resultantLength > maxLength)
			{
				pasteAllowed = false;
			}    
			
		    if (pasteAllowed == false && showAlert== true) alert("Paste content exceeds input limit (" + maxLength + " characters).");  
			window.event.returnValue = pasteAllowed;		
			return (pasteAllowed);
		}

function AcceptNum(isInt) {
	var aCode = window.event.keyCode;
	//alert(aCode);
	
	if ((aCode >= 48 && aCode <= 57) || (!isInt && aCode == 46) || (!isInt && aCode == 45))
	{
		return true;
	}
	else 
	{
		return false;
	}
}

function AcceptInt() {
	var aCode = window.event.keyCode;
	//alert(aCode);
	
	//backspace key and delete key
	//if (aCode == 8 || aCode == 46)
	//	return true;
		
	if (aCode >= 48 && aCode <= 57)
	{
		return true;
	}
	else 
	{
		alert("Numbers only")
		return false;
	}
}

function FormatPhoneFax(obj)
{
	var obj = window.event.srcElement;
	var aCode = window.event.keyCode;
	//alert(obj.id);
	//alert(aCode);
	
	if (aCode == 8 || aCode == 46) 
		return true;
	else 
	{
		if (obj.value.length == 3 && obj.value.indexOf('-') == -1)
		{
			obj.value = obj.value + '-';
		}
		if (obj.value.length == 7 && obj.value.indexOf('-') == 3)
		{
			obj.value = obj.value + '-';
		}
	}

}

function FormatPIN(obj)
{
	var obj = window.event.srcElement;
	var aCode = window.event.keyCode;
	//alert(obj.id);
	//alert(aCode);
	
	if (aCode == 8 || aCode == 46) 
		return true;
	else 
	{
		if (obj.value.length == 4 && obj.value.indexOf('-') == -1)
		{
			obj.value = obj.value + '-';
		}
		if (obj.value.length == 8 && obj.value.indexOf('-') == 4)
		{
			obj.value = obj.value + '-';
		}
	}
}

function SwapImage(obj, path){
	obj.src = path;		
}

function catchKey() {

	var aCode = window.event.keyCode;
	var obj = window.event.srcElement;	
	if (aCode == 13 && obj.type!='submit' && obj.type!='image' && obj.type != 'button' && obj.type != 'textarea' && obj.type != 'password') return false;			
	return true;
}


function AutoFormatDate(obj) {
	var aCode = window.event.keyCode;
	var obj = window.event.srcElement;
	//alert(aCode);
	
	if ((aCode < 48 || aCode > 57) && (aCode != 47) && (aCode != 8))
	{
		alert("Invalid Date!");
		obj.value='';
		return false;
	}
	//check the month
	var month;
	if (obj.value.length==1)
	{
	   month=parseInt(obj.value);
	   if (month>1) {
	     obj.value=obj.value+'/';
	     return true;
	   }
	}
	
	if (obj.value.length==2)
	{
		month=parseInt(obj.value);
		if (month<13) 
		{
			obj.value = obj.value + '/';
			return true
		} else
		{
			obj.value='';
			return false;
		}
	}
	
	//check date
	var pos1=obj.value.indexOf('/');
	var pos2=obj.value.lastIndexof('/');
	var day 
	
	if ((pos2==pos1) && (pos1!=-1))
	{
		day=obj.value.substr(pos1+1,obj.value.length-pos1-1);
		if (day.length=1 && parseInt(day)>3)
		{
		   obj.value=obj.value + '/';
			return true
		}
		if (day.length=2)
		{
			/*if (parseInt(day)>0 && parseInt(day)<32))
			{		
				obj.value=obj.value + '/';
				return true
			}
			else
			{
				alert('Invalid Input!');
				obj.value='';
				return false
			}*/
		}
	}
	//
		
	
	

	//if (((obj.value.length < 2 && aCode>49 ) || obj.value.length == 2 || obj.value.length == 7) && (aCode >=48 && aCode <= 57) )
	//{
	//	obj.value = obj.value + '/';
	//}
	/*
	if ((obj.value.length < 2 && aCode>49 || obj.value.length == 2)) 
	{
		obj.value = obj.value + '/';
	}
	
	
	    var month;
	    month=obj.value.split("/")[1];
	    alert(month.length);
	    if (month.length=2 || (month.length=1 && aCode>51))
	    {
	    		obj.value = obj.value + '/';
	    }
	    
	 */
	/*
	if (obj.value.length == 6 && (aCode >=48 && aCode <= 57) )
	{
		//obj.value = obj.value + '/';
		return true
	}
	else if (obj.value.length == 6 && (aCode < 48 || aCode > 57))
	{
		obj.value = obj.value.substr(0, 5) + '0' + obj.value.substr(5, 2)
	}
	*/
	
	//if (aCode == 13 && obj.type!='submit' && obj.type!='image' && obj.type != 'button' ) return false;
	return true;
}


/* formatNumber puts ',' appropriately in a number 
   This function will be used onChange event of form objects
*/
function formatNumber(fieldObject)
{
	var temp_value;
	var extract_number; // this will have only numbers no commas
	var Chars = "0123456789,";
	var onlyNumbers = "0123456789";
	var anyNumber = "0";
	var sign = "";

	temp_value = fieldObject.value; 
   	extract_number = "";
   	var decimal_number="";
   	
   	//extract - sign if number is negative
   	if (temp_value < 0){
   		sign = "-";
   		temp_value = temp_value.substr(1);
   	}
   	
   	/*extract the decimal part of the number
   	*/
   	if (temp_value.indexOf(".") != -1)
   	{
   		decimal_number = temp_value.substr(temp_value.indexOf("."));
   		temp_value = temp_value.substr(0, temp_value.indexOf("."));
   	}

	/* if the value entered does not a single integer it is wrong
	   just return the value and it will be caught on submit
	   in the save event of form
	*/
   	for (var i = 0; i < temp_value.length; i++) 
   	{
   		//alert(onlyNumbers.indexOf("1"));
   		//alert(onlyNumbers.indexof(temp_value.charAt(i)));
		if (onlyNumbers.indexOf(temp_value.charAt(i)) != -1)
		{
			anyNumber = "1";
			break;	 
		}
	}
	if (anyNumber == "0")	
		return;

   	for (var i = 0; i < temp_value.length; i++) 
   	{ 	
		// if it is not a number or a number with commas return 
		//  else take out commas from the number 
		if  (Chars.indexOf(temp_value.charAt(i)) == -1) 
       		{ 
             		return; 
       		}
		else
		{ 
			if (onlyNumbers.indexOf(temp_value.charAt(i)) != -1) //if character is a number
			{
				extract_number = extract_number + temp_value.charAt(i);
			}
		}
  	}
	
	/* now extract_number is only a number 
	   so format it properly with commas */

	var commaindex;
	var formattedNumber = "";


	var length = extract_number.length;
		
	commaindex = length - 3;

	while(length > 3)
	{
		
		formattedNumber = "," + extract_number.substr(commaindex,3)  + formattedNumber;
		commaindex -= 3;
		length -=3;
	}

	formattedNumber = extract_number.substr(commaindex,length) + formattedNumber;
	if (decimal_number != "")
		fieldObject.value = formattedNumber + decimal_number;
	else
		fieldObject.value = formattedNumber;
	
	if (sign != "")
		fieldObject.value = sign + fieldObject.value;
}
