////////////////////// PREPARE NUMBER LIST IN DROPDOWN /////////////////////////
var lNumOptionQty = 10;
var lNumOptionSelected = 1;
var INCLUDE_ZERO = false;
function prepDDOption( inTargetFieldName, inNumOptionFieldName )
{
  var lTargetFieldNameObj    = document.getElementById(inTargetFieldName);
  var lNumOptionFieldNameObj = document.getElementById(inNumOptionFieldName);

  if ( lTargetFieldNameObj && lTargetFieldNameObj.type.toUpperCase().indexOf('SELECT') < 0 )
  {
    jAlert('WRONG TYPE OF FILED '+lTargetFieldNameObj.name+', HENCE D/D NOT PREPARED','Sunvision Alert Says');
    return -1;
  }

  if ( lNumOptionFieldNameObj )
    lNumOptionQty = lNumOptionFieldNameObj.value;
  
  var lCreTagName;
  if ( lTargetFieldNameObj && ( lTargetFieldNameObj.options.length > 0 && trim(lTargetFieldNameObj.options[0].value, '').length == 0 ) );
  else
  {
    lCreTagName = document.createElement("OPTION");
    lCreTagName.value = '';
    lCreTagName.text  = '';
    lTargetFieldNameObj.options.add(lCreTagName);
  }

  var lStartIndex = 1;
  if ( INCLUDE_ZERO ) lStartIndex = 0;
  for ( lOptionIndex = lStartIndex; lOptionIndex < lNumOptionQty; lOptionIndex++ )
  {
    lCreTagName = document.createElement("OPTION");
    lCreTagName.value = lOptionIndex;
    lCreTagName.text  = lOptionIndex;
    if ( lNumOptionSelected == lCreTagName.value )
      lCreTagName.selected  = true;
    lTargetFieldNameObj.options.add(lCreTagName);
  }
}

function prepDDOptionByValue( inTargetFieldName, inNumOptionQty )
{
  var lTargetFieldNameObj    = document.getElementById(inTargetFieldName);
  if ( lTargetFieldNameObj && lTargetFieldNameObj.type.toUpperCase().indexOf('SELECT') < 0 )
  {
    jAlert('WRONG TYPE OF FILED '+lTargetFieldNameObj.name+', HENCE D/D NOT PREPARED','Sunvision Alert Says');
    return -1;
  }

  lNumOptionQty = inNumOptionQty;
  
  var lCreTagName;
  if ( lTargetFieldNameObj && ( lTargetFieldNameObj.options.length > 0 && trim(lTargetFieldNameObj.options[0].value, '').length == 0 ) );
  else
  {
    lCreTagName = document.createElement("OPTION");
    lCreTagName.value = '';
    lCreTagName.text  = '';
    lTargetFieldNameObj.options.add(lCreTagName);
  }

  var lStartIndex = 1;
  if ( INCLUDE_ZERO ) lStartIndex = 0;
  for ( lOptionIndex = lStartIndex; lOptionIndex < lNumOptionQty; lOptionIndex++ )
  {
    lCreTagName = document.createElement("OPTION");
    lCreTagName.value = lOptionIndex;
    lCreTagName.text  = lOptionIndex;
    if ( lNumOptionSelected == lCreTagName.value )
      lCreTagName.selected  = true;
    lTargetFieldNameObj.options.add(lCreTagName);
  }
}

