/*************************************************************************
*Author		: Mukesh Kumar
*FileName	: Common.js
*Purpose	: Javascript Functions to validate user Inputs
*Created	: Jan-2004
*************************************************************************/
/*************************************************************************
 Function to check Text limits 
**************************************************************************/
function fnTextLimit(obj,TextLimit){		
		var tCount =obj.value.length   
		if( tCount > TextLimit ){
			alert("you exceed the text limit.\n\nPlease write '"+ TextLimit +" characters' only");
			//alert("you cannot enter more than '"+ TextLimit +" characters'.");
			var vText=obj.value
			obj.value=vText.substring(0,TextLimit);
			obj.focus
		} 
	}
/*************************************************************************
 Function to check 
**************************************************************************/	
///////////////////////////////////////////////////////
/******************************************************************************
	FUNCTION TO CHECK VALUE on SUBMIT 
******************************************************************************/
function fnChkSubmit(){
	var nCount=document.forms[0].length 		
	var value
	for(i=0; i<nCount;i++){		
		if( (document.forms[0].elements[i].type=="text")||(document.forms[0].elements[i].type=="textarea") ){
			value  =document.forms[0].elements[i].value
			tagName=document.forms[0].elements[i].name
			if ( value.length <= 0 ){					
			    alert("Please do not leave Blank.");
			    document.forms[0].elements[i].focus()
				return false;				
			}else if((tagName.indexOf("ntxt")>=0) && ( value.length > 0 )  ){
				//alert(tagName.indexOf("ntxt"));
				if(( !fnIsValidNumber(document.forms[0].elements[i]))||( isNaN(value) )){
					alert("Please enter a valid Number.");
					document.forms[0].elements[i].focus()
					return false;
				}else if( value < 0 ){
					alert("Please enter a Positive Number.");
					document.forms[0].elements[i].focus()
					return false;
				}
			
			}else if( !fnIsValidText(document.forms[0].elements[i]) ){			
				alert("Please do not leave Blank.");
			    document.forms[0].elements[i].focus()
				return false;				
			}							
		}else if( document.forms[0].elements[i].type=="select-one"){
			value  =document.forms[0].elements[i].value
			tagName=document.forms[0].elements[i].name
			if ( value == -1 && !document.forms[0].elements[i].disabled ){					
			    alert("Please Select the Option.");
			    document.forms[0].elements[i].focus()
				return false;				
			}
		}
			
	}		
	return true;
}
///////////////////////////////////////////////////////
//*******************************************************************************
//  fnCtrSubmit( document.formname )
//*******************************************************************************
function fnCtrSubmit(varCtr){
	var nCount=varCtr.length 		
	var value
	for(i=0; i<nCount;i++){		
		if( (varCtr.elements[i].type=="text")||(varCtr.elements[i].type=="textarea") ){
			value  =varCtr.elements[i].value
			tagName=varCtr.elements[i].name
			if ( value.length <= 0 ){					
			    alert("Please do not leave Blank.");
			    varCtr.elements[i].focus()
				return false;				
			}else if((tagName.indexOf("ntxt")>=0) && ( value.length > 0 )  ){
				//alert(tagName.indexOf("ntxt"));
				if(( !fnIsValidNumber(varCtr.elements[i]))||( isNaN(value) )){
					alert("Please enter a valid Number.");
					varCtr.elements[i].focus()
					return false;
				}else if( value < 0 ){
					alert("Please enter a Positive Number.");
					varCtr.elements[i].focus()
					return false;
				}
			
			}							
		}else if( varCtr.elements[i].type=="select-one"){
			value  =varCtr.elements[i].value
			tagName=varCtr.elements[i].name
			if ( value == -1 && !varCtr.elements[i].disabled ){					
			    alert("Please Select the Option.");
			    varCtr.elements[i].focus()
				return false;				
			}
		}
			
	}		
	return true;
}

/******************************************************************************
	end function fnOnSubmit
******************************************************************************/
///////////////////////////////////////////////////////
//adds a new item to a list box
//usage : fnAddList(document.frm.lst,"VALUE","TEXT") 
function fnAddList(varCtrl,stValue,stText){
	if (fnCheckDuplicate(varCtrl,stValue)){
		varCtrl.options.length++;
		varCtrl.options[varCtrl.options.length - 1].value=stValue;
		varCtrl.options[varCtrl.options.length - 1].text=stText;
		return true;
	}else{
		//alert('This item already exists in the list');
		return false;
	}
}
///////////////////////////////////////////////////////
//deletes the selcted item from the list box
//usage : fnDelList(document.frm.lst)

