
/* FUNCTION STARTS */

/************************************************************************
    Created By:        SURESH DEV
    Method Name:       focusSSN()
    Date Created:      16th July 2005
    Last Modified:     16th July 2005
    Purpose:           FUNCTION TO CONTROL THE FLOW OF CHARS BETWEEN BOXES
					   e.g.	FILLING SOCIAL SECURITY NUMBER IN THE FORMAT 
					   333-22-4444
    Input Parameters:  Control Name,Maxlength,Target Control(where the next focus will be)
    Output Parameters: None
    ************************************************************************/

		function focusSSN(ctrlname,mxlen,targetbox)
		{
			try 
			{
				var str;			
				str=document.getElementById(ctrlname).value;			

				if (str.length==mxlen)
				{			
				document.getElementById(targetbox).focus();
				
				}
			}

			  catch(ex)
			  {}	

		}
		
/* FUNCTION ENDS */


/* FUNCTION STARTS */

/************************************************************************
    Created By:        Manu John
    Method Name:       AppLoad()
    Date Created:      16th July 2005
    Last Modified:     16th July 2005
    Purpose:           FUNCTION TO SET FOCUS ON BODY LOAD (For all the pages)
    Input Parameters:  Control Name
    Output Parameters: None
    ************************************************************************/

		function AppLoad(ctrlname)  
		{

		try
		{
		document.getElementById(ctrlname).focus();
		}

		catch(ex)
		{}

		}

/* FUNCTION ENDS */

/* FUNCTION STARTS */


/************************************************************************
    Created By:        Manu John
    Method Name:       validateEmail()
    Date Created:      12th August 2005
    Last Modified:     12th August 2005
    Purpose:           FUNCTION TO VALIDATE EMAIL ADDRESS
    Input Parameters:  EMAIL ADDRESS
    Output Parameters: TRUE/ FALSE
    ************************************************************************/

	function validateEmail(strValue) 
	
	{

	var objRegExp  = /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;  //check for valid email  return 
	if (objRegExp.test(strValue))
		{
		return true;
		}
		else
		{
		return false;
		}			

    }

/* FUNCTION ENDS */



/* FUNCTION STARTS */


/************************************************************************
    Created By:        Manu John
    Method Name:       ConfirmAction()
    Date Created:      26th November 2005
    Last Modified:     26th November 2005
    Purpose:           FUNCTION TO SHOW CONFIRM POP-IP
    Input Parameters:  MESSAGE
    Output Parameters: TRUE/ FALSE
    ************************************************************************/

		function ConfirmAction(msg)
		{
			if (confirm(msg))
				{
				return true;
				}
			else
				{
				return false;
				}
		
		}
		

/* FUNCTION ENDS */

/* FUNCTION STARTS */


/************************************************************************
    Created By:		   SURESH DEV
    Method Name:       findPosX(obj)
    Date Created:      8th Dec 2005
    Last Modified:     8th Dec 2005
    Purpose:           FUNCTION to get Left position of any control
    Input Parameters:  Object
    Output Parameters: Position
    ************************************************************************/
function findPosX(obj)
{
	var curleft = 0;
	//alert(obj.x);
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			//alert(obj.offsetLeft + '....' + obj.offsetParent);
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
		//alert('x=' + obj.x);
	//alert(curleft);
	return curleft;
}
/* FUNCTION ENDS */



/* FUNCTION STARTS */


/************************************************************************
    Created By:		   SURESH DEV
    Method Name:       findPosX(obj)
    Date Created:      8th Dec 2005
    Last Modified:     8th Dec 2005
    Purpose:           FUNCTION to get Top position of any control
    Input Parameters:  Object
    Output Parameters: Position
    ************************************************************************/

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
		//alert(obj.offsetTop + '....' + obj.offsetParent);
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
/* FUNCTION ENDS */


/************************************************************************
    Created By:		   SURESH DEV
    Method Name:       KeepLinkDisable(objForm,CtrlName)
    Date Created:      23th Dec 2005
    Last Modified:     23th Dec 2005
    Purpose:           FUNCTION to get Top position of any control
    Input Parameters:  Object
    Output Parameters: Position
    ************************************************************************/

function KeepLinkDisable(objForm,CtrlName)

{
	var intFormElements=new Number();		//number of form elements
	var obj;								//pointer to particular object of form
	var i;									//loop var

	
	//COUNT THE LENGTH OF CONTROLS IN THE OBJECT PAGE...
	intFormElements= objForm.elements.length;
	
	//DISABLE OBJECT CONTROLS ONE BY ONE USING FOR LOOP...
	
	for(i=0;i<intFormElements;i++)
	{
		obj = objForm.elements[i]
			alert(obj.id);
		
		/*if(obj.id==document.getElementById(CtrlName).id)
		{
			document.getElementById(CtrlName).className="captionstyle"
		}
		else
		{}*/
	}
}

