﻿// JScript File

 this.link = null;
 this.txt = null;
 this.txtRefId="";
 this.txt_Array= new Array()  
function replaceWithLink(sender)
{
    var parentforTxt=sender.parentNode;
    if(sender.nodeName.toLowerCase() == "input")
    {
        this.txt=sender;
        this.txt.id=this.txtRefId;
        this.link.className=sender.className;
        if(sender.value == "")
            this.link.innerHTML="set";
        else
            this.link.innerHTML=sender.value;
        parentforTxt.replaceChild(this.link,sender);
    }
    return false;
}
function replaceWithTxt(e,sender,txtId)
{    
    var data=sender.innerHTML;
    this.link=sender;
    var parentforTxt=sender.parentNode;
    if(this.txt == null || this.txtRefId != txtId)
    {
        this.txtRefId = txtId;
        this.txt=document.getElementById(txtId);
        var txtRqrd=null;
        if(this.txt != null)
        {
            if(this.txt_Array != null && this.txt_Array.length>0)
            {
                var containsThisTxtInstance=0;               
                for(var i=0;i<this.txt_Array.length;i++)
                {
                    var txtee=this.txt_Array[i];
                    if(txtee.id !=txtId && containsThisTxtInstance ==0)
                    {
                        containsThisTxtInstance=0;                        
                    }
                    else
                    {
                        containsThisTxtInstance=1;
                    }
                }
                if(containsThisTxtInstance == 0)
                {
                    var index=this.txt_Array.length;
                    this.txt_Array[index] =this.txt;
                }
            }
            else
            {            
                this.txt_Array[0]=this.txt;
            }
        }            
        else 
        {
            if(this.txt_Array != null && this.txt_Array.length>0)
            {       
                for(var i=0;i<this.txt_Array.length;i++)
                {
                    var txtee=this.txt_Array[i];
                    if(txtee.id ==txtId)
                    {
                        txtRqrd=txtee;
                    }
                }
            }
            if(txtRqrd != null)
            {
                this.txt=txtRqrd;
            }
            else
            {
                onCallbackErrorToShowMessage("","");
                return false;
            }
        }
    }
    this.txt.style.display='block';
    if(sender.innerHTML != "set")
    {
        this.txt.value=data;
    }
    else
    {
        this.txt.value="";
    }
    this.txt.id=sender.id;
    this.txt.className=sender.className;
    parentforTxt.replaceChild(this.txt,sender);   
    this.txt.focus();
    this.txt.select();
    return false;
}

///Start  Validate Decimal Point

function ValidateUsingRegEx(sender,e)
{
    var field=sender;   
    var S=field.value;
    return /^\d{0,4}(\.\d\d\d\d?)?$/.test(S);
}