////////////////////// PREPARE NUMBER LIST IN DROPDOWN /////////////////////////
function prepFloorDD( inTargetFieldName, inNumBasement, inNumFloor )
{
  var lTargetFieldNameObj    = document.getElementById(inTargetFieldName);

  if ( lTargetFieldNameObj && lTargetFieldNameObj.type.toUpperCase().indexOf('SELECT') < 0 )
  {
    jAlert('WRONG TYPE OF FILED '+lTargetFieldNameObj.name+', HENCE D/D NOT PREPARED','Sunvision Alert Says');
    return -1;
  }

  //alert( lTargetFieldNameObj.options.length );
  if ( lTargetFieldNameObj != null && lTargetFieldNameObj.options.length > 0 )
  for ( lOptionIndex = 0; lOptionIndex < lTargetFieldNameObj.options.length; lOptionIndex++ )
  {
    //lTargetFieldNameObj.options.remove(lOptionIndex);
    //alert( lTargetFieldNameObj.options[lOptionIndex].text );
    lTargetFieldNameObj.options[lOptionIndex] = null;
  }


  var lCreTagName;
  lCreTagName = document.createElement("OPTION");
  //lCreTagName.value = '';
  //lCreTagName.text  = '';
  //lTargetFieldNameObj.options.add(lCreTagName);

  for ( lOptionIndex = (-1)*inNumBasement; lOptionIndex < 0; lOptionIndex++ )
  {
    lCreTagName = document.createElement("OPTION");
    lCreTagName.value = lOptionIndex;
    lCreTagName.text  = "Basement "+lOptionIndex;
    lTargetFieldNameObj.options.add(lCreTagName);
  }

  lCreTagName = document.createElement("OPTION");
  lCreTagName.value = "0";
  lCreTagName.text  = "Ground Floor";
  lTargetFieldNameObj.options.add(lCreTagName);

  for ( lOptionIndex = 1; lOptionIndex <= inNumFloor; lOptionIndex++ )
  {
    lCreTagName = document.createElement("OPTION");
    lCreTagName.value = lOptionIndex;
    lCreTagName.text  = "Floor "+lOptionIndex;
    lTargetFieldNameObj.options.add(lCreTagName);
  }
}


function setOptVal( inFieldName, inFieldValue, inFieldValueText, inIndexNum, isSelected )
{
  var return_value = 0;
  var lIndexNum = 0;
  var lFieldNameObj = document.getElementById( inFieldName );
  if ( lFieldNameObj && lFieldNameObj.type.toUpperCase().indexOf('SELECT') < 0 );
  else
  {
    lFieldNameObj.options[ inIndexNum ].value=inFieldValue;
    lFieldNameObj.options[ inIndexNum ].text=inFieldValueText;
    if ( isSelected )
    {
      lFieldNameObj[inIndexNum].selected = true;
      //alert( isSelected +' '+inIndexNum);
    }
  }
  return return_value;
}

////////////////////// ADD 'ALL' IN DROPDOWN /////////////////////////
function addOptValAll( inFieldName )
{
  var lFieldObj;
  var lCreTagName;
  lFieldObj = document.getElementById( inFieldName );

  if ( lFieldObj && lFieldObj.type.toUpperCase().indexOf('SELECT') < 0 )
  {
    jAlert('WRONG TYPE OF FILED '+lFieldObj.name+', HENCE D/D NOT PREPARED','Sunvision Alert Says');
    return -1;
  }

  lCreTagName = document.createElement("OPTION");
  lCreTagName.value = 'ALL';
  lCreTagName.text  = 'ALL';
  lFieldObj.options.add(lCreTagName);
}

var lAddOptValSelected='N';
////////////////////// ADD OPTION VALUE AND TEXT IN DROPDOWN /////////////////////////
function addOptVal( inFieldName, inFieldValue, inFieldValueText )
{
  var lFieldObj;
  var lCreTagName;
  lFieldObj = document.getElementById( inFieldName );
  if ( lFieldObj && lFieldObj.type.toUpperCase().indexOf('SELECT') < 0 )
  {
    jAlert('WRONG TYPE OF FILED '+lFieldObj.name+', HENCE D/D NOT PREPARED','Sunvision Alert Says');
    return -1;
  }

  lCreTagName = document.createElement("OPTION");
  lCreTagName.value = inFieldValue;
  lCreTagName.text  = inFieldValueText;
  //alert('lCreTagName.value '+lCreTagName.value+' lCreTagName.text '+lCreTagName.text);

  ///////////////////////////////////////////////////
  if ( lAddOptValSelected == 'Y' )
    lCreTagName.selected  = true;
  else
    lCreTagName.selected  = false;
  lAddOptValSelected='N';
  ///////////////////////////////////////////////////

  if ( lFieldObj != null ) lFieldObj.options.add(lCreTagName);
}

function addOptValSelected( inFieldName, inFieldValue, inFieldValueText, inAddOptValSelected )
{
  lAddOptValSelected = inAddOptValSelected;
  addOptVal( inFieldName, inFieldValue, inFieldValueText )
}