//END FUNCTION.......

function KeepLinkDisable1()
{
alert("dfasdf");

}

/**********************************************************************
		METHOD NAME		 : AssignValue(objText,objList,display)
		CREATED BY		 : SURESH DEV
		CREATED ON		 : 28 JAN. 06
		PURPOSE			 : Assign Data in a textbox from list box
		INPUT PARAMETERS : Text box and List box
		OUTPUT PARAMETERS: 
		MODIFIED BY		 : 
		MODIFIED ON		 : 
		MOD. PURPOSE	 : 
************************************************************************/
function AssignValue(objText,objList,display)
{
	if(objList.selectedIndex>=0)
	{
		objText.value = objList.options[objList.selectedIndex].text;
	}
	objList.style.display=display
}

/**********************************************************************
		METHOD NAME		 : searchItem(objText,objList)
		CREATED BY		 : SURESH DEV
		CREATED ON		 : 28 JAN. 06
		PURPOSE			 : Search Data in a list box
		INPUT PARAMETERS : Text box and List box
		OUTPUT PARAMETERS: 
		MODIFIED BY		 : 
		MODIFIED ON		 : 
		MOD. PURPOSE	 : 
************************************************************************/

function searchItem(objText,objList)
{
	//alert(event.keyCode);
	//alert(objText.value)
	//return false;
	if(event.keyCode==13 || event.keyCode == 9 || event.keyCode == 27)
	{
		AssignValue(objText,objList,"");
		objList.style.display="none";
	}
	else if(event.keyCode==40)
	{
		//alert(objList.selectedIndex + " < " + objList.length)
		if( parseInt(objList.selectedIndex) < (parseInt(objList.length)-1))
		{
			objList.selectedIndex += 1;
			AssignValue(objText,objList,"");
		}
	}
	if(event.keyCode==38)
	{
		if(objList.selectedIndex>=1)
		{
			objList.selectedIndex -= 1;
			AssignValue(objText,objList,"");
		}
	}
	else
	{
		objList.style.display="block";
		for(var i=0;i< objList.length;i++)
		{
			var stxt= new String();
			stxt = objText.value;
			if(objList.options[i].text.substring(0,stxt.length).toUpperCase() == stxt.toUpperCase())
			{
				objList.selectedIndex=i;
				break;
			}
			else
			{
				objList.selectedIndex=-1;
			}
		
		}
	}
	return false;
}

/**********************************************************************
		METHOD NAME		 : searchItem(objText,objList)
		CREATED BY		 : SURESH DEV
		CREATED ON		 : 20 FEB. 06
		PURPOSE			 : Search the cookies and return that value if found else return null.......
		INPUT PARAMETERS : Text box and List box
		OUTPUT PARAMETERS: 
	
************************************************************************/


function getCookie(NameOfCookie)
{
	if (document.cookie.length > 0) 
	{
		var strCookie = unescape(document.cookie)
		begin = strCookie.indexOf(NameOfCookie+"="); 
		if (begin != -1) 
		{
			
			begin += NameOfCookie.length+1; 
			end = strCookie.indexOf(";", begin);
			if (end == -1) end = strCookie.length;
			return unescape(strCookie.substring(begin, end)); 
		} 
	}
	return null; 
}

//EXAMPLE OF USING THAT FUNCTION,..............
/*
	function showname()
			{
				if(getCookie('myCookie')!=null)
				{
					alert(getCookie('myCookie'));
				}
			
			}
			*/


// END COOKIE FUNCTION........................................................

/**********************************************************************
		METHOD NAME		 : sfngetXmlDoc(strXml)
		CREATED BY		 : SURESH DEV
		CREATED ON		 : 4 MARCH. 06
		PURPOSE			 : Get a xml document
		INPUT PARAMETERS : XML string
		OUTPUT PARAMETERS: XML Document
		MODIFIED BY		 : 
		MODIFIED ON		 : 
		MOD. PURPOSE	 : 
************************************************************************/

