﻿function isBrowserClosed()
{
 
var browserWindowWidth = 0;var browserWindowHeight = 0;

// gets the width and height of the browser window
if (parseInt(navigator.appVersion) > 3)
{
if (navigator.appName == "Netscape")
{browserWindowWidth = window.innerWidth;browserWindowHeight = window.innerHeight;}

if (navigator.appName.indexOf("Microsoft") !=- 1)
{browserWindowWidth = top.window.document.body.offsetWidth;browserWindowHeight = top.window.document.body.offsetHeight;
}
}
 

// checks if the X button was closed

// if event.clientY < 0, then click was on the browser menu area

// if event.screenX > (browserWindowWidth - 25), the X button was clicked

// use screenX if working with multiple frames

return (event.clientY < 0 && event.screenX > (browserWindowWidth - 25)) ? true : false;
}

var expChkAR=new Array("SCRIPT","CREATE","INSERT","SELECT","DELETE","DROP","UPDATE");
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

function chkResWords(strChk)
{
   //Reserved word
	for(i=0;i<expChkAR.length;i++)
	{
		var chk=new RegExp(expChkAR[i]);
		if (strChk.toUpperCase().match(chk))
		{return false;break;}
	}
return true;
}
// JScript File

function changeIndexBudgetType(field)
{
//Check  correct date
if (ValidDate(field,"dd/mm/yyyy")==false){return false;}

var myRBL0 = document.getElementById("ctl00_ContentPlaceHolder1_rblBudgetType_0");
var myRBL1 = document.getElementById("ctl00_ContentPlaceHolder1_rblBudgetType_1");
var myRBL2 = document.getElementById("ctl00_ContentPlaceHolder1_rblBudgetType_2");

myRBL0.checked=false;
myRBL1.checked=false;
myRBL2.checked=false;
var myAmount=document.getElementById("ctl00_ContentPlaceHolder1_tbAmount");
myAmount.value="";
}


function checkzero(field){var str1=new String();str1=field.value; if(str1.length==0){field.value="0";}}


//===Field Integer Check=======================================
function validInt(intCheck,intMinLen,intMaxLen,intSign)
{
if (intCheck.length>intMaxLen)
{return false;}
//------------------------------------
if (intCheck.length<intMinLen)
{return false;}
//------------------------------------
validFormatRegExp = /^(\d)?\d*$/;

if (intSign=="-")
{
if ((intCheck=="-1") || validFormatRegExp.test(intCheck)==true)
{return true;}
else
{return false;}

}
else
{
//integer 
return validFormatRegExp.test(intCheck);
}
}




////For Key Press Event-----------------------
function numbersonly(e)
{
var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
   return true;
else
   return false;
}



function alphanumericOnly(e)
{
var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789Tt").indexOf(keychar) > -1))
   return true;
else
   return false;
}

function ValidDate(obj, format){
dateBits = DateComponents(obj.value, format);
if (dateBits == null) return false;

day = dateBits[0];
month = dateBits[1];
year = dateBits[2];

if ((month < 1 || month > 12) || (day < 1 || day > 31)) { // check month range 
return false;
} 
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
return false;
}
if (month == 2) {
// check for february 29th 
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); 
if (day>29 || (day==29 && !isleap)) {
return false;
}
} 
return true;
}

function DateComponents(dateStr, format) {
var results = new Array();
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
var matchArray = dateStr.match(datePat);

if (matchArray == null) return null; 
// parse date into variables
if (format.charAt(0)=="d"){ //format=dd/mm 
results[0] = matchArray[1];
results[1] = matchArray[3];
} else { 
results[1] = matchArray[1];
results[0] = matchArray[3]; }
results[2] = matchArray[4];
return results;
}



//===========//===========//===========//===========//===========//===========
//Printing Report
//===========//===========//===========//===========//===========//===========
function printMe()
{
show(false,"divPrnt");
print();
show(true,"divPrnt");
}

//For hiding contorls while printing
// quick browser tests
var ns4 = (document.layers) ? true : false;
var ie4 = (document.all && !document.getElementById) ? true : false;
var ie5 = (document.all && document.getElementById) ? true : false;
var ns6 = (!document.all && document.getElementById) ? true : false;