function fnDelList(varCtrl)
{
	var selIndex,i;
	/*
	if (varCtrl.value != "")
	{
		varCtrl.options[varCtrl.options.selectedIndex].value="";
		varCtrl.options[varCtrl.options.selectedIndex].text="";
		selIndex = varCtrl.options.selectedIndex;
		alert(selIndex);
	}
	*/
	selIndex = varCtrl.options.selectedIndex;
	for(i=selIndex;i<varCtrl.options.length-1;i++)
	{

		varCtrl.options[i].value = varCtrl.options[i+1].value;
		varCtrl.options[i].text = varCtrl.options[i+1].text;
	}

	 varCtrl.options.length--;
}
///////////////////////////////////////////////////////
function fnCheckDuplicate(varCtrl,stValue){
	var i;
	for (i=0;i<varCtrl.options.length;i++){
		if (stValue == varCtrl.options[i].value)
			return false;
	}
	return true;
}
///////////////////////////////////////////////////////
function fnResetList(varCtrl,varFrom){
	var resetCounter=varCtrl.options.length	
	/*for(z=varFrom;z<resetCounter;z++ ){
		varCtrl.options[z].text="";
		varCtrl.options[z].value="";
	}*/
	varCtrl.selectedIndex=0;
	varCtrl.length=varFrom;	
}
///////////////////////////////////////////////////////

function fnMoveupList( varCtrl ){
 var cmbLength,cmbIndex,val1,val2,text1,text2
 cmbLength= varCtrl.options.length
 for(i=0;i<cmbLength;i++ ){
    if(varCtrl.options[ i ].selected==true){
 	//cmbIndex = varCtrl.options.selectedIndex  
 	//alert(varCtrl.options.selectedIndex);
 	//alert(varCtrl.options.length);    
 	if( i<cmbLength && i>0 ){
	
		text1=varCtrl.options[ i ].text	
		val1 =varCtrl.options[ i ].value
	
		text2=varCtrl.options[ i-1 ].text	
		val2 =varCtrl.options[ i-1 ].value

		varCtrl.options[ i ].text   =text2	
		varCtrl.options[ i ].value  =val2
		varCtrl.options[ i-1 ].text =text1	
		varCtrl.options[ i-1 ].value=val1
		varCtrl.options[ i-1 ].selected=true
		varCtrl.options[ i ].selected=false
 	}
    }
 }
 
}
///////////////////////////////////////////////////////

function fnMovedownList( varCtrl ){
 var cmbLength,cmbIndex,val1,val2,text1,text2
 cmbLength= varCtrl.options.length
 for(i=cmbLength-1;i>=0;i-- ){
    if(varCtrl.options[ i ].selected==true){
 	 
 	if( i<cmbLength-1 && i>=0 ){
	
		text1=varCtrl.options[ i ].text	
		val1 =varCtrl.options[ i ].value
	
		text2=varCtrl.options[ i+1 ].text	
		val2 =varCtrl.options[ i+1 ].value

		varCtrl.options[ i ].text   =text2	
		varCtrl.options[ i ].value  =val2
		varCtrl.options[ i+1 ].text =text1	
		varCtrl.options[ i+1 ].value=val1
		varCtrl.options[ i+1 ].selected=true
		varCtrl.options[ i ].selected=false
 	}
    }
 }
 
}
///////////////////////////////////////////////////////
function fngetSelectedList( varCtrl){	
 var strData
     strData=""
	for(i=0;i<varCtrl.length;i++){
		if(varCtrl.options[ i ].selected==true){
		   if( strData.length > 0 )
		    strData=strData +","
	       strData=strData + varCtrl.options[ i ].value 	
		}
	}	
	//alert(strData);
	return strData;
}
///////////////////////////////////////////////////////