////////////////////// PREPARE DROPDOWN FROM STRING ARRAY /////////////////////////
function prepDDOptFromArr( inTargetFieldName, inDataArrStr, inFieldValueTag, inFieldTextTag )
{
  var lFieldValue     = '';
  var lFieldValueText = '';
  var lDataArr        = new Array();
  lDataArr = inDataArrStr.split(',');

  for ( lRecCnt = 0; lRecCnt < lDataArr.length; lRecCnt++ )
  {
     lFieldValue     = lDataArr[lRecCnt].substring( lDataArr[lRecCnt].indexOf(inFieldValueTag)+inFieldValueTag.length
                                              , lDataArr[lRecCnt].indexOf(inFieldValueTag) );
     lFieldValueText = lDataArr[lRecCnt].substring( lDataArr[lRecCnt].indexOf(inFieldTextTag)+inFieldTextTag.length
                                              , lDataArr[lRecCnt].indexOf(inFieldTextTag) );
     addOptVal( inTargetFieldName, lFieldValue, lFieldValueText )
  }
}


////////////////////// PREPARE DROPDOWN FROM XML /////////////////////////
function prepDDOptFromXML( inTargetFieldName, inDataArrStr, inFieldValueTag, inFieldTextTag )
{

}


////////////////////// PREPARE DROPDOWN FROM STRING ARRAY /////////////////////////
function copyDD( inSourceFieldName, inTargetFieldName)
{

  var inSourceFieldObj = document.getElementById( inSourceFieldName );
  var inTargetFieldObj = document.getElementById( inTargetFieldName );

  if ( inSourceFieldObj && inSourceFieldObj.type.toUpperCase().indexOf('SELECT') < 0 )
  {
    jAlert('WRONG TYPE OF FILED '+inSourceFieldObj.name+', HENCE D/D NOT PREPARED','Sunvision Alert Says');
    return -1;
  }
  if ( inTargetFieldObj && inTargetFieldObj.type.toUpperCase().indexOf('SELECT') < 0 )
  {
    jAlert('WRONG TYPE OF FILED '+inTargetFieldObj.name+', HENCE D/D NOT PREPARED','Sunvision Alert Says');
    return -1;
  }

  //alert('GO REMOVE');
  //for ( lRecCnt = (inTargetFieldObj.options.length-1); lRecCnt > inSourceFieldObj.options.length; lRecCnt-- )
  for ( lRecCnt = inTargetFieldObj.options.length; lRecCnt > 0; lRecCnt-- )
  {
  //  inTargetFieldObj.options.remove(lRecCnt);
    inTargetFieldObj.options[lRecCnt]=null;
  }

  //alert('COPYING '+inSourceFieldObj.name );
  for ( lRecCnt = 0; lRecCnt < inSourceFieldObj.options.length; lRecCnt++ )
  {
    var inSourceFieldObjOption = new Option( inSourceFieldObj.options[lRecCnt].text
                                           , inSourceFieldObj.options[lRecCnt].value);
    //inTargetFieldObj.options[lRecCnt].text  = inSourceFieldObj.options[lRecCnt].text;
    //inTargetFieldObj.options[lRecCnt].value = inSourceFieldObj.options[lRecCnt].value;
    inTargetFieldObj.options[lRecCnt]=inSourceFieldObjOption;
  }
}