function fngetXmlDoc(strXml)
{	var xmlDOC;
	 
	try
	{ 
		if (document.implementation && document.implementation.createDocument)

		{//Firefox
				
				var parser=new DOMParser();
			    var doc=parser.parseFromString(unescape(strXml),"text/xml");
				var x=doc.documentElement;
			    return x; 			
		}
		else 
		{ //IE
			try
			{
					xmlDOC= new ActiveXObject("msxml2.DOMDocument") ;
					//xmlDOC   = new ActiveXObject("Microsoft.XMLDOM");
					xmlDOC.async = false;
	        	    xmlDOC.loadXML(unescape(strXml));
				    return xmlDOC;
			}
			catch(e)
			{
				return null;
			}
		}
		
		
	}
	catch(e)
	{
		return null;
	}
}
function loadHandler () 
{
	 alert(xmlDOC.getElementsByTagName('NewDataSet').length);
alert(xmlDOC.selectNodes("//Table").length);
	//xmlProcessor(this); //Call the Commen function with 'this' data.
}

function xmlProcessor(data) {

//alert(data.getElementsByTagName('NewDataset').item(1));
alert(xmlDoc.getElementsByTagName('NewDataSet').length);
alert(xmlDOC.selectNodes("//Table").length);
return data;
}



/**********************************************************************
		METHOD NAME		 : fngetNodeValue(xmlDOC, strNodeName)
		CREATED BY		 : SURESH DEV
		CREATED ON		 : 4 MARCH. 06
		PURPOSE			 : Get value of one xml node from one data table having single record only
		INPUT PARAMETERS : XML Document , Node Name, Position of node
		OUTPUT PARAMETERS: Value of Node
		MODIFIED BY		 : 
		MODIFIED ON		 : 
		MOD. PURPOSE	 : 
************************************************************************/
function fngetNodeValue(xmlDOC, strNodeName, iPos)
{
	if (iPos == null)
		iPos = 0;
		//alert(xmlDOC.xml + "...node name" + strNodeName);
	try
	{
		
		var  oNodes = xmlDOC.selectNodes("//Table");
		var ilength= parseInt(oNodes.length);
		for (i = 0; i < ilength; i++)
		{
			if (iPos==i)
			{
				var oNode = oNodes(i).selectSingleNode(strNodeName);
				//alert(oNode.text);
				if (oNode != null)
					return oNode.text;
				else
					return "";
			}
		}

	
	}
	catch(e)
	{
		alert(e.Message);
		return null;
	}
}
/**********************************************************************
		METHOD NAME		 : fngetDependNodeValue(xmlDOC, strSourceNodeName, strSourceNodeValue, strTragetNodeName)
		CREATED BY		 : SURESH DEV
		CREATED ON		 : 17 MARCH. 06
		PURPOSE			 : Get value of one xml node based on value of any other node
		INPUT PARAMETERS : XML Document , Node Name, Node value, target notde name
		OUTPUT PARAMETERS: Value of Node
		MODIFIED BY		 : 
		MODIFIED ON		 : 
		MOD. PURPOSE	 : 
************************************************************************/

function fngetDependNodeValue(xmlDOC, strSourceNodeName, strSourceNodeValue, strTragetNodeName)
{
		var  oNodes = xmlDOC.selectNodes("//Table[" + strSourceNodeName + "=" + strSourceNodeValue + "]");

		var ilength= parseInt(oNodes.length);
		for (i = 0; i < ilength; i++)
		{
			var oNode = oNodes(i).selectSingleNode(strTragetNodeName);
			return oNode.text;
		}

}
//xmlDoc.selectNodes("/bookstore/book[price>35]/price") 