function show(sw,obj) {
	// show/hide the divisions
	if (sw && (ie4 || ie5) ){document.all[obj].style.visibility = 'visible';}
	if (!sw && (ie4 || ie5) ){document.all[obj].style.visibility = 'hidden';}

	if (sw && ns4){ document.layers[obj].visibility = 'visible';}
	if (!sw && ns4){ document.layers[obj].visibility = 'hidden';}
	
}
//===========//===========//===========//===========//===========//===========


function validMonth(ctrlMonth)
{

if(ctrlMonth.value=="" || ctrlMonth.length==0) {return true;}
var mon=parseInt(ctrlMonth.value);
if (mon<=0 || mon>12){alert("Invalid Month");ctrlMonth.focus();return false;}
return true;
}


function validStartYear(ctrlYear)
{

var d = new Date();
var currDate = d.getDate();
var maxYear = d.getFullYear();
var minYear="1959";
var valYear=ctrlYear.value;

if (valYear<1959 || valYear>maxYear)
{
alert("Invalid year, valid range is "+minYear+"-to-"+maxYear);
ctrlYear.focus();
return false;
}

return true;
}

function validStartYearSearch(ctrlYear)
{
var valYear=ctrlYear.value;
if (valYear.length>0)
{
    var d = new Date();
    var currDate = d.getDate();
    var maxYear = d.getFullYear();
    var minYear="1959";

    if (valYear<1959 || valYear>maxYear)
    {
    alert("Invalid year, valid range is "+minYear+"-to-"+maxYear);
    ctrlYear.focus();
    return false;
    }
   }

return true;
}

//function for budgetheadselection window

function getBudgetHeadID() 
{
var param1=document.getElementById("ctl00_ContentPlaceHolder1_hfBudgetHeadID");
var param2=document.getElementById("ctl00_ContentPlaceHolder1_tbAccountHead");
var param3=document.getElementById("ctl00_ContentPlaceHolder1_tbBudgetCode");
var param4=document.getElementById("ctl00_ContentPlaceHolder1_tbSOECode");
var MyArgs = new Array(param1.value,param2.value,param3.value,param4.value);//param2.value,param3.value,param4.value);
var WinSettings = "center:yes;resizable:no;dialogHeight:520px;dialogwidth=790px;"
var MyArgs=window.showModalDialog("getBudgetHead.aspx", MyArgs, WinSettings);
if (MyArgs == null)
{
  window.alert("Budget head not selected");
}
else
{
  param1.value=MyArgs[0].toString();
  param2.value=MyArgs[1].toString();
  param3.value=MyArgs[2].toString();
  param4.value=MyArgs[3].toString();
}
}


function getbudgetClose() 
{
var param1=document.getElementById("hfBudgetHeadID").value ;
var param2=document.getElementById("hfAccountHead").value ;
var param3=document.getElementById("hfBudgetCode").value ;
var param4=document.getElementById("hfSOECode").value ;
if (param1=="" ||  param2=="" ||  param3=="" || param4=="")
{var MyArgs = null;window.returnValue = MyArgs;}
else
{var MyArgs = new Array(param1,param2,param3,param4);window.returnValue = MyArgs;}
window.close();
}
    
function getbudgetInit()
{
var param1 = "";
var param2 = "";
var param3 = "";
var param4 = "";
var MyArgs = new Array(param1,param3,param3,param4);
MyArgs =  window.dialogArguments;
}



///KeyPress
function KeypressDecimalNumbers(e,field)
{
var countdot=0;
var ctrlvalue=document.getElementById(field).value;
var i=0;
var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
  
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
     return true;
     else if (keychar==".")
        {
        for(i=0;i<ctrlvalue.length;i++){ if(ctrlvalue.substring(i,i+1)=="."){countdot++; }}
        if (countdot>0){return false;}
        return true;
        }
       else
      return false;
}


//To avoid the entry of invalid charachers
function KeyPressAlphanumeric(e,field)
{
var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;
// numbers
else if ((("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ").indexOf(keychar) > -1))
   return true;
   else
   return false;
}


