﻿// JScript File
// Go to next element or back element of objTable elements
function noenter() 
{
    return !(window.event && window.event.keyCode == 13); 
}
function ChangeFocus(objTable)
{
    try
    {
        if (window.event.keyCode == 13)
        {           
            var nextTabIndex = document.activeElement.tabIndex;
            nextTabIndex += (event.shiftKey) ? -1 : 1;
            for(i =0; i < objTable.cells.length;i++)
            {
                for(j = 0;j <objTable.cells.item(i).childNodes.length;j++)
                {
                    var obj = objTable.cells.item(i).childNodes[j];
                    if(obj.tabIndex == nextTabIndex)
                    {
                        obj.focus();
                        return;
                    }
                }
            }                
        }
    }
    catch(e)
    {
        alert(e.message);
    }
}
//Change Check if checkboxes in table
function ChangeCheched(tableId, status)
{   
    var objTable = document.getElementById(tableId);
    for(i =0; i < objTable.cells.length;i++)
    {  
        if(
            objTable.cells.item(i).childNodes[0] != null &&
            objTable.cells.item(i).childNodes[0].checked != null &&
            objTable.cells.item(i).childNodes[0].canselect == "true")
                objTable.cells.item(i).childNodes[0].checked = status;  
    }    
}
//Get number of checkboxes selected in table
function GetSelectedRowsCount(tableId)
{
    try
    {
        var counter = 0;
        for(i =0; i < document.getElementById(tableId).cells.length;i++)
        {
            if( document.getElementById(tableId).cells.item(i).childNodes[0] != null  && 
                document.getElementById(tableId).cells.item(i).childNodes[0].checked != null &&
                document.getElementById(tableId).cells.item(i).childNodes[0].checked == true &&
                document.getElementById(tableId).cells.item(i).childNodes[0].canselect == "true"
                )
                counter++;                  
        }
        return counter;
    }
    catch(error)
    {
        alert(error.message);
    }
}
function findPos(obj) {
	var curleft = curtop = 0;
	//if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	//}
	//alert(allParents);
	return [curleft,curtop];
}
function IsIgnoreKey(e){
var ignoreKeys = [
			20, // caps lock
			16, // shift
			17, // ctrl
			91, // Windows key
			121, // F1 - F12
			122,
			123,
			124,
			125,
			126,
			127,
			128,
			129,
			130,
			131,
			132,
			45, // Insert
			36, // Home
			35, // End
			33, // Page Up
			34, // Page Down
			144, // Num Lock
			145, // Scroll Lock
			44, // Print Screen
			19, // Pause
			93, // Mouse menu key
		];		
		for(i=0;i<ignoreKeys.length;i++)
		{
			if(ignoreKeys[i] == e)
			    return true;
		}
	    return false;
}
//---------------------- Use This function for farsi calendar ----------------------\\
function FarsiCalendar_CheckDate(textBox)
{
    var dateStr = textBox.value;
    var indexOfDash = dateStr.indexOf("-");
    var keyCode = event.keyCode;
    if(keyCode == 13 || keyCode ==9)
        return true;
    //Check For Delete
    if(keyCode == 8)
    {
        if(indexOfDash == 0)
            return false;
        if(dateStr.length != 10)
            dateStr = "----/--/--";
        if(indexOfDash < 0)
        {
            textBox.value = dateStr.substr(0,9) + "-";
            return false;
        }
        if(indexOfDash == 8 || indexOfDash == 5)
        {
            dateStr = dateStr.substr(0,indexOfDash - 1) + "/" +  dateStr.substr(indexOfDash);
            indexOfDash--;
        }
        textBox.value = dateStr.substr(0,indexOfDash - 1) + "-" + 
            dateStr.substr(indexOfDash);
        return false;
    }
    if(!((keyCode >= 48 && keyCode <= 57) || (keyCode >= 96 && keyCode <= 105)))
        return false;
    if(keyCode >= 96 && keyCode <= 105)
        keyCode -= 48;           
    if(indexOfDash < 0)
        return false;
    var newChar = String.fromCharCode(keyCode);
    if(FarsiCalendar_CheckForPosition(newChar, dateStr.charAt(indexOfDash - 1),indexOfDash) == false)
        return false;
    var compeleteStr = dateStr.substr(dateStr,dateStr.indexOf("-") + 1);
    var newSstr = dateStr.substr(dateStr,dateStr.indexOf("-")) + newChar;
    textBox.value = dateStr.replace(compeleteStr,newSstr);
    return false;
}
function FarsiCalendar_CheckForPosition(digit,beforeDigit,position)
{
    //alert("Digit = " + digit + "\nBefore Digit = " + beforeDigit + "\nPosition = " + position);
    var isValid = false;
    switch(position)
    {
        //Year
        case 0 : if(digit == 1) isValid = true;break;
        case 1 : if(digit == 3) isValid = true;break;
        case 2 : isValid = true;break;
        case 3 : isValid = true;break;
        //Month
        case 5 : if(digit < 2) isValid = true;break;
        case 6 : if(beforeDigit == 0) isValid = true;else if(digit < 3) isValid = true;break;
        //Day
        case 8 : if(digit < 4) isValid = true;break;
        case 9 : if(beforeDigit < 3) isValid = true;else if(digit < 2) isValid = true;break;
        //
        default:isValid = false;break;
    }
    return isValid;
}
//---------------------- End Of Farsi Calendar Functions ----------------------\\