/////////////////////////////////Prepare Drop Down For Academic Session//////////////////////////
function prepDDOptAcademicSession( inYearValue,inNumberOfOptions, inOrgCtg, inTargetFieldName, inPrevRecInd )
{
  var lTotalYear ;

  if ( inPrevRecInd == 'Y' )
    lTotalYear = inYearValue - inNumberOfOptions ;
  else
  if ( inPrevRecInd == 'N' )
    lTotalYear = inYearValue - 0;

  var lFieldValue        = '';
  var lFieldValueNew     = '';
  var lFieldValueText    = '';
  var lFieldValueTextNew = '';
  var loopCnt; 

  if ( inPrevRecInd == 'Y' )
    loopCnt = 2*inNumberOfOptions; 
  else
  if ( inPrevRecInd == 'N' )
    loopCnt = inNumberOfOptions;

  addOptVal( inTargetFieldName, '', 'SELECT' )
  for ( i = -1 ; i < loopCnt ; i++   )
  {
    if ( inOrgCtg == 'I')
    {
      lFieldValue      = lTotalYear+i +"-"+(lTotalYear+i+1) + "A" ;
      lFieldValueText  = lTotalYear+i +"-"+(lTotalYear+i+1) + "A" ;
      lFieldValueNew      = lTotalYear+i +"-"+(lTotalYear+i+1) + "B" ;
      lFieldValueTextNew  = lTotalYear+i +"-"+(lTotalYear+i+1) + "B" ;
      if ( i == 0 )
        addOptValSelected( inTargetFieldName, lFieldValue, lFieldValueText, 'Y' )
      else
        addOptVal( inTargetFieldName, lFieldValue, lFieldValueText )
      addOptVal( inTargetFieldName, lFieldValueNew, lFieldValueTextNew )
    }
    else
    if ( inOrgCtg == 'S')
    {
      lFieldValue      = lTotalYear+i +"-"+(lTotalYear+i+1);
      lFieldValueText  = lTotalYear+i +"-"+(lTotalYear+i+1);
      if ( i == 0 )
        addOptValSelected( inTargetFieldName, lFieldValue, lFieldValueText, 'Y' )
      else
        addOptVal( inTargetFieldName, lFieldValue, lFieldValueText )
    } 
  }
}
////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////Prepare Drop Down For Academic Session//////////////////////////
function prepDDOptAcademicSessionNew( inYearValue, inNumberOfOptions, inOrgCtg, inTargetFieldName, inPrevRecInd )
{
  var lTotalYear ;

  //alert('inYearValue '+inYearValue+'inNumberOfOptions '+inNumberOfOptions+'inOrgCtg '+inOrgCtg+'inTargetFieldName '+inTargetFieldName+'inPrevRecInd '+inPrevRecInd);

  if(inPrevRecInd == 'Y')
     lTotalYear = inYearValue - inNumberOfOptions ;
  else
  if(inPrevRecInd == 'N')
     lTotalYear = inYearValue - 0 ;

  var lFieldValue        = '';
  var lFieldValueNew     = '';
  var lFieldValueText    = '';
  var lFieldValueTextNew = '';
  var loopCnt; 

  if ( inPrevRecInd == 'Y' )
    loopCnt = 2*inNumberOfOptions; 
  else
  if ( inPrevRecInd == 'N' )
    loopCnt = inNumberOfOptions;

  addOptVal( inTargetFieldName, '', 'SELECT' )
  for( i = -2; i < loopCnt; i++ )
  {
     lFieldValue      = lTotalYear+i +"-"+(lTotalYear+i+1);
     lFieldValueText  = lTotalYear+i +"-"+(lTotalYear+i+1);
     if ( i == 0 )
       addOptValSelected( inTargetFieldName, lFieldValue, lFieldValueText, 'Y' )
     else
       addOptVal( inTargetFieldName, lFieldValue, lFieldValueText )
  }
}
////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////
function prepDDOptYear( inYearValue,inNumberOfOptions, inTargetFieldName, inPrevRecInd )
{
  var lYearNum ;

  if( inPrevRecInd == 'Y')
     lYearNum = inYearValue - inNumberOfOptions ;
  else
  if(inPrevRecInd == 'N')
     lYearNum = inYearValue - 0 ;

  var lFieldValue        = '';
  var lFieldValueNew     = '';
  var lFieldValueText    = '';
  var lFieldValueTextNew = '';
  var loopCnt;

  if ( inPrevRecInd == 'Y' )
    loopCnt = 2*inNumberOfOptions;
  else
  if ( inPrevRecInd == 'N' )
    loopCnt = inNumberOfOptions;

  addOptVal( inTargetFieldName, '', 'SELECT' )
  for( i = -1 ; i < loopCnt ; i++   )
  {
     lFieldValue      = lYearNum+i +"-"+(lYearNum+i+1);
     lFieldValueText  = lYearNum+i +"-"+(lYearNum+i+1);
     addOptVal( inTargetFieldName, lFieldValue, lFieldValueText )
  }
}
////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////
function prepDDOptYearSingle( inYearValue, inNumberOfOptions, inTargetFieldName, inPrevRecInd )
{
  var lYearNum  = 0;

  if ( inPrevRecInd == 'Y' )
     lYearNum = (1*inYearValue) - (1*inNumberOfOptions);
  else
  if ( inPrevRecInd == 'N' )
     lYearNum = (1*inYearValue);

  var lFieldValue        = '';
  var lFieldValueNew     = '';
  var lFieldValueText    = '';
  var lFieldValueTextNew = '';
  var loopCnt            = 0;

  if ( inPrevRecInd == 'Y' )
    loopCnt = 2*inNumberOfOptions;
  else
  if ( inPrevRecInd == 'N' )
    loopCnt = inNumberOfOptions;

  addOptVal( inTargetFieldName, '', 'SELECT' )
  for( i = -1 ; i < loopCnt ; i++   )
  {
     lFieldValue      = lYearNum + i;
     lFieldValueText  = lYearNum + i;
     addOptVal( inTargetFieldName, lFieldValue, lFieldValueText )
  }
}
////////////////////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////////////////////
function removeDDValue( inSrcField )
{
  //alert(inSrcField);
  var lSrcFieldObj = document.getElementById( inSrcField );
  if ( lSrcFieldObj && lSrcFieldObj.type.toUpperCase().indexOf('SELECT') < 0 )
  {
    jAlert('WRONG TYPE OF FILED '+lSrcFieldObj.name+', HENCE D/D NOT REMOVED','Sunvision Alert Says');
    return -1;
  }
  for ( lIndex = 0; lIndex < lSrcFieldObj.options.length; lIndex++ )
    lSrcFieldObj.options.remove(lIndex);
} 
////////////////////////////////////////////////////////////////////////////////////////////////