//To avoid the entry of invalid charachers
function KeyPressAgreementNumber(e,field)
{
var countdot=0;
var ctrlvalue=document.getElementById(field).value;
var i=0;

var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;
// numbers
// numbers
//else if ((("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ").indexOf(keychar) > -1))
else if ((("0123456789").indexOf(keychar) > -1))
     return true;
     else if (keychar=="-")
        {
        for(i=0;i<ctrlvalue.length;i++){ if(ctrlvalue.substring(i,i+1)=="-"){countdot++; }}
        if (countdot>0){return false;}
        return true;
        }
       else
      return false;
}







function KeyPressNumbersonly(e)
{
var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
   return true;
else
   return false;
}





function KeyPressSchemeCode(e,field)
{
///././././././
var countdot=0;
var ctrlvalue=document.getElementById(field).value;
var i=0;

var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;
// numbers
// numbers
//else if ((("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ").indexOf(keychar) > -1))
else if ((("0123456789").indexOf(keychar) > -1))
      return true;
else if ((keychar=="t") || (keychar=="T") || (keychar=="v") || (keychar=="V")  || (keychar=="d") || (keychar=="D"))
        {
        if ((keychar=="t") || (keychar=="v")){window.event.keyCode = window.event.keyCode-32;} 
        for(i=0;i<ctrlvalue.length;i++){ if(ctrlvalue.substring(i,i+1)=="t" || ctrlvalue.substring(i,i+1)=="T" || ctrlvalue.substring(i,i+1)=="v" || ctrlvalue.substring(i,i+1)=="V" || ctrlvalue.substring(i,i+1)=="d" || ctrlvalue.substring(i,i+1)=="D")
        
        {countdot++; }}
        if (countdot>0){return false;}
        return true;
        }
       else
      return false;
}


//------------------------------------------------------
//-----Blur
function integersOnly(field,intMinLen,intMaxLen)
{
var intCheck=document.getElementById(field).value;
if (intCheck.length>intMaxLen)
{return false;}
//------------------------------------
if (intCheck.length<intMinLen)
{return false;}


if (intCheck=="0")
{return false;}
//------------------------------------
validFormatRegExp = /^(\d)?\d*$/;
//integer 
if (validFormatRegExp.test(intCheck)==false)
{document.getElementById(field).focus();}
else{return true;}
}



function decimalNumbersOnly(field,maxlength)
{
var ctrlvalue=document.getElementById(field).value;
if (ctrlvalue.length>maxlength){return false;}
if (ctrlvalue==0 || ctrlvalue=="")
{return true;}
else
{
if (/^\d*\.{0,2}\d+$/.test(ctrlvalue)==false)
{document.getElementById(field).focus();}
}
return true;

}
//------------------------------------------------------