function fnSelectList( varCtrl,strList ){	
	for(i=0;i<varCtrl.length;i++){
		if(varCtrl.options[ i ].value==strList ){
		  varCtrl.options[ i ].selectedIndex=true; 	
		}
	}
	
}
///////////////////////////////////////////////////////
function fngetSelectedListText( varCtrl){	
 var strData,i
 i=0
     strData=""
	for(i=0;i<varCtrl.length;i++){
		if(varCtrl.options[ i ].selected==true){
		   //if( strData.length > 0 )
		    i=i+1
		    strData=strData +"\n"+ i +". "
	       strData=strData + varCtrl.options[ i ].text 	
		}
	}	
	//alert(strData);
	return strData;
}
///////////////////////////////////////////////////////
function fngetSelectedCSVListText( varCtrl){	
 var strData,i
 i=0
     strData=""
	for(i=0;i<varCtrl.length;i++){
		if(varCtrl.options[ i ].selected==true){
		   if( strData.length > 0 )
			strData=strData+", "
		   // i=i+1
		    //strData=strData +"\n"+ i +". "
		    
	       strData=strData + varCtrl.options[ i ].text 	
		}
	}	
	//alert(strData);
	return strData;
}
///////////////////////////////////////////////////////
function fngetCSVListValue( varCtrl){	
 var strData,i
 i=0
     strData=""
	for(i=0;i<varCtrl.length;i++){
		//if(varCtrl.options[ i ].selected==true){
		   if( strData.length > 0 )
		   strData=strData+","
		   		    
	       strData=strData + varCtrl.options[ i ].value 	
		//}
	}	
	//alert(strData);
	return strData;
}
///////////////////////////////////////////////////////
function fngetCSVListText( varCtrl){	
 var strData,i
 i=0
     strData=""
	for(i=0;i<varCtrl.length;i++){
		//if(varCtrl.options[ i ].selected==true){
		   if( strData.length > 0 )
		   strData=strData+","
		   		    
	       strData=strData + varCtrl.options[ i ].text
		//}
	}	
	//alert(strData);
	return strData;
}
///////////////////////////////////////////////////////
function fnIsSelected( varCtrl ){ 
 alert(varCtrl.selectedIndex);
   if ( varCtrl.selectedIndex==-1 ){
	   alert("Please Select List.");
       return false;
	}
	return true;
}
////////////////////////////////////////////////////////
function fnIsListSelected( varCtrl ){
 var cmbLength
 cmbLength= varCtrl.options.length
 for(i=0;i<cmbLength;i++){    
    if(	varCtrl.options[ i ].selected==true )	
     return true;
 }
 return false;	
 
}
///////////////////////////////////////////////////////
function fnMoveList(FromCombo,ToCombo)
{
	if ( fnIsSelected(FromCombo) ){
	
	var to_remove_counter=0;//number of options that were removed (num selected options)
	//move selected options to right select box (to)<BR>
	for (var i=0;i<FromCombo.options.length;i++)
	{
	 if (FromCombo.options[i].selected==true)
	   { 
	   var addtext=FromCombo.options[i].text;
	   var addvalue=FromCombo.options[i].value;
	   ToCombo.options[ToCombo.options.length]=new Option(addtext,addvalue);
	   FromCombo.options[i].selected=false;
	   ++to_remove_counter;
	   }
	   else
	   {
	   FromCombo.options[i-to_remove_counter].selected=false;
	   FromCombo.options[i-to_remove_counter].text=FromCombo.options[i].text;
	   FromCombo.options[i-to_remove_counter].value=FromCombo.options[i].value;
	   }
	}
	//now cleanup the last remaining options 
	var numToLeave=FromCombo.options.length-to_remove_counter;
	for (i=FromCombo.options.length-1;i>=numToLeave;i--) 
	{ 
	FromCombo.options[i]=null;
	}
	}
}
///////////////////////////////////////////////////////

function fnSelectAllList( varCtrl ){
 var cmbLength
 cmbLength= varCtrl.options.length
 for(i=0;i<cmbLength;i++){    
	varCtrl.options[ i ].selected=true 	
 }
 
}
///////////////////////////////////////////////////////