/*
////////////////////////////////////////////////////////////////////////////////////////////////
function removeDDValue( inSrcField, inTrgField )
{
  var lSrcFieldObj = document.getElementById( inSrcField );
  var lTrgFieldObj = document.getElementById( inTrgField );
  if ( lSrcFieldObj && lSrcFieldObj.type.toUpperCase().indexOf('SELECT') < 0 )
  {
    jAlert('WRONG TYPE OF FILED '+lSrcFieldObj.name+', HENCE D/D NOT PREPARED','Sunvision Alert Says');
    return -1;
  }
  if ( lTrgFieldObj && lTrgFieldObj.type.toUpperCase().indexOf('SELECT') < 0 )
  {
    jAlert('WRONG TYPE OF FILED '+lTrgFieldObj.name+', HENCE D/D NOT PREPARED','Sunvision Alert Says');
    return -1;
  }
  lTrgFieldObj.value = '';
  for ( lIndex = 0; lIndex < lSrcFieldObj.options.length; lIndex++ )
    lSrcFieldObj[lIndex].selected = false;
  lSrcFieldObj[0].selected = true;
} 
////////////////////////////////////////////////////////////////////////////////////////////////
*/



////////////////////////////////////////////////////////////////////////////////////////////////
function genderOnNameInit( inSrcField, inTrgField )
{
  var lSrcFieldObj = document.getElementById( inSrcField );
  var lTrgFieldObj = document.getElementById( inTrgField );
  if ( lSrcFieldObj.value == 'MR' )
    lTrgFieldObj.value = 'M';
  else
  if ( lSrcFieldObj.value == 'MRS' )
    lTrgFieldObj.value = 'F';
  else
  if ( lSrcFieldObj.value == 'MS' )
    lTrgFieldObj.value = 'F';
  else
    lTrgFieldObj.value = '';
} 
////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////
/*
Below code is 
- to get parent select tag of script tag
- add options using AJAX call to select tag
try
{
  //------------------------------------------------------
  // Approach #1
  //<script id="whatever" type="text/javascript" src="file.js?abc=123"></script>
  //var path = document.getElementById('whatever').src; // grep query part, should be discouraged
  //------------------------------------------------------
  // Approach #2
  //alert(document.currentScript); // still in proposal
  //------------------------------------------------------
  // Approach #3
  //alert(($('#name_initials script').attr('src').split('/'))[$('#name_initials script').attr('src').split('/').length-2]);
  //------------------------------------------------------
  // Approach #4
  var lScripts= document.getElementsByTagName('script');
  var lPath= lScripts[lScripts.length-1].src.split('?')[0];   // remove any ?query
  //var lMyDir= lPath.split('/').slice(0, -1).join('/')+'/';  // remove last filename part of path
  var lParentTagId = ($(lScripts[lScripts.length-1]).parent().get(0).id);
  //------------------------------------------------------
  var lOrgId=lPath.split('/')[lPath.split('/').length-2];
  if ( lOrgId != null && lOrgId.length > 0 )
  {
    $( '#'+lParentTagId ).load('../rest/gnTypeValue/'+lOrgId+'/pIdType/NAMEINIT'
                            , function(response, status, xhr)
                              {
                                if (status == 'error' ) throw status;
                              }
                            );
  }
  else
  {
    document.write('<option value=></option>');
    document.write('<option value=MR>Mr.</option>');
    document.write('<option value=MRS>Mrs.</option>');
    document.write('<option value=MS>Ms.</option>');
  }
}
catch( exception )
{
  document.write('<option value=>No data found</option>');
}
*/
////////////////////////////////////////////////////////////////////////////////////////////////