/**********************************************************************
			METHOD NAME		 : fnCompareTwoDate(strDateFormat,strDate1,strDate2)
			CREATED BY		 : SURESH DEV
			CREATED ON		 : 15 JUNE. 06
			PURPOSE			 : To Compare two dates
			INPUT PARAMETERS : strDateFormat(dmy, mdy, ymd)
			OUTPUT PARAMETERS: true/false (Status of input date)
			MODIFIED BY		 : 
			MODIFIED ON		 : 
			MOD. PURPOSE	 : 
	************************************************************************/
	function fnCompareTwoDate(strDateFormat,strDate1,strDate2)
	{		
		var strMsg = 'Start Date should be less then the End Date.';
		var arr_date1 = fnGetDateArray(strDateFormat,strDate1)
		var arr_date2 = fnGetDateArray(strDateFormat,strDate2)
		
		
	
		if (arr_date1!= null && arr_date2!= null)                // FOR CASE YEAR ( YEAR IS GREATER, THEN DATE IS VALID
		{						
			if (parseFloat(arr_date2[2]) > parseFloat(arr_date1[2]))
			{
				 
				return true;
			}
			else if (parseFloat(arr_date2[2]) < parseFloat(arr_date1[2]))
			{
				alert(strMsg);
				return false;
			}
			else if (parseFloat(arr_date2[2]) == parseFloat(arr_date1[2]))
			{
				if (parseFloat(arr_date2[1]) > parseFloat(arr_date1[1]))          // FOR CASE MONTH
				{
					 
					return true;
				}
				else if (parseFloat(arr_date2[1]) < parseFloat(arr_date1[1]))
				{
					alert(strMsg);
					return false;
				}
				else if (parseFloat(arr_date2[1]) == parseFloat(arr_date1[1]))
				{
					if (parseFloat(arr_date2[0]) >= parseFloat(arr_date1[0]))    // FOR CASE DATE
					{
						// alert(parseInt(arr_date2[0]) + '...'+ parseInt(arr_date1[0]));
						return true;
					}
					else
					{
						alert(strMsg);
						return false;
					}
				}
			
			}
					
		}
		/*else
		{
			alert('pass the valid date format');
		} */
		
	}
	
	/**********************************************************************
			METHOD NAME		 : fnIsValidDate(strDateFormat,strDate)
			CREATED BY		 : SURESH DEV
			CREATED ON		 : 18 MARCH. 06
			PURPOSE			 : To validate date
			INPUT PARAMETERS : strDateFormat(dmy, mdy, ymd)
			OUTPUT PARAMETERS: true/false (Status of input date)
			MODIFIED BY		 : 
			MODIFIED ON		 : 
			MOD. PURPOSE	 : 
	************************************************************************/
	function fnIsValidDate(strDateFormat,strDate)
	{
		
		var arr_date = fnGetDateArray(strDateFormat,strDate)
		if (arr_date!= null)
		{
			var dt=new Date(arr_date[2],(arr_date[1]-1), arr_date[0]);
			if(parseInt(dt.getDate()) == parseInt(arr_date[0]) && (parseInt(dt.getMonth())== parseInt(arr_date[1])) && parseInt(dt.getFullYear())==parseInt(arr_date[2]))
			{
				alert(arr_date[1]-1);
				return true;
			}
		}
		
		return false;
	}
	/**********************************************************************
			METHOD NAME		 : fnGetDateArray(strDateFormat,strDate)
			CREATED BY		 : SURESH DEV
			CREATED ON		 : 18 MARCH. 06
			PURPOSE			 : To Get array of date
			INPUT PARAMETERS : strDateFormat(dmy, mdy, ymd)
			OUTPUT PARAMETERS: array of [dd,mm,yyyy]
			MODIFIED BY		 : 
			MODIFIED ON		 : 
			MOD. PURPOSE	 : 
	************************************************************************/
	function fnGetDateArray(strDateFormat,strDate)
	{
		//alert(strDateFormat);
		//debugger
		var strMsg = 'Not a valid date format.';
		var arr_date = new Array();
		var intVal;
		
		if(strDate.indexOf('-') > -1)
		{
			arr_date = strDate.split('-');
		}
		else if(strDate.indexOf('/') > -1)
		{
			arr_date = strDate.split('/');
		}
		else
		{
			alert(strMsg + ' 1');
			return null;
		}
		if(strDateFormat == 'mdy')
		{	//alert('suresh');
			intVal      = arr_date[0];
			arr_date[0] = arr_date[1];
			arr_date[1] = intVal;
		}
		else if (strDateFormat=='ymd')
		{
			intVal      = arr_date[0];
			arr_date[0] = arr_date[2];
			arr_date[2] = intVal;
		}
		else if (strDateFormat=='dmy')
		{
		}
		else
		{
			alert(strMsg  + ' 2');
			return null;
		}
		return arr_date;
	}

/**********************************************************************
			METHOD NAME		 : Initialize()
			CREATED BY		 : SURESH DEV
			CREATED ON		 : 15 MARCH. 06
			PURPOSE			 : To Get ActiveX object of HTTP request
			
	************************************************************************/

// Function to Initialize
function Initialize()
{	var req;
	req = null;
	try
	{
		req=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			req=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(oc)
		{
			req=null;
		}
	}
	if(!req&&typeof XMLHttpRequest!="undefined")
	{
		req=new XMLHttpRequest();
	}
	//req = new XMLHttpRequest();
	return req;
}


/**********************************************************************
			METHOD NAME		 : SendHttpRequest(url)
			CREATED BY		 : SURESH DEV
			CREATED ON		 : 15 MARCH. 06
			PURPOSE			 : To Get Action on Http Request Object
			
	************************************************************************/