//--
function isValidDecimalNumber(ctrlvalue,maxlength,minlength)
{
if (ctrlvalue.length>maxlength){return false;}
if (ctrlvalue.length<minlength){return false;}

if (ctrlvalue==0)
{return true;}
else
{return /^\d*\.{0,2}\d+$/.test(ctrlvalue);}
return true;
}
//--
function IsValidString(strChk,fieldName)
{
var errCount=0;
var errMsg=new String();
errMsg="Please Check " +fieldName+" for-->>\n";
//Reserved Words
for(i=0;i<expChk1.length;i++)
{
    var chk=new RegExp(expChk1[i]);
	if (strChk.toUpperCase().match(chk))
	{errCount++;errMsg=errMsg+errCount+". Use synonym of word "+expChk1[i]+"\n";break;}
}
 //==========Invalid Charachers 
var strlen=strChk.length;
var chkStr=/['\\@#$%^*()~!_+=|:;\"{}[]?><`]/;
if (strChk.match(chkStr))
{invalidYN=1;}

 //return false;
if (errCount>0){alert(errMsg);return false;}
}
//--
function isValidAgreementNumber(ctrlvalue,minLength,maxLength)
{
if (ctrlvalue.length<minLength){return false;}
if (ctrlvalue.length>maxLength){return false;}

return true;
}
//--
//-----For Codes of Integer type
function isValidCodeInt(intCheck,intMinLen,intMaxLen)
{

if (intCheck.length>intMaxLen)
{return false;}

//------------------------------------
if (intCheck.length<intMinLen)
{return false;}


if (intCheck=="0")
{return false;}

//------------------------------------
validFormatRegExp = /^(\d)?\d*$/;
return validFormatRegExp.test(intCheck);
}




function validConsumedQuantity(field1,field2,field3,field4,maxlength)
{
if (decimalNumbersOnly(field4,maxlength)==false)
{return false;}
else
{
   //---
    var ctrlvalue4=document.getElementById(field4).value;
    if (ctrlvalue4=="")
    {document.getElementById(field4).focus();}
    else
    {
       var ctrlvalue1=parseFloat(document.getElementById(field1).value);
       var ctrlvalue2=parseFloat(document.getElementById(field2).value);
       var ctrlvalue3=parseFloat(document.getElementById(field3).value);
       var valueTocompare=parseFloat(ctrlvalue4);
       
       var totValue=(ctrlvalue1+ctrlvalue2)-ctrlvalue3;
       
       if (ctrlvalue4>totValue)
        {alert("Invalid value");document.getElementById(field4).focus();return false;}
    }
 }
return true;

}


function validIndentedQuantityAgForStore(value1,field2,maxlength)
{
if (decimalNumbersOnly(field2,maxlength)==false)
{return false;}
else
{
   //---
    var ctrlvalue2=document.getElementById(field2).value;
    if (ctrlvalue2=="")
    {document.getElementById(field2).focus();}
    else
    {
       //var ctrlvalue1=parseFloat(document.getElementById(field1).value);
       var totalAvailableValue=parseFloat(value1);
       var indentedValue=parseFloat(ctrlvalue2);
                     
       if (indentedValue>totalAvailableValue)
        {alert("!! Information !! \n Indented Quantity is greater than the Quantity given in revised schedule");
         //document.getElementById(field2).focus();
         return true;}
    }
 }
return true;

}

function validIndentedQuantityAgForToAgreement(value1,field2,maxlength)
{
if (decimalNumbersOnly(field2,maxlength)==false)
{return false;}
else
{
   //---
    var ctrlvalue2=document.getElementById(field2).value;
    if (ctrlvalue2=="")
    {document.getElementById(field2).focus();}
    else
    {
       //var ctrlvalue1=parseFloat(document.getElementById(field1).value);
       var totalAvailableValue=parseFloat(value1);
       var indentedValue=parseFloat(ctrlvalue2);
                     
       if (indentedValue>totalAvailableValue)
        {alert("!! Information !! \n Indented Quantity is greater than the Quantity Available");
         //document.getElementById(field2).focus();
         return true;}
    }
 }
return true;

}

function validIssuedQuantity(field1,field2,maxlength)
{
if (decimalNumbersOnly(field2,maxlength)==false)
{return false;}
else
{
   //---
    var ctrlvalue1=document.getElementById(field1).value;
    
    var ctrlvalue2=document.getElementById(field2).value;
    if (ctrlvalue2=="")
    {document.getElementById(field2).focus();}
    else
    {
       //var ctrlvalue1=parseFloat(document.getElementById(field1).value);
       var totalAvailableValue=parseFloat(ctrlvalue1);
       var issuedValue=parseFloat(ctrlvalue2);
                     
       if (issuedValue>totalAvailableValue)
        {alert("!! Error !! \n Quantity to be Issued Now is greater than the Quantity Available");
         document.getElementById(field2).focus();
         return false;}
    }
 }
return true;

}

function validConsumedQuantityAgForToAgreement(value1,field2,maxlength)
{
if (decimalNumbersOnly(field2,maxlength)==false)
{return false;}
else
{
   //---
    var ctrlvalue2=document.getElementById(field2).value;
    if (ctrlvalue2=="")
    {document.getElementById(field2).focus();}
    else
    {
       var totalAvailableValue=parseFloat(value1);
       var consumedValue=parseFloat(ctrlvalue2);
               
       if (consumedValue>totalAvailableValue)
        {alert("!! Error !! \n Consumed Quantity is greater than the Quantity Available");
        document.getElementById(field2).focus();}
    }
 }
return true;

}


function validAllocatedQuantity(value1,field2,maxlength)//Material Allocation in GRSHEET Entry Module
{
if (decimalNumbersOnly(field2,maxlength)==false)
{return false;}
else
{
   //---
    var ctrlvalue2=document.getElementById(field2).value;
    if (ctrlvalue2=="")
    {document.getElementById(field2).focus();}
    else
    {
       var totalAvailableValue=parseFloat(value1);
       var qtyToAllocateValue=parseFloat(ctrlvalue2);
               
       if (qtyToAllocateValue>totalAvailableValue)
        {alert("!! Error !! \n Qty. to Allocate is greater than the Qty. Available for Allocation");
        document.getElementById(field2).focus();}
    }
 }
return true;

}

////4.For printing a page and hiding the button on click and show after print
//// quick browser tests
//var ns4 = (document.layers) ? true : false;
//var ie4 = (document.all && !document.getElementById) ? true : false;
//var ie5 = (document.all && document.getElementById) ? true : false;
//var ns6 = (!document.all && document.getElementById) ? true : false;

//function show(sw,obj) 
//{
//	// show/hide the divisions
//	if (sw && (ie4 || ie5) ){document.all[obj].style.visibility = 'visible';}
//	if (!sw && (ie4 || ie5) ){document.all[obj].style.visibility = 'hidden';}

//	if (sw && ns4){ document.layers[obj].visibility = 'visible';}
//	if (!sw && ns4){ document.layers[obj].visibility = 'hidden';}
//	
//}

//---------------------------------------------------------------------------//

function  md5Auth(seed)
{
    var userId=document.getElementById("txtUserID").value;
    var userPass=document.getElementById("txtPassword").value;
   
    if (validPSWDAR(userPass)==true && validUsrAR(userId)==true)
    {document.getElementById("hidHash").value=MD5(seed+MD5(userPass));
    userpass="";}
    else
    {
     alert("Error--->\nInvalid User ID/Password");
     
    }
    userPass="";
    document.getElementById("txtPassword").value="";
}

//16.Functions for Login user id & pswd check
function validUsrAR(valChk)
{
    var i=0;var usrID=valChk.trim();
    //1.Blank
    var strlen=usrID.length;
    if (strlen==0) {return false;}
    //2.numeric characters
    if (isValidCodeInt(valChk,5,5)==false){ return false;}
    //3.reserved word
    if (chkResWords(valChk)==false){return false;}
    return true;
}



//17. for valid password
function validPSWDAR(valChk)
{
    var i;var expChk=/\s/;
    var strChk=valChk.trim();
    //Length Check
    if (strChk.trim().length>10 || strChk.length<1){return false;}
    else
    {
    //	//Preceeding/following integer check
    //	if (("0123456789").indexOf(strChk.substr(0,1)) > -1) 
    //	{return false;}
    //	
    //	
    //	if (("0123456789").indexOf(strChk.substr(strChk.length-1,1)) > -1)
    //	{return false;}
    	
    if (strChk.search(expChk)>-1){return false;}
    //reserved word
    if (chkResWords(valChk)==false){return false;}
    }
    return true;
}

function clearMeAR(fieldToClr){fieldToClr.value="";}

function roundNumber(rnum, rlength) { // Arguments: number to round, number of decimal places
  var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
  return newnumber;
  //document.roundform.numberfield.value = newnumber; // Output the result to the form field (change for your purposes)
}

function fillMeasurementQty(field1,field2,field3,minlength,maxlength)//Material Allocation in GRSHEET Entry Module
{
try
  {
  var lena=document.getElementById(field1).value.length;
    var fvalue1=document.getElementById(field1).value;
    if (lena<minlength || lena>maxlength)
    {return false;}
    else
    {
    //if (isNaN(eval(fvalue1))==true){return false;}
    //else{
    document.getElementById(field2).value=roundNumber(eval(fvalue1),4);document.getElementById(field3).value=roundNumber(eval(fvalue1),4);
    //}
    }
    return true;
  }
catch(err)
  {
    alert("Error --> Invalid Measurement Quantity");
    document.getElementById(field1).focus();
    return false;
  }
}

function clearItemQty(field1)//Material Allocation in GRSHEET Entry Module
{document.getElementById(field1).value="";}


function KeyPressExpressionOnly(e)
{
///././././././
var countdot=0;
//var ctrlvalue=document.getElementById(field).value;
var i=0;

var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
// control keys
if ((key==null) || (key==0) || (key==8) || 
    (key==9) || (key==13) || (key==27) )
   return true;
// numbers
// numbers
//else if ((("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ").indexOf(keychar) > -1))
else if ((("0123456789+-*/(){}[]^%").indexOf(keychar) > -1))
      return true;
else 
      return false;
}