function fnDeselectAllList( varCtrl ){
 var cmbLength
 cmbLength= varCtrl.options.length
 for(i=0;i<cmbLength;i++){    
	varCtrl.options[ i ].selected=false 	
 }
 
}
///////////////////////////////////////////////////////
function fnIsValidNumber(varCtrl)
{
		var str = varCtrl.value;
		for (ixi=0;ixi<str.length;ixi++)
		{
			if ((str.charAt(ixi)>='0') && (str.charAt(ixi)<='9')){
					 return true;
				}
				else
				{
				if ((str.charAt(ixi) != ' '))
				 {
						return false;
						break;
					}
				}
		}
		return false;		
}
///////////////////////////////////////////////////////
function fnIsValidText(varCtrl)
{       var fFlag=0;
		var str = varCtrl.value;
		for (ixi=0;ixi<str.length;ixi++){
			if ((str.charAt(ixi) != ' '))
			fFlag=1
		}
		if(fFlag==0) 
			return false;		
		else
		    return true;	
}
///////////////////////////////////////////////////////
////General Validation////
function validateSearchGeneral(strRegExp,strValue,blank,composite)  {
  var test;
  var objRegExp;
  var flag;
  flag=true;
  if(strRegExp!="" && strRegExp!="0")
  {
	if(composite=="true")
	{ 
	test="["+strRegExp+"]*";
	objRegExp = new RegExp("^"+test+""+test+""+test+"$","i");
	}
	else
	{
	test=strRegExp;
	objRegExp = new RegExp(test,'gi');
	}
	//alert(objRegExp);
	//var objRegExp  = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
	flag=objRegExp.test(strValue);
	if(blank=="true" && strValue=="")
	{
	flag=true;
	}
  }
  return flag;
}
///////////////////////////////////////////////////////
function fnWinPop(url,width,height,noScroll){
    if( noScroll=="" )
	var pwin = window.open( url,"POPUP", "height="+ height +",width="+ width +",left=50,screenY=0,top=50,dependent=0,directories=0,fullscreen=0,location=0,menubar=0,resizable=0,scrollbars=yes,status=0,alwaysraised=yes,toolbar=0","" );																		
	else
	var pwin = window.open( url,"POPUP", "height="+ height +",width="+ width +",left=50,screenY=0,top=50,dependent=0,directories=0,fullscreen=0,location=0,menubar=0,resizable=0,scrollbars=0,status=0,alwaysraised=yes,toolbar=0","" );
	pwin.focus();	
	//alert(url);
}
//////////////////////////////////////////////////////////////////////
// function to check all check box except check box named "chkAll"  //
//////////////////////////////////////////////////////////////////////
function fnCheckAll(varCtrl){
	var nCount=varCtrl.length 		
	var value,tagName,flagChk
	if ( varCtrl.chkAll.checked )
	  flagChk=1
	else  
	  flagChk=0
	for(i=0; i<nCount;i++){		
		if( varCtrl.elements[i].type=="checkbox" ){
			value  =varCtrl.elements[i].value
			tagName=varCtrl.elements[i].name
			if(flagChk)			
				varCtrl.elements[i].checked=true
			else
			    varCtrl.elements[i].checked=false
		}	
    }
}
//////////////////////////////////////////////////////////////////////
// function to uncheck all check box [                           ]  //
//////////////////////////////////////////////////////////////////////
function fnUCheck(varCtrl){	
	var aflag;
	aflag=true;
	var nCount=varCtrl.length 		
	var value,tagName,flagChk
	for(i=0; i<nCount;i++){		
		if( varCtrl.elements[i].type=="checkbox" ){			
			tagName=varCtrl.elements[i].name
			if(varCtrl.elements[i].checked==false && tagName!="chkAll" )
				aflag=false;			
		}	
    }
    varCtrl.chkAll.checked=aflag;
}
//////////////////////////////////////////////////////////////////////
// function to check checkbox checked or not   [                 ]  //
//////////////////////////////////////////////////////////////////////
function fnCheck(varCtrl){	
	var aflag;
	aflag=false;
	var nCount=varCtrl.length 		
	var value,tagName,flagChk
	for(i=0; i<nCount;i++){		
		if( varCtrl.elements[i].type=="checkbox" ){			
			tagName=varCtrl.elements[i].name
			if(varCtrl.elements[i].checked==true && tagName!="chkAll" )
				aflag=true;			
		}	
    }
    return aflag;
}
//////////////////////////////////////////////////////////////////////
// function to check all check box based on tagname   
//////////////////////////////////////////////////////////////////////
function fnCheckBox(varCtrl,strName){
	var nCount=varCtrl.length 		
	var value,tagName,flagChk
	
	for(i=0; i<nCount;i++){		
		if( varCtrl.elements[i].type=="checkbox" ){			
			value  =varCtrl.elements[i].value
			tagName=varCtrl.elements[i].name			
			if(tagName.indexOf(strName)==0)			
				varCtrl.elements[i].checked=true;			
		}	
       }
}
//////////////////////////////////////////////////////////////////////
// function to uncheck all check box based on tagname   	   //
////////////////////////////////////////////////////////////////////
function fnUnCheckBox(varCtrl,strName){	
        
	var nCount=varCtrl.length 		
	var value,tagName
	
	for(i=0; i<nCount;i++){		
		if( varCtrl.elements[i].type=="checkbox" ){			
			value  =varCtrl.elements[i].value
			tagName=varCtrl.elements[i].name
                        			
			if(tagName.indexOf(strName)==0)			
				varCtrl.elements[i].checked=false;			
		}	
       }
}