function SendHttpRequest(url)
		{
			var req = Initialize();
						
			if(req!=null)
			{
				req.onreadystatechange = Process;
				req.open("GET", url, true);
				req.send(null);
			}
			req=null;
		}
		
	// For Reset the form and Clear all controls.
		 function ClearControls()
		 {
		
				var intFormElements=new Number();		//number of form elements
				var obj;								//pointer to particular object of form
				var i;									//loop var
				
				//COUNT THE LENGTH OF CONTROLS IN THE OBJECT PAGE...
				intFormElements= document.forms[0].elements.length;
				
				for(i=0;i<intFormElements-1;i++)
				{
					obj = document.miscchargeentry.elements[i];
					
					if(obj.type=="text")
					{
						obj.value="";
						/*if(obj.id!="txtDate")
						{
						
						obj.value="";
						}*/
					}
					
					if(obj.type=="select-one")
					{
						obj.selectedIndex=0;
					}
				}
			//return false;
		 }
		 
//End Function	

/**********************************************************************
		METHOD NAME		 : TypeNumericValuesOnly()
		CREATED BY		 : SURESH DEV
		CREATED ON		 : 16 MARCH. 06
		PURPOSE			 : STRICTLY BOUND THE KEYS FOR TYPING SO THAT ONLY NUMERIC VALUES TYPED.
		
************************************************************************/

		function TypeNumericValuesOnly1()
		{
		
		
			if (!(window.event.keyCode>=48 && window.event.keyCode <= 57))
			{
			
	   				window.event.keyCode = 0;
	   				return false;
			}
		}	
		
		
		function TypeNumericValuesOnly2()
		{
		
			
			if (!(window.event.keyCode>=48 && window.event.keyCode <= 57 || window.event.keyCode==46))
			{
			
	   				window.event.keyCode = 0;
	   				return false;
			}
		}	
		
		function encodeMyHtml(strVal) 
		{
		encodedHtml = escape(strVal);
		encodedHtml = encodedHtml.replace(/\//g,"%2F");
		encodedHtml = encodedHtml.replace(/\?/g,"%3F");
		encodedHtml = encodedHtml.replace(/=/g,"%3D");
		encodedHtml = encodedHtml.replace(/&/g,"%26");
		encodedHtml = encodedHtml.replace(/@/g,"%40");		
		encodedHtml = encodedHtml.replace(/@/g,"%40");
		return  encodedHtml;
		} 
	
function TrimString(str)
	{				
		var st=new String(str);
		stpos=0;
		strln=st.length;
		while(stpos<strln)
		{
			if(st.substr(stpos,1)!=' ')
			{
				break;
			}
			stpos=stpos+1;
		}
	
		edpos=strln-1;
		while(edpos>=stpos)
		{
			if(st.substr(edpos,1)!=' ')
			{
				break;
			}
			edpos=edpos-1;
		}
		var retst=st.substring(stpos,edpos+1);
		return retst;
	}
		
	/* Function For Compare The Two Dates */
	
	function fnCompareTwoDate_ch(strDateFormat,strDate1,strDate2,msg)
	{		
		var strMsg = msg;
		var arr_date1 = fnGetDateArray(strDateFormat,strDate1)
		var arr_date2 = fnGetDateArray(strDateFormat,strDate2)
		
		
	
		if (arr_date1!= null && arr_date2!= null)                // FOR CASE YEAR ( YEAR IS GREATER, THEN DATE IS VALID
		{						
			if (parseFloat(arr_date2[2]) > parseFloat(arr_date1[2]))
			{
				 
				return true;
			}
			else if (parseFloat(arr_date2[2]) < parseFloat(arr_date1[2]))
			{
				alert(strMsg);
				return false;
			}
			else if (parseFloat(arr_date2[2]) == parseFloat(arr_date1[2]))
			{
				if (parseFloat(arr_date2[1]) > parseFloat(arr_date1[1]))          // FOR CASE MONTH
				{
					 
					return true;
				}
				else if (parseFloat(arr_date2[1]) < parseFloat(arr_date1[1]))
				{
					alert(strMsg);
					return false;
				}
				else if (parseFloat(arr_date2[1]) == parseFloat(arr_date1[1]))
				{
					if (parseFloat(arr_date2[0]) >= parseFloat(arr_date1[0]))    // FOR CASE DATE
					{
						// alert(parseInt(arr_date2[0]) + '...'+ parseInt(arr_date1[0]));
						return true;
					}
					else
					{
						alert(strMsg);
						return false;
					}
				}
			
			}
					
		}
		/*else
		{
			alert('pass the valid date format');
		} */
		
	}
		
		 