function ValidateEnteredValue(sender,e,datatype,MaxIntegerLengthParam,MaxDecimalLengthParam)
{
    var MaxIntegerLength=parseInt(MaxIntegerLengthParam);
    var MaxDecimalLength =parseInt(MaxDecimalLengthParam);
    datatype=datatype.toLowerCase();
    var keyCode;
    var keyChar;
    if(window.event) // IE
    {
        keyCode = e.keyCode;
    }
    else if(e.which) // Netscape/Firefox/Opera
    {
        keyCode = e.which;
    }
    var evtobj=window.event? event : e
    keyChar = String.fromCharCode(keyCode);
    var field=sender;   
    var txt=field.value;
    if((datatype == 'decimal' || datatype == 'int') || datatype == 'percentage')
    { 
        if((keyCode < 48 || keyCode > 57) && keyCode != 190 && 
        keyCode != 9 && keyCode != 8 && keyCode != 46 &&
        keyCode != 37 && keyCode != 39 &&
        keyCode != 96 && keyCode != 97 && keyCode != 98
        && keyCode != 99 && keyCode != 100 && keyCode != 101
        && keyCode != 102 && keyCode != 103 && keyCode != 104 
        && keyCode != 105 && keyCode != 110 && keyCode != 35 && keyCode != 36 
        || (evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey))
        { 
            return false;        
        }
        else
        {
            if((keyCode == 190 || keyCode == 110) && (datatype == 'decimal' || datatype == 'percentage'))
            {
                // split into array using dots
                var arr = txt.split(".");
                if(arr.length >1)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
            else
            {  
                if((keyCode == 190 || keyCode == 110) && datatype == 'int')
                {
                    return false;
                }
                if (typeof(field.selectionStart) != "undefined") 
                { 
                    return true;
                }
                var cursorPosition=getCarotPosition(sender);
//                var numcheck=/\d/;
//                numcheck.test(keyChar);
                //BackSpace keyCode--8,Delete keyCode--46,End keyCode--35,Home keyCode--36,
                //Front Arrow--39,Back Arrow--37
                if(keyCode !=35 && keyCode !=36 && keyCode !=46 && keyCode !=37 && keyCode !=39 && keyCode !=8)
                {
                    var arr = txt.split(".");
                    if(arr.length >1)
                    {
                        var beforeDecimalPointNoOfChars=arr[0].length;
                        var decimalPointPosition=arr[0].length+1;
                        var afterDecimalPointNoOfChars=arr[1].length;
                        if(arr[0].length>=MaxIntegerLength && arr[1].length >=MaxDecimalLength)
                            return false;
                        else if(arr[0].length>=MaxIntegerLength && cursorPosition<decimalPointPosition) 
                            return false;
                        else if(arr[1].length>=MaxDecimalLength && cursorPosition>=decimalPointPosition)
                            return false;
                        else if(arr[0].length < MaxIntegerLength && cursorPosition<decimalPointPosition) 
                            return true;
                        else if(arr[1].length<MaxDecimalLength && cursorPosition>=decimalPointPosition)// && cursorPosition<=(decimalPointPosition+MaxDecimalLength)))
                            return true;
                        else
                            return false;                            
                    }     
                    else if(arr[0].length>=MaxIntegerLength)
                       return false;                
                }
                else if(keyCode ==46 || keyCode ==8)
                {
                    var arr = txt.split(".");
                    if(arr.length >1)
                    {
                        var decimalPointPosition=arr[0].length+1;
                        var afterDecimalPointNoOfChars=arr[1].length;
                        if(keyCode ==46 && cursorPosition==(decimalPointPosition-1) && afterDecimalPointNoOfChars ==0)
                            return true;
                        else if(keyCode ==46 && cursorPosition !=(decimalPointPosition-1))
                            return true;
                        else if(keyCode ==8 && cursorPosition==decimalPointPosition && afterDecimalPointNoOfChars ==0)
                            return true;
                        else if(keyCode ==8 && cursorPosition !=decimalPointPosition)
                            return true;
                        else    
                            return false;
                    }     
                    else 
                       return true;
                }
              return true;
            }
        } 
    }
}

function ValidateDecimalPoint(sender,e,datatype)
{
    var MaxIntegerLength=5;
    var MaxDecimalLength =5;
    datatype=datatype.toLowerCase();
    if(datatype == 'int')
        MaxIntegerLength=9;
    return ValidateEnteredValue(sender,e,datatype,MaxIntegerLength,MaxDecimalLength);
}

function ValidateDecimalPointForCosts(sender,e,datatype)
{
    var MaxIntegerLength=4;
    var MaxDecimalLength =2;
    datatype=datatype.toLowerCase();
    if(datatype == 'int')
        MaxIntegerLength=6;
    return ValidateEnteredValue(sender,e,datatype,MaxIntegerLength,MaxDecimalLength);
}

function getCarotPosition(sender)
{
	if (sender.createTextRange)
	 {
		var r = document.selection.createRange().duplicate();
		r.moveEnd('character', sender.value.length);
		if (r.text == '') 
		    return sender.value.length;
		return sender.value.lastIndexOf(r.text);
	} 
	else 
	    return sender.selectionStart;
}

function ValidateSpecialCharacters(sender,args)
{
    var iChars = "!@#$%^&*()+=[]\\\';,/{}|\":<>?";
    for (var i = 0; i < args.Value.length; i++) 
    {
        if (iChars.indexOf(args.Value.charAt(i)) != -1) 
        {
            args.IsValid=false;
            return;
        }
    }
    if(args.Value.length == 1)
    {
        if(args.Value == "-")
        {
            args.IsValid=false;
            return;
        }
    }
}

function AddValues(tbId,lblId)
{
    var z= 0;    
    var tb_array=tbId.split(" ");
    var part_num=0;
    while (part_num < tb_array.length)
    {
        if(document.getElementById(tb_array[part_num]).value !="")
        z+=Number(document.getElementById(tb_array[part_num]).value);
        part_num+=1;
    } 
    document.getElementById(lblId).innerText=z;
    return true;
}


function GetValuesToAdd(tbIds,lblIds)
{
    var tbs_array=tbIds.split("-");
    var lbls_array=lblIds.split("-");
    var part_num1=0;
    while (part_num1 < tbs_array.length)
    {
        AddValues(tbs_array[part_num1],lbls_array[part_num1]);
        part_num1+=1;
    }   
    return true;
}

function ExpandAllCollapsiblePanels(collapsiblePanelBIds,expandAll)
{
    var CollapsiblePanelArray=collapsiblePanelBIds.split("|");
    var paramIncrement=0;
    while (paramIncrement < CollapsiblePanelArray.length)
    {
        if(expandAll == "true")
        {   
            $find(CollapsiblePanelArray[paramIncrement].split("-")[0])._doOpen();//cpeExpandedBID
            $find(CollapsiblePanelArray[paramIncrement].split("-")[1])._doClose();//cpeCollapsedBID
        }
        else
        {
            $find(CollapsiblePanelArray[paramIncrement].split("-")[0])._doClose();//cpeExpandedBID
            $find(CollapsiblePanelArray[paramIncrement].split("-")[1])._doOpen();//cpeCollapsedBID
        }
        paramIncrement +=1;
    }
}
///END  Validate Decimal Point


// Dynamic Tables

function ExpandYear(pnlExpand,pnlCollapse)
{
    document.getElementById(pnlCollapse).style.display='none';
    document.getElementById(pnlExpand).style.display='block';
}

function CollapseYear(pnlExpand,pnlCollapse)
{
    document.getElementById(pnlExpand).style.display='none';
    document.getElementById(pnlCollapse).style.display='block';    
}

function ExpandAllYears(panelIds,expandAll)
{
    var PanelArray=panelIds.split("|");
    var paramIncrement=0;
    while (paramIncrement < PanelArray.length)
    {
        if(expandAll == "true")
        { 
                document.getElementById(PanelArray[paramIncrement].split("-")[0]).style.display='block';//pnlExpandID
                document.getElementById(PanelArray[paramIncrement].split("-")[1]).style.display='none';//pnlCollapseID
        }
        else
        {
                document.getElementById(PanelArray[paramIncrement].split("-")[0]).style.display='none';//pnlExpandID
                document.getElementById(PanelArray[paramIncrement].split("-")[1]).style.display='block';//pnlCollapseID
        }
        paramIncrement +=1;
    }
}

function ValidateResponsibility(sender,e,rspblts,msgTyp,msg,repeatmsg,modName)
{ 
  if(sender.value != "")
    { 
        var isExists = true; 
        var strResps=sender.value.replace(' ','');
        var strRspbltyArray = strResps.split(",");
        var rspbltyArray = rspblts.split(",");  
        var strRp="";
        for(var i=0;i<rspbltyArray.length;i++)
        {
            var rspblty = rspbltyArray[i];              
            var strRepeatedAry=strResps.toLowerCase().split(rspblty.toLowerCase());
            if(strRepeatedAry.length>2)
            { 
                strRp += "," + rspblty;  
            } 
        }
        if(strRp!="")
        {
            strRp=strRp.substring(1);
            repeatmsg=repeatmsg.replace("{0}",strRp);
            ShowMessagePopUp(msgTyp,repeatmsg,modName); 
            return true;   
        }
        if(strRp=="")
        {      
            for (var j = 0;j<strRspbltyArray.length;j++)
            {  
                if(strRspbltyArray[j].toLowerCase()!="")
                {   
                    isExists = false;                    
                    for(var i=0;i<rspbltyArray.length;i++)
                    {
                        var rspblty = rspbltyArray[i];  
                        if(strRspbltyArray[j].toLowerCase()== rspblty.toLowerCase())
                        {                    
                            isExists = true;                            
                        } 
                    }
                }
                if(!isExists)
                {             
                  ShowMessagePopUp(msgTyp,msg,modName); 
                  return true;
                }  
            }  
        }
    }  
} 

         
//End Dynamic Tables Script