//////////////////////////////////////////////////////////////////////
// function to check check box checked or not based on tagname   	   //
////////////////////////////////////////////////////////////////////
function fncheckboxFlag(varCtrl,strName){	
        
	var nCount=varCtrl.length 		
	var value,tagName
	
	for(i=0; i<nCount;i++){		
		if( varCtrl.elements[i].type=="checkbox" ){			
			value  =varCtrl.elements[i].value
			tagName=varCtrl.elements[i].name
                        			
			if(tagName.indexOf(strName)==0)			
				if(varCtrl.elements[i].checked)
				   return true;		
		}	
    }
    return false;
}



///////////////////////////////////////////////////////
//*******************************************************************************
//  fnCtrOnSubmit( document.formname )
//*******************************************************************************
function fnCtrOnSubmit(varCtr){
	var nCount=varCtr.length 		
	var value
	for(i=0; i<nCount;i++){		
	//alert(varCtr.elements[i].type);
			
		if( (varCtr.elements[i].type=="text")||(varCtr.elements[i].type=="textarea")||(varCtr.elements[i].type=="password") ){
			value  =varCtr.elements[i].value
			tagName=varCtr.elements[i].name
			
			//To remove Blankspaces
			//validateSearchGeneral(strRegExp,strValue,blank,composite)
			/*
			if( validateSearchGeneral("\\s",value,false,true) ){
				varCtr.elements[i].value="";	
				value=varCtr.elements[i].value	
			}*/
			//if(i < 3)
			//alert(tagName+" :"+ value +":"+validateSearchGeneral("\\s",value,true,true));
			
			if (( value.length <= 0 )&&(tagName.indexOf("dtxt")==0 )){					
			    alert("Please select the date.");
			    varCtr.elements[i].focus()
				return false;				
			}
			
			
			if (( value.length <= 0 )&&(tagName.indexOf("otxt")<0 )&&( tagName.indexOf("ontxt")<0)&&( tagName.indexOf("odtxt")<0)){					
			    alert("Please do not leave blank.");
			    varCtr.elements[i].focus()
				return false;				
			}
			//alert(tagName.indexOf("txtLogin"));
			if(( tagName.indexOf("ntxt")>=0 ) && ( value.length > 0 )  ){
				//alert(tagName.indexOf("ntxt"));
				if(( !fnIsValidNumber(varCtr.elements[i]))||( isNaN(value) )){
					alert("Please enter a valid number.");
					varCtr.elements[i].focus()
					return false;
				}else if( value < 0 ){
					alert("Please enter a positive number.");
					varCtr.elements[i].focus()
					return false;
				}			
			}
			
		}else if( varCtr.elements[i].type=="select-one"){
			value  =varCtr.elements[i].value
			tagName=varCtr.elements[i].name
			if( tagName.indexOf("ocmb")< 0 ){
				if ( value == -1 && !varCtr.elements[i].disabled ){					
				    alert("Please select the option.");
				    varCtr.elements[i].focus()
					return false;				
				}
			}
		}
			
	}		
	return true;
}
//////////////////////////////////////////////////////////////////////
// function to get checked check box CSV Values based on tagname   
//////////////////////////////////////////////////////////////////////
function fnCheckCSVvalue(varCtrl,strName){
	var nCount=varCtrl.length 		
	var value,tagName,flagChk
	var return_value="";
	
	for(i=0; i<nCount;i++){		
		if( varCtrl.elements[i].type=="checkbox" ){			
			value  =varCtrl.elements[i].value
			tagName=varCtrl.elements[i].name			
			if(tagName.indexOf(strName)==0)			
				if(varCtrl.elements[i].checked==true){
				    if(return_value!="") 
				        return_value=return_value+", "
					return_value=return_value + value
				}			
		}	
       }
    return return_value;   
}

function fnPopUp(ad_url, iWidth, iHeight, bResizable)
	{
		//var ad_url = "ListVendor.asp";
		//alert(ad_url);
		var hwnd = window.open(ad_url,"HelpWindow","width="+iWidth+",height="+iHeight+",resizable="+bResizable+",scrollbars=yes");
		if ((document.window != null) && (!hwnd.opener))
		   {
				hwnd.opener = document.window;
		   }
	}