
var isNS4 = (document.layers) ? true : false; //to detect if the browser is NS4
var isNS6 = (!document.all && document.getElementById) ? true : false; //to detect if the browser is NS6 and above
var subcacsp = new Array();
/*   Code change made by Nitin upadhyay dated 01 December 2009 WRT to support central case 9275 
      MSEDCL,MSDCL,MSPGCL,MSETCL needed to remove the restriction on token to be used  */
/* Code changes start here */
subcacsp["MSEB"] = "Rainbow iKey 1000 RSA Cryptographic Service Provider";
/* subcacsp["MSDCL"] = "Rainbow iKey 1000 RSA Cryptographic Service Provider"; */
subcacsp["ADWEB"] = "";
/* subcacsp["MSEDCL"]="Datakey RSA CSP Rainbow iKey 1000 RSA Cryptographic Service Provider"; */

/*   Code change made by vijaya dated 22 october 2009 WRT to support central case 9217 MSDCL 
needed restriction on CSP i.e they needed a key pair to be generated on both ikey100 and ikey 2032*/
/* Code changes start here */

 /* subcacsp["MSDCL"]="Datakey RSA CSP Rainbow iKey 1000 RSA Cryptographic Service Provider"; */

/* Code changes ends here */
/* Code changes ends here */


/** 
  *  Function to detect the type of the Browser
  *  @return Name of the browser to detect the type of the Browser
  */

function browserDetect()
{
    var browsername = navigator.appName;

	if (browsername.indexOf("Netscape") != -1)
    {
 		browsername = "NS"
    }
    else
    {
        if (browsername.indexOf("Microsoft") != -1)
        {
            browsername = "MSIE"
        }
        else
        {
            browsername = "N/A"
        }
    }
    return(browsername);
}                      

/** 
  *  Function to check if the given character is spaces or not
  *  @param inChar the character to check
  *  @return true if is space 
  *  @return false if is not space
  */

function isSpace(inChar)
{
    return (inChar == ' ' || inChar == '\t' || inChar == '\n');
}

function removeSpaces(value) {
   var temp = value;
   var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
   if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
   var obj = / +/g;
   temp = temp.replace(obj, " ");
   if (temp == " ") { temp = ""; }
   return temp;
}


/** 
  *  Function to trim the spaces of the given string
  *  @param tmpStr the String to trim the spaces
  *  @return the trimed string
  */

function trim(tmpStr)
{
    var atChar;
	tmpStr = new String(tmpStr);
    if (tmpStr.length > 0)
    {
        atChar = tmpStr.charAt(0);
    }
    while (isSpace(atChar))
    {
        tmpStr = tmpStr.substring(1,tmpStr.length);
        atChar = tmpStr.charAt(0);
    }
    if (tmpStr.length > 0)
    {
        atChar = tmpStr.charAt(tmpStr.length - 1);
    }
    while (isSpace(atChar))
    {
        tmpStr = tmpStr.substring(0,(tmpStr.length - 1));
        atChar = tmpStr.charAt(tmpStr.length - 1);
    }
    return tmpStr;
}

/** 
  *  Function to check if the string is empty or not
  *  @param str the String to check 
  *  @return 1 if str is empty
  *  @return 0 if str is not empty
  */

function stringIsEmpty(str)
{
    var retVal = 0;
	if ((trim(str)).length == 0)
    {
 		retVal = 1;
    }
	return retVal;    
}
/** 
  *  Function to check if the value entered is 0 
  *  @param str
  *  @return 1 :- indicates is 0, 0 :- indicates not 0 
  */

function checkValue(str)
{
    var isZero = 0;
    if (str == '0' || str == 0)
        isZero = 1;

    return isZero;
}

function isAlphabetic(chr)
{
    var inval = 1;
    var isNotAlpha = "1234567890-+=_~`<,>./?:;\"\'{[}]|\()&^%$#@!* ";

    for (x = 0; x < isNotAlpha.length; x++)
    {
        if (chr.charAt(0) == isNotAlpha.charAt(x))
            inval = 0;
    }
    return(inval);
}


/** 
  *  Function to check if the string contains any alpha numeric or not
  *  @param str the Numeric String to check 
  *  @return 1 if str contains alpha numeric 
  *  @return 0 if str contain only numbers
  */

function checkNumber(str)
{
    var isnot = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()+=|-\~`?>.<,':;{[}]_ ";  
    var inval = 0;
    var x;
    for (var i = 0; i < str.length; i++)
    {
        for (x = 0; x < isnot.length; x++)
        {
            if (str.charAt(i) == (isnot.charAt(x)))
            {
                inval = 1;
            }
	// Added on OCT 28 2009 by Vijaya for not to allow non keyboard characters
  	// start of change
		else  if (str.charCodeAt(i) < 32 || str.charCodeAt(i) > 126)
		{
			inval = 1;
		}

        }
    }
    return(inval);
}
/** 
  *  Function to check if the string contains any alpha numeric or not
  *  @param str the Numeric String to check 
  *  @return 1 if str contains alpha numeric 
  *  @return 0 if str contain only numbers
  */

function checkPhoneAndFax(str)
{
    var isnot = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*=|\~`?>.<,':;{[}]";  
    var inval = 0;
    var x;
    for (var i = 0; i < str.length; i++)
    {
        for (x = 0; x < isnot.length; x++)
        {
            if (str.charAt(i) == (isnot.charAt(x)))
            {
                inval = 1;
            }
        }
    }
    return(inval);
}


/** 
  *  Function to check the data validity 
  *  @param day   day of the date 
  *  @param month   month of the date 
  *  @param year  year of the date 
  *  @return 1 if it is invalid date
  *  @return 0 if it is valid date
  */

function validateDate(day, month, year)
{
    var arrMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    var err;
    var retVal = 0;
    if (day == "0" || month == "0" || year == "0")
	{
		return 1;
	}
	if ((day > 30) &&
        ((month == "APR") ||
         (month == "JUN") ||
         (month == "SEP") ||
         (month == "NOV")))
    {
        retVal = 1;
    }

    if (month == "FEB")
    {
        if (day >= 30)
            retVal = 1;
        else
        {
            flg = leapYearTest(year);
            if (flg)
            {
                if (day > 28)
                    retVal = 1;
            }
            else
            {
                if (day > 29)
                    retVal = 1;
            }
        }
    }

    return retVal;
}


/** 
  *  Function to check the leap year test
  *  @param year  year of the date 
  *  @return 1 if it is not leap year
  *  @return 0 if it is leap year 
  */

function leapYearTest(year)
{
    if (((year % 4 == 0) && (year % 100 != 0)) || year % 400 == 0)
    {
        return 0;
    }
    else
    {
        return 1;
    }
}


/** 
  *  Function to check the Email address Syntax
  *  @param mail  string containing the mail address
  *  @return 0 if it has valid E-mail Syntax
  *  @return 1 if it does not have valid E-mail Syntax
  */

function checkEmail(mail)
{
    var isnot = "! #$%^&*()+=|,\\~`?><:;{[}]\"\' ";  
    var inval = 0;
    var x;

        for (var i = 0; i < mail.length; i++)
        {
            for (x = 0; x < isnot.length; x++)
            {
                if (mail.charAt(i) == (isnot.charAt(x)))
                {
                    inval = 1;
                }
		// Added on OCT 28 2009 by Vijaya for not to allow non keyboard characters
  		// start of change
		else  if (mail.charCodeAt(i) < 32 || mail.charCodeAt(i) > 126)
		{
			inval = 1;
		}


            }
        }
    if(inval == 1)
		return(inval);
	 var alphabets="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	var result = 1;
    var email = mail;
    var theStr = new String(email)
    var index = theStr.indexOf("@");
	var indexLast =  theStr.lastIndexOf("@");
    var indexDot =  theStr.indexOf("..");
 var dotindex = theStr.indexOf(".");
	var indxComma = theStr.indexOf(",");
    var AtArr = theStr.split("@");
    var lastChar = theStr.charAt(theStr.length - 1);
    /*** If last Char is not an @ or . ****/
    if (lastChar != "@" && 
	    lastChar != "." && 
		indxComma == -1 && 
		index > 0 && dotindex > 0 &&
		index == indexLast && 
		indexDot == -1  ) 
    {
		
		var pindex = theStr.indexOf(".",index);
		if ((pindex > index + 1) && (theStr.length > pindex + 1))
		{
			if (AtArr.length != 2)
				result = 1;
			else
				 
			{ // Added by vijaya w.r.t to supportcentralcase 9520	
				for(x = 0; x < alphabets.length; x++)
				{        
				if (theStr.charAt(index - 1) == (alphabets.charAt(x)))
					{   
                   		 		result = 0; break;
					}
				
				}	
				
			}

		}
    }
   return result;
}



/**
  * Function to check that Common Name is in the proper format or not.
  * Names can contain only . / - _ and must begin with an Alphabet.
  */
function checkNameFormat(name)
{
    var isnot = "!@#$%^&*()+=|,\~`?><:;{[}]\"";  
    var inval = 0;
    var x;

        for (var i = 0; i < name.length; i++)
        {
            for (x = 0; x < isnot.length; x++)
            {
                if (name.charAt(i) == (isnot.charAt(x)))
                {
                    inval = 1;
                }
  	// Added on OCT 22 2009 by Vijaya for not to allow non keyboard characters
  	// start of change
		else  if (name.charCodeAt(i) < 32 || name.charCodeAt(i) > 126)
		{
			inval = 1;
		}
        // End of change		
            }
        }
     return(inval);
}

/*
  *   Function to check if the string contains non keyboard characters.
  *   @param name the String to check
  *   @return 1 if name conatins non keyboard characters
  *   @return 0 if name doen not contains non keyboard characters
  *   Added on OCT 22 2009 by Vijaya for not to allow non keyboard characters
  */
  function checkSpecialCharacters(name)
  	{ 	
  		var val = 0;
  		for (var i = 0; i < name.length; i++)
  		{
  		
  		if (name.charCodeAt(i) < 32 || name.charCodeAt(i) > 126)
  		 {
  			var val = 1;
  		 }
  		}
  		return(val);
  	}

 

function checkAddressFormat(name)
{
    var isnot = "!@#$%^*+=|\\~`?><:;{[}]\"";  
    var inval = 0;
    var x;

        for (var i = 0; i < name.length; i++)
        {
            for (x = 0; x < isnot.length; x++)
            {
                if (name.charAt(i) == (isnot.charAt(x)))
                {
                    inval = 1;
                }
		// Added on OCT 22 2009 by Vijaya for not to allow non keyboard characters
  	      // start of change
		else  if (name.charCodeAt(i) > 127)
		{
			inval = 1;
		}
           // End of change	
            }
        }
     return(inval);
}

function checkAlphaNumeric(str)
{
    var isnot = "!@#$%^&*()+=|\~`?><,:;{[}]-_\"";
    var inval = 0;
    var x;
    for (var i = 0; i < str.length; i++)
    {
        for (x = 0; x < isnot.length; x++)
        {
            if (str.charAt(i) == (isnot.charAt(x)))
            {
                inval = 1;
            }
        }
    }
    return(inval);
}




/**
  * Function to check that PAN Number is in the proper format or not.
  */

function checkPANNumber(str)
{
    //var isnotFirstFive="0123456789!@#$%^&*()+=|\~`?><,:;{[}]-_\"";  
    var isNotAlphabet = "abcdefghijklmnopqrstuvwxyz 0123456789!@#$%^&*()+=|\~`?><,:;{[}]-_\"";  
    var isNotNumber = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ !@#$%^&*()+=|\~`?><,:;{[}]-_\"";  
    var inval = 0;
    var x;
    var firstFive = str.substring(0,5);
    var secondFour = str.substring(5,9);
    var thirdOne = str.substring(9,10);
    if (str.length != 10)
    {
        inval = 1;
    }
    if (inval != 1)
    {
        for (var i = 0; i < firstFive.length; i++)
        {
            for (x = 0; x < isNotAlphabet.length; x++)
            {
                if (firstFive.charAt(i) == (isNotAlphabet.charAt(x)))
                {
                    inval = 1;
                    break;
                }
		// Added on OCT 27 2009 by Vijaya for not to allow non keyboard characters
		// start of code change
		else  if (firstFive.charCodeAt(i) < 32 || firstFive.charCodeAt(i) > 126)
		{
			inval = 1;
			break;
		}
		// End of code change
            }
        }
        if (inval != 1)
        {
            for (var i = 0; i < secondFour.length; i++)
            {
                for (x = 0; x < isNotNumber.length; x++)
                {
                    if (secondFour.charAt(i) == (isNotNumber.charAt(x)))
                    {
                        inval = 1;
                        break;
                    }
		     // Added on OCT 27 2009 by Vijaya for not to allow non keyboard characters
		      // Start of code change
			else  if (secondFour.charCodeAt(i) < 32 || secondFour.charCodeAt(i) > 126)
			{
				inval = 1;
				break;
			}
		    // End of code change
                }
            }
            if (inval != 1)
            {
                for (var i = 0; i < thirdOne.length; i++)
                {
                    for (x = 0; x < isNotAlphabet.length; x++)
                    {
                        if (thirdOne.charAt(i) == (isNotAlphabet.charAt(x)))
                        {
                            inval = 1;
                            break;
                        }
			// Added on OCT 27 2009 by Vijaya for not to allow non keyboard characters
  			// Start of code change
			else  if (thirdOne.charCodeAt(i) < 32 || thirdOne.charCodeAt(i) > 126)
				{
					inval = 1;
					break;
				}
			// End of code change
                    }
                }
            }
        }
    }
    return(inval);
}

/* 
	Function to check if the password is in secured or not.
	@param pwd - password to check
	@return 0 if password is secured
	@return 1 if unsecure
*/

function checkPassword(pwd)
{
	
  	pwd = trim(pwd);
	if(pwd.length < 8)
		return 1;
	if(pwd.indexOf(" ") > 0)
		return 1;
	return 0;	
	
}

function checkDnFormat(name)
{
    var isnot = ",!@$%^*()~?></\\\"";  
    var inval = 0;
    var x;

        for (var i = 0; i < name.length; i++)
        {
            for (x = 0; x < isnot.length; x++)
            {
                if (name.charAt(i) == (isnot.charAt(x)))
                {
                    inval = 1;
                }
            }
        }
     return(inval);
}

function checkOrgFormat(name)
{
    var isnot = ",!@$%^*~?></\\\"";  
    var inval = 0;
    var x;

        for (var i = 0; i < name.length; i++)
        {
            for (x = 0; x < isnot.length; x++)
            {
                if (name.charAt(i) == (isnot.charAt(x)))
                {
                    inval = 1;
                }
            }
        }
     return(inval);
}

/*
	Function is used to call any function which returns 0 or 1
	@param fnName - name of the funtion
	@param str - string to check for errors
	@param msg - variable to check if form alerady contains errors or not
	@param txt - the error message 
	@param sep - character which separates two error messages
	@param opt - if true validation is done on a optional field
	@return zero length string it str does not contains any errors
	@return txt if str validation is failed
 */


function validateField(fnName, str, msg, txt, sep, opt, id1)
{
	// if sep is undefined , is used as seperator 
	if(id1!=null)
		if(typeof(id1) != "undefined") id1.innerHTML = "";
	var imgMsg = "&nbsp;&nbsp;&nbsp;&nbsp;<img src='images/2.gif' valign='middle' border=0>";
	if(typeof(sep) == "undefined")
		sep=", ";
	
	if(typeof(opt) == "undefined")
		opt = false;

	if(opt == false)
	{
		if(fnName=="validateDate" && eval(fnName+"("+str+")") == 1) 
		{
			if(typeof(id1) != "undefined") id1.innerHTML = imgMsg;
			   return (msg.length==0)?txt:sep+txt;
		}
		else if(eval(fnName+"(str)") == 1 )
		{
			if(typeof(id1) != "undefined") id1.innerHTML = imgMsg;
			   return (msg.length==0)?txt:sep+txt;
		}
		else
		{
			return "";
		}
	}
	else if(opt == true)
	{
		if(stringIsEmpty(str) == 1  || str == "0,\"0\",0")
		{
			return "";
		}
		else
		{
			if(fnName=="validateDate" && eval(fnName+"("+str+")") == 1) 
			{
				if(typeof(id1) != "undefined") id1.innerHTML = imgMsg;
				return (msg.length==0)?txt:sep+txt;
			}
			else if(eval(fnName+"(str)") == 1)
			{
				if(typeof(id1) != "undefined") id1.innerHTML = imgMsg;
				return (msg.length==0)?txt:sep+txt;
			}
			else
			{
				return "";
			}
		}
	}
}

/*
   *	function which contains all error messages 
   *   Added one element "must not contain non keyboard characters. Note: Do not copy paste from Microsoft Word." to the array on OCT 22 09 by vijaya

*/

function messages(text,type)
{
	eMsgs=new Array("must have only alphabets, numbers, spaces, dots, - and '.",
                "must have only alphabets, spaces, dots and numbers.",
			    "must contain only numbers, - and ().",
			    "must contain only numbers.",
			    "must be a valid one.", 
			    ": fill all the details",
				"must contain a minimum of 8 characters with no spaces. It must contain atleast two special characters.",
				"entered should contain only alphabetical or numerical characters and please do not use any of these symbols\, ! @ $ % ^ * ( ) ~ ?> < / \"",
				"needs to be in the format of name@domain.com",
				"entered should contain only alphabetical or numerical characters and please do not use any of these symbols\, ! @ $ % ^ * ~ ? > < / \"",
				"must not contain non keyboard characters. Note: Do not copy paste from Microsoft Word.",
				"need to be in the format of AAAAA1111A. Alphabets should be in uppercase only.");
	return text+" "+eMsgs[type];
}

function sessionExpire()
{
		//Added by vijaya for source code disclosure to expire session and redirect to home page
		alert("Your session has expired.you are redirected to home page");
			location.href="../index.jsp";
		
}

function writeHeader()
{
	document.write("<table width='100%'><tr>");
	document.write("<td align='left' class='boldBlack' width='33%'>User Id: "+userid+"</td>");
	//document.write("<td align='center' class='boldBlack' width='33%'>User Type: "+userType+"</td>");
	document.write("<td align='right' class='boldBlack' width='33%'>RA Name: "+raName+"</td>");
	document.write("</tr></table>");
}

function getStr(str)
{
	if(str=="null")
		return "";
	else
		return str;
}

function getIndexFromList(lst,str)
{
	for(i=0;i<lst.options.length;i++)
		if(lst.options[i].value == str)
			break;
	return i;
}

function getDateStr(day, month, year)
{
	dayIndex   = day.selectedIndex;
	monthIndex = month.selectedIndex;
	yearIndex  = year.selectedIndex;
	tday = day.options[dayIndex].value;
	tmonth = month.options[monthIndex].value;
	tyear = year.options[yearIndex].value;
	dateStr = tday + tmonth + tyear;
	if(dateStr == "000")
		dateStr = "";
	return trim(dateStr);
}

function empty(val)
{
	if(val == "0")
		return "";
	else
		return val;
}

function popup(file,wdt,hgt)
{
	if(typeof(wdt)=="undefined")
		wdt = 300;
	if(typeof(hgt)=="undefined")
		hgt = 400;
	if(typeof(myWindow)=='object')
		if(!myWindow.closed)	
			myWindow.close();

	myWindow = window.open(file, "help", "fullscreen=no,toolbar=no,status=no,menubar=no,scrollbars=yes,resizable=no,directories=no,location=no,width="+wdt+",height="+hgt)
}

function postURL(str,fileName)
{
var splitParams = str.split("&");
var paramNames = new Array();
var paramValues = new Array();
for(i=0;i<splitParams.length;i++)
{
	var tmp = splitParams[i];
	var tmpSplt = tmp.split("=");
	paramNames[i] = tmpSplt[0];
	paramValues[i] = tmpSplt[1];
}

if(typeof(fileName) == 'undefined')
	document.write("<form name='sbmt' action='index.jsp' method='post'>");
else
	document.write("<form name='sbmt' action='"+fileName+"' method='post'>");
for(i=0;i<paramNames.length;i++)
{
	document.write("<input type='hidden' name='"+paramNames[i]+"' value='"+paramValues[i]+"'>");
}
document.write("</form>");
var obj = document.sbmt;
if(typeof(obj)=='undefined')
{
	var params="";
	for(i=0;i<paramNames.length;i++)
	{
		if(i==paramNames.length-1)
			params+=paramNames[i]+"="+paramValues[i];
		else
			params+=paramNames[i]+"="+paramValues[i]+"&";
		
	}

	if(typeof(fileName) == 'undefined')
		location.href="index.jsp?"+params;
	else
		location.href=fileName+"?"+params;
}	
else
	document.sbmt.submit();
}

function splitDn(str)
{
	var splitParams = str.split(",");
	//var Arr = new Array("CN","EmailAddress","O","OU","L","ST","C");
	var arr = new Array();
	arr["CN"] = "Common Name";
	arr["EmailAddress"] = "E-mail Address";
	arr["EMAILADDRESS"] = "E-mail Address";
	arr["O"] = "Organisation";
	arr["OU"] = "Organisation Unit";
	arr["L"] = "Locality/ City";
	arr["ST"] = "State";
	arr["C"] = "Country";
	arr["SERIALNUMBER"] = "PAN Serial Number";
	arr["serialNumber"] = "PAN Serial Number";
	arr["OID.2.5.4.5"] = "PAN Serial Number";
	
	for(i=0;i<splitParams.length;i++)
	{
		var tmp = splitParams[i];
		var tmpSplit = tmp.split("=");
		document.write('<tr><td width="30%" class="rowColour1">'+ arr[trim(tmpSplit[0])] +'</td>');
     document.write(' <td width="70%" class="rowColour1"><span class="boldBlack"><b>'+tmpSplit[1] +'</b></span></td>         </tr> '); 
	//	document.write(arr[trim(tmpSplit[0])] + " = " + tmpSplit[1] + "<br>");	
	}
}

function splitDnValue(str,name)
{
	var splitParams = str.split(",");
	//var Arr = new Array("CN","EmailAddress","O","OU","L","ST","C");
	var arr = new Array();
	arr["CN"] = "Common Name";
	arr["EmailAddress"] = "E-mail Address";
	 arr["EMAILADDRESS"] = "E-mail Address";
	arr["O"] = "Organisation";
	arr["OU"] = "Organisation Unit";
	arr["L"] = "Locality/ City";
	arr["ST"] = "State";
	arr["C"] = "Country";
	arr["SERIALNUMBER"] = "PAN Serial Number";
	
	for(i=0;i<splitParams.length;i++)
	{
		var tmp = splitParams[i];
		var tmpSplit = tmp.split("=");
		if(trim(tmpSplit[0])==name)
		{
			return tmpSplit[1];
		}
	}		
//document.write('<tr><td width="30%" class="rowColour1">'+ arr[trim(tmpSplit[0])] +'</td>');
     //document.write(' <td width="70%" class="rowColour1"><span class="boldBlack"><b>'+tmpSplit[1] +'</b></span></td>         </tr> '); 
	//	document.write(arr[trim(tmpSplit[0])] + " = " + tmpSplit[1] + "<br>");	
	
}


function certificateDetails(sNo, dn)
{
	document.write('<tr><td colspan="2" class="bodytest" align="center"> Your Digital Certificate Information       </td></tr>');
    splitDn(dn);          
     document.write('<tr><td width="30%" class="rowColour1">Serial Number</td>');
     document.write(' <td width="70%" class="rowColour1"><span class="boldBlack"><b>'+sNo +'</b></span></td>         </tr> ');       
}

function createLink(params, txt, classId, frmName)
{
  var str=params;
  var splitParams = str.split("&");
  var paramNames = new Array();
  var paramValues = new Array();
  
  for(i=0;i<splitParams.length;i++)
  {
     var tmp = splitParams[i];
     var tmpSplt = tmp.split("=");
     paramNames[i] = tmpSplt[0];
     paramValues[i] = tmpSplt[1];
  }

  temp="<form name='"+frmName+"' action='index.jsp' method='post'>";

  for(i=0;i<paramNames.length;i++)
  {
   temp+="<input type='hidden' name='"+paramNames[i]+"' value='"+paramValues[i]+"'>";
  }
  temp+="</form>";
  document.write(temp);
  document.write("<a href='javascript:document."+frmName+".submit()' class='"+classId+"'>"+txt+"</a>");
  
}


function createButtonLink(params, txt, frmName)
{
  var str=params;
  var splitParams = str.split("&");
  var paramNames = new Array();
  var paramValues = new Array();
  
  for(i=0;i<splitParams.length;i++)
  {
     var tmp = splitParams[i];
     var tmpSplt = tmp.split("=");
     paramNames[i] = tmpSplt[0];
     paramValues[i] = tmpSplt[1];
  }

  temp="<form name='"+frmName+"' action='index.jsp' method='post'>";

  for(i=0;i<paramNames.length;i++)
  {
   temp+="<input type='hidden' name='"+paramNames[i]+"' value='"+paramValues[i]+"'>";
  }
  temp+="<input type='button' value='"+txt+"' onClick='javascript:document."+frmName+".submit()'>"
  temp+="</form>";
  document.write(temp);
  
  
}


function createForm(params, frmName)
{
  var str=params;
  var splitParams = str.split("&");
  var paramNames = new Array();
  var paramValues = new Array();
  
  for(i=0;i<splitParams.length;i++)
  {
     var tmp = splitParams[i];
     var tmpSplt = tmp.split("=");
     paramNames[i] = tmpSplt[0];
     paramValues[i] = tmpSplt[1];
  }

  temp="<form name='"+frmName+"' action='index.jsp' method='post'>";

  for(i=0;i<paramNames.length;i++)
  {
   temp+="<input type='hidden' name='"+paramNames[i]+"' value='"+paramValues[i]+"'>";
  }
  temp+="</form>";
  document.write(temp);
//  document.write("<a href='javascript:document."+frmName+".submit()' class='"+classId+"'>"+txt+"</a>");
  
}


function createLink2(params, txt, frmName)
{
  var str=params;
  var splitParams = str.split("&");
  var paramNames = new Array();
  var paramValues = new Array();
  
  for(i=0;i<splitParams.length;i++)
  {
     var tmp = splitParams[i];
     var tmpSplt = tmp.split("=");
     paramNames[i] = tmpSplt[0];
     paramValues[i] = tmpSplt[1];
  }

  temp="<form name='"+frmName+"' action='index.jsp' method='post'>";

  for(i=0;i<paramNames.length;i++)
  {
   temp+="<input type='hidden' name='"+paramNames[i]+"' value='"+paramValues[i]+"'>";
  }
  temp+="</form>";
  document.write(temp);
  document.write("<a href='javascript:document."+frmName+".submit()'>"+txt+"</a>");
}

function errorDisplay(message)
{
	document.write('<img src="images/transparent.gif" width="2" height="10"><br>');
    document.write('<table width="771" border="0" cellspacing="0" cellpadding="0" >');
	document.write('<tr><td background="images/headerBack.gif" class="boldBlack" height="22">&nbsp;&nbsp;</td></tr>');
	document.write('<td class="celColourDarkGray">');
    document.write('<table width="100%" border="0" cellspacing="1" cellpadding="40" height="370">');
	document.write('<tr><td class="whiteBack" align="center" valign="top">'); 
	document.write('<table width="80%" border="0" cellspacing="1" cellpadding="0" align="center">');
    document.write('<tr><td class="celColourDarkGray">');
	document.write('<table width="100%" border="0" cellspacing="1" cellpadding="4">');
    document.write('<tr><td class="whiteBack" ><font size="+1">'+message+'</font></td>');
	document.write('<td class="active_in" width="6%"><a href="javascript:history.go(-1)" class="topLink">Back</a></td>');
    document.write('</tr></table></td></tr></table></td></tr></table></td></tr></table>');
}

/* Added by Nitin Upadhyay dated 20Apr2010
 * CR- New Work Flow for online forms
 * Start of change
 */

/* Online forms */
function onlineDataFun(typeUser)
{
  onlineAppFormName ="onlineSbmtApp";
  var onlineData_Text ="";
  onlineData_Text+=typeUser+";";
     for(j=0;j<document.forms[onlineAppFormName].length;j++)
       {
          elementName =document.forms[onlineAppFormName].elements[j].name;       
          if(document.forms[onlineAppFormName].elements[j].type=="select-one" || document.forms[onlineAppFormName].elements[j].type=="select-multiple")
            {
              ele = document.forms[onlineAppFormName].elements[j];
              index = ele.selectedIndex;
              sel_value= ele.options[index].value;
              if(elementName.indexOf("validDoc")>-1)
               {
                 var validDoc_value=document.forms[onlineAppFormName].elements[j+1].value;
                   if(validDoc_value.length > 0)
                    {
                     //Added by Nitin. To handle \' problem in onlineforms document checklist
                     validDoc_value=formatText(validDoc_value);
                     onlineData_Text+=sel_value+";";
                     onlineData_Text+=validDoc_value+";";
                    } 
                    else
                    {
                     onlineData_Text+=null+";";
                     onlineData_Text+=null+";";
                    }
                    j=j+2;
               }
              else
              {
               onlineData_Text+= sel_value;
               onlineData_Text+= ";";
              }
           }
          if(document.forms[onlineAppFormName].elements[j].type=="radio")
            {
              if (document.forms[onlineAppFormName].elements[j].checked)
               {
                 var gender_value = document.forms[onlineAppFormName].elements[j].value;
                 onlineData_Text+= gender_value;
                 onlineData_Text+=";";
               }
           }
                     
        if(document.forms[onlineAppFormName].elements[j].type=="text")
          {
           text_value=document.forms[onlineAppFormName].elements[j].value;
             if(text_value.length ==0)
              {
                 if(elementName.indexOf("offTel")>-1 || elementName.indexOf("resCountryCode")>-1 || elementName.indexOf("offFAX")>-1 || elementName.indexOf("appTel")>-1  )
                   {
                     onlineData_Text+= document.forms[onlineAppFormName].elements[j].value+"-"+document.forms[onlineAppFormName].elements[j+1].value+"-"+document.forms[onlineAppFormName].elements[j+2].value;
                     j=j+2;
                   }
                   else if(elementName.indexOf("offMob")>-1 || elementName.indexOf("resMob")>-1 || elementName.indexOf("appMob") > -1 )
                    {
                      onlineData_Text+= document.forms[onlineAppFormName].elements[j].value+"-"+document.forms[onlineAppFormName].elements[j+1].value;
                      j++;
                    }
                  else
                   {
                       onlineData_Text+= null;
                   }
               }
               else
                {
                  if(elementName.indexOf("offTel")>-1 || elementName.indexOf("resCountryCode")>-1 || elementName.indexOf("offFAX")>-1 || elementName.indexOf("appTel")>-1  )
                   {
                      onlineData_Text+= document.forms[onlineAppFormName].elements[j].value+"-"+document.forms[onlineAppFormName].elements[j+1].value+"-"+document.forms[onlineAppFormName].elements[j+2].value;
                      j=j+2;
                   }
                   else if(elementName.indexOf("offMob")>-1 || elementName.indexOf("resMob")>-1 || elementName.indexOf("appMob") > -1 )
                    {
                       onlineData_Text+= document.forms[onlineAppFormName].elements[j].value+"-"+document.forms[onlineAppFormName].elements[j+1].value;
                       j++;
                    }
                   else
                    {
                       text_value = formatText(text_value);
                       onlineData_Text+= text_value;
                    }
                }
                onlineData_Text+= ";";
          }
         if(document.forms[onlineAppFormName].elements[j].type=="textarea")
          { 
            textarea_value=document.forms[onlineAppFormName].elements[j].value;
             if(textarea_value.length ==0)
              {
                onlineData_Text+= null;
              }
             else
              {
             
               textarea_value = formatTextAreaText(textarea_value);
             
               onlineData_Text+= textarea_value;
             }
             onlineData_Text+= ";";

         }
    }

  document.forms[onlineAppFormName].onlineAppData.value=onlineData_Text; 
}

/* Online forms */
/*
function onlineFormData()
{
	str="No. of forms: "+ document.forms.length;
	strText="";
	i="onlineSbmtApp";
	strText+="with(document.forms[\'"+i+"\']){"
	for(j=0;j<document.forms[i].length;j++)
	{
		str+="\n"+document.forms[i].elements[j].type;
		if(document.forms[i].elements[j].type=="checkbox" || document.forms[i].elements[j].type=="radio")
		{
			str+="$"+document.forms[i].elements[j].checked
			strText+="elements["+j+"].disabled=true;";
			strText+="elements["+j+"].checked="+document.forms[i].elements[j].checked+";";
		}
		else if(document.forms[i].elements[j].type=="select-one" || document.forms[i].elements[j].type=="select-multiple")
		{
			strText+="elements["+j+"].disabled=true;";
			for(k=0;k<document.forms[i].elements[j].options.length;k++)
			{
				str+="$"+document.forms[i].elements[j].options[k].text;
				str+="$"+document.forms[i].elements[j].options[k].value;
				str+="$:"+document.forms[i].elements[j].options[k].selected;
				if(document.forms[i].elements[j].options[k].selected==true)
					strText+="elements["+j+"].options["+k+"].selected="+document.forms[i].elements[j].options[k].selected+";";
			}
		}
		else if(document.forms[i].elements[j].type=="button" || document.forms[i].elements[j].type=="submit")
		{
			str+="$"+document.forms[i].elements[j].name+":"+document.forms[i].elements[j].value;
			strText+="elements["+j+"].disabled=true;";
		}
		else if(document.forms[i].elements[j].type=="text")
		{
				str+="$"+document.forms[i].elements[j].name+":"+document.forms[i].elements[j].value;
			
				txt=document.forms[i].elements[j].value;
				txtN="";
				for(k=0;k<txt.length;k++)
				{
					if(txt.charAt(k)=="\\")
						txtN+="\\\\";
					else if(txt.charAt(k)=="\"")
						txtN+="\\\"";
					else if(txt.charAt(k)=="\'")
						txtN+="\\\'";
					else
						txtN+=txt.charAt(k);
				}
						
			strText+="elements["+j+"].readOnly=true;";
			strText+="elements["+j+"].value='"+txtN.toUpperCase()+"';";
		}
		else if(document.forms[i].elements[j].type=="textarea")
		{
			taText=document.forms[i].elements[j].value;
			taTextCR="";
			var splitParams = taText.split("\n");
			for(l=0;l<splitParams.length;l++)
			{
				txt=splitParams[l];
				txtN="";
				for(k=0;k<txt.length;k++)
				{
					if(txt.charAt(k)=="\\")
						txtN+="\\\\";
					else if(txt.charAt(k)=="\"")
						txtN+="\\\"";
					else if(txt.charAt(k)=="\'")
						txtN+="\\\'";
					else
						txtN+=txt.charAt(k);
				}
				if(l<splitParams.length-1)
				taTextCR+=txtN.substring(0,txtN.length-1).toUpperCase()+"\\n";				
				else
				taTextCR+=txtN.toUpperCase();	
		    }
			strText+="elements["+j+"].readOnly=true;";
			strText+="elements["+j+"].value='"+taTextCR+"';";
		}
		
	}
	strText+="}";
	document.forms[i].onlineAppData.value=strText;
}
*/
function formatText(txt)
  {                                
    var txtN="";
	for(k=0;k<txt.length;k++)
	 {
		if(txt.charAt(k)=="\\")
		txtN+="\\\\";
		else if(txt.charAt(k)=="\"")
		txtN+="\\\"";
		else if(txt.charAt(k)=="\'")
		txtN+="\\\'";
		else
		txtN+=txt.charAt(k);
	}
    // txtN=txtN.toUpperCase();
  return txtN;
 }

function populateOnlineFormsData(onlineData,email,state,country,city)
{
var onlineData_array=new Array();
var formName="onlineSbmtApp";
onlineData_array=onlineData.split(";");
var userType=onlineData_array[0];
onlineAppFormName="onlineSbmtApp";
var contactNo=new Array();
var contactMob= new Array();

           for(j=0, k=1;j<document.forms[onlineAppFormName].length;j++,k++)
	      {
                   var formElement=document.forms[onlineAppFormName];
                    if(document.forms[onlineAppFormName].elements[j].type=="select-one" || document.forms[onlineAppFormName].elements[j].type=="select-multiple")
                     {
                        nameElement=document.forms[onlineAppFormName].elements[j].name;
                         if(nameElement.indexOf("certCountry") > -1 && onlineData_array[k] == 'null' )
                        {
                          setSelectedIndexComboBox(formElement.elements[j],country);
                        }
                        else
                        {
                          setSelectedIndexComboBox(formElement.elements[j],onlineData_array[k]);
                        }
                     }
                    if(document.forms[onlineAppFormName].elements[j].type=="radio" )
		       {
                      setSelectedValueRadio(onlineData_array[k]);
                      j++;
                    }
                   if(document.forms[onlineAppFormName].elements[j].type=="text")
		      {
                      
                          elementName=document.forms[onlineAppFormName].elements[j].name;

                          if(elementName.indexOf("offTel")>-1 || elementName.indexOf("resCountryCode")>-1 || elementName.indexOf("offFAX")>-1 || elementName.indexOf("appTel")>-1  )
                            {

                              if(onlineData_array[k]!= 'null')
                              {
                               contactNo= onlineData_array[k].split("-");
                               if(typeof(contactNo[0]) != 'undefined')
                                {
                                  document.forms[onlineAppFormName].elements[j].value=contactNo[0];
                                }
                              if(typeof(contactNo[1]) != 'undefined')
                               {
                                document.forms[onlineAppFormName].elements[j+1].value=contactNo[1];
                               }
                              if(typeof(contactNo[2]) != 'undefined')
                               { 
                                document.forms[onlineAppFormName].elements[j+2].value=contactNo[2];
                               }
                              }
                              j=j+2;
                            }
                            else if(elementName.indexOf("offMob")>-1 || elementName.indexOf("resMob")>-1 || elementName.indexOf("appMob") > -1 )
                            {
                              contactMob = onlineData_array[k].split("-");
                              if(onlineData_array[k] != 'null')
                              {
                              if(typeof(contactMob[0]!= 'undefined'))
                              {
                               document.forms[onlineAppFormName].elements[j].value=contactMob[0];
                              }
                              if(typeof(contactMob[1]!= 'undefined'))
                              {
                               document.forms[onlineAppFormName].elements[j+1].value=contactMob[1];
                              }
                             }
                              j++;
                           }
                          else
                           {
                                eleName=document.forms[onlineAppFormName].elements[j].name
                                if (eleName.indexOf("email")>-1 && onlineData_array[k] == 'null')
                                {
                                 document.forms[onlineAppFormName].elements[j].value=email;
                                }
                                else if (eleName.indexOf("certState")>-1 && onlineData_array[k] == 'null')
                                {
                                 document.forms[onlineAppFormName].elements[j].value=state;
                                }
                                else if (eleName.indexOf("certCity")>-1 && onlineData_array[k] == 'null')
                                {
                                 document.forms[onlineAppFormName].elements[j].value=city;
                                }
                            else
                             {
                                if(onlineData_array[k] != 'null')
                                {
                                document.forms[onlineAppFormName].elements[j].value=onlineData_array[k];
                                }
                             } 

                           }
                   
              }
                 if(document.forms[onlineAppFormName].elements[j].type=="textarea")
		    {
                     if(onlineData_array[k] != 'null')
                     {
                     document.forms[onlineAppFormName].elements[j].value=onlineData_array[k];
                     }
                 }
                 
                   if(document.forms[onlineAppFormName].elements[j].type=="checkbox")
                   { 

                      if(onlineData_array[k] != 'null' && onlineData_array[k+1] != 'null')
                      {
                       setValidDoc(document.forms[onlineAppFormName].elements[j].name,onlineData_array[k],onlineData_array[k+1]);
                      }
                       k++;
                       j=j+2;
                      
                   }
                 
        }


}


function setSelectedValueCheckBox(formName,elementName,selectedValue)
{
     for(var i=0;i<document.getElementById(elementName).length;i++)
       { 
           if(document.getElementById(elementName).options[i].value==selectedValue)
           {
            document.getElementById(elementName).checked=i;
            }
       }

}

function setSelectedIndexComboBox(elementName,selectdValue)
{
     
     for(var i=0;i<elementName.length;i++)
       { 
         if(elementName.options[i].value==selectdValue)
          {
            elementName.selectedIndex=i;
           
           }
       }

}

function setSelectedValueRadio(selectdValue)
{
  var radioSelection=document.onlineSbmtApp.genderRadGrpM;
     for(var i=0;i<document.onlineSbmtApp["genderRadGrpM"].length;i++)
       { 
         if(radioSelection[i].value==selectdValue)
           {
             radioSelection[i].checked=true;
           }
       }

}
function setValidDoc(validDocName,select_val,text_val)
{
   for(var i=0;document.onlineSbmtApp.elements.length;i++)
	{
          if(document.onlineSbmtApp.elements[i].type=="checkbox" && document.onlineSbmtApp.elements[i].name==validDocName)
            {  
              document.onlineSbmtApp.elements[i].checked=true;
                if(document.onlineSbmtApp.elements[i+1].type=="select-one")
		       {
			   var validDocA1Select_value=select_val;
                       for(var j=0;j<document.onlineSbmtApp.elements[i+1].length;j++)
		            {
                          if(document.onlineSbmtApp.elements[i+1].options[j].value==validDocA1Select_value)
		                {
                             document.onlineSbmtApp.elements[i+1].selectedIndex=j; 
                             }
                         }
                    } 
                     if(document.onlineSbmtApp.elements[i+2].type=="text")
                       {
                         var validDocA1Text_value=text_val;
                         document.onlineSbmtApp.elements[i+2].value=validDocA1Text_value;
                       }  
	              
                    break;
	         }  
                
         }

}

function formatTextAreaText(textArea_value)
{
       taText=textArea_value;
       var taTextCR="";
       var splitParams = taText.split("\n");
	  for(l=0;l<splitParams.length;l++)
	    {
	      txt=splitParams[l];
		txtN="";
		 for(k=0;k<txt.length;k++)
		  {
			if(txt.charAt(k)=="\\")
			txtN+="\\\\";
			else if(txt.charAt(k)=="\"")
			txtN+="\\\"";
			else if(txt.charAt(k)=="\'")
			txtN+="\\\'";
			else
			txtN+=txt.charAt(k);
		  }
	        if(l<splitParams.length-1)
		  taTextCR+=txtN.substring(0,txtN.length-1)+"\\n";				
		  else
		 taTextCR+=txtN;	

           }
//    taTextCR = taTextCR.toUpperCase();
  return taTextCR;
         
}

function setOFDisable()
{
for(var i=0;i<document.onlineSbmtApp.elements.length;i++)    
  {
         if(document.onlineSbmtApp.elements[i].type == "text" || document.onlineSbmtApp.elements[i].type =="textarea"  )
         {
            document.onlineSbmtApp.elements[i].readOnly=true;
         }
         else if(document.onlineSbmtApp.elements[i].type=="select-one" || document.onlineSbmtApp.elements[i].type=="select-multiple")
         {
            document.onlineSbmtApp.elements[i].disabled=true;
         }
          else if(document.onlineSbmtApp.elements[i].type=="checkbox" || document.onlineSbmtApp.elements[i].type=="radio")
         {
           document.onlineSbmtApp.elements[i].disabled=true;

         }
    }
}

/*Modified by Vimala.CR-Removal of voterid from onlineforms.*/
/*Highlighting the fields which differ from old online data and new form.*/
function setOFDisable1(onlineData,usertype,reqtype)
{
	
	Count=0;
	var onlineData_array=new Array();
	onlineData_array=onlineData.split(";");
	var formName="onlineSbmtApp";
	i="onlineSbmtApp";
	for(j=0, k=1;j<document.forms[i].length;j++,k++)
        {
	   var formElement=document.forms[i];
	    if(document.forms[i].elements[j].type=="select-one" || document.forms[i].elements[j].type=="select-multiple")
	     {
		document.forms[i].elements[j].disabled=true;
	     }
	    if(document.forms[i].elements[j].type=="radio" )
	       {
	      document.forms[i].elements[j].disabled=true;
	      j++;
	    }
	   if(document.forms[i].elements[j].type=="text")
	      {

		  elementName=document.forms[i].elements[j].name;

		  if(elementName.indexOf("offTel")>-1 || elementName.indexOf("resCountryCode")>-1 || elementName.indexOf("offFAX")>-1 || elementName.indexOf("appTel")>-1  )
		    {
		       document.forms[i].elements[j].readonly=true;
		       j++;
		       j++;
		    }
		    else if(elementName.indexOf("offMob")>-1 || elementName.indexOf("resMob")>-1 || elementName.indexOf("appMob") > -1 )
		    {
		      document.forms[i].elements[j].readonly=true;
		      j++;
		    }
		 document.forms[i].elements[j].readonly=true;

	       }


	   if(document.forms[i].elements[j].type=="checkbox")
	   { 


	      if(document.forms[i].elements[j+1].value!=onlineData_array[k] && onlineData_array[k+1] != 'null')
	      {
			if(usertype=='user'&&Count==0)
			{
				 if(reqtype=='generation')
				{
				//alert("Form has been modified and this request cannot be processed.Please raise a fresh request.");
				}
				else 
				{
				alert("The checklist has been modified.Please re-submit the supporting documents.");
				}
				Count=1;


			}
			else if(usertype='admin'&&Count==0)
			{
				if(reqtype=='generation')
				{	
				//alert("Form has been modified and this request cannot be processed.Please reject the request and ask the subscriber to generate a fresh request.");
				}
				else
				{
				alert("Documents in checklist are modified.Please re-verify the documents.");
				}
				Count=1;
			 }

	       document.forms[i].elements[j+2].style.border="medium solid black";
	      }
	       document.forms[i].elements[j].disabled=true;
	       document.forms[i].elements[j+1].disabled=true;
	       document.forms[i].elements[j+2].readonly=true;
	       k++;
	       j++;
	       j++;

	   }
		                 
        }
        setOFDisable();
}


/*Added by Vimala.CR-Removal of voterid from onlineforms*/
/*Making fields editable in case there is any mismatch in old online data and new form*/
function setEditable(onlineData_array)
{
	
	var formName="onlineSbmtApp";
	flag=0;
	i="onlineSbmtApp";
	for(j=0, k=1;j<document.forms[i].length;j++,k++)
	      {
		   var formElement=document.forms[i];
		   
		    if(document.forms[i].elements[j].type=="radio" )
		       {
		      
		      j++;
		    }
		   if(document.forms[i].elements[j].type=="text")
		      {

			  elementName=document.forms[i].elements[j].name;

			  if(elementName.indexOf("offTel")>-1 || elementName.indexOf("resCountryCode")>-1 || elementName.indexOf("offFAX")>-1 || elementName.indexOf("appTel")>-1  )
			    {

			       j++;
			       j++;
			    }
			    else if(elementName.indexOf("offMob")>-1 || elementName.indexOf("resMob")>-1 || elementName.indexOf("appMob") > -1 )
			    {

			      j++;
			   }


	      }
	                 
	                 
	   if(document.forms[i].elements[j].type=="checkbox")
	   { 

	      if(document.forms[i].elements[j+1].value!=onlineData_array[k] && onlineData_array[k+1] != 'null')
	      {
	       
	       if(flag==0)
	       {
	       alert("As per TCS-CA CPS, voters ID card is no longer accepted as valid ID Proof. Please select appropriate ID proof from the checklist and re-submit the document.");
	       flag=1;
	       }
	       document.forms[i].elements[j+2].value="";
	       document.forms[i].elements[j].disabled=false;
	       document.forms[i].elements[j].checked=false;
	       document.forms[i].elements[j+1].disabled=false;
	       document.forms[i].elements[j+2].readonly=false;
	      }

	       k++;
	       j++;
	       j++;
	   }
	                 
        }
}
function setOnlineFormDisable(onlineDataRenewal)
{        
   var  onlineData = new Array();
   onlineData = onlineDataRenewal.split(";");
   var typeuser=onlineData[0];
   
   
   for(var i=0;i<document.onlineSbmtApp.elements.length;i++)    
    {
        
        if(document.onlineSbmtApp.elements[i].type == "text" || document.onlineSbmtApp.elements[i].type =="textarea"  )
         {
            document.onlineSbmtApp.elements[i].readOnly=true;
            
         }
         else if(document.onlineSbmtApp.elements[i].type=="select-one" || document.onlineSbmtApp.elements[i].type=="select-multiple")
         {
            document.onlineSbmtApp.elements[i].disabled=true;
            
           
         }
         else if(document.onlineSbmtApp.elements[i].type=="checkbox" || document.onlineSbmtApp.elements[i].type=="radio")
         {
          
           document.onlineSbmtApp.elements[i].disabled=true;
            if(typeuser != 'Government' &&  onlineData[2] == 'null')
            {
                  
		  if(document.onlineSbmtApp.elements[i].name=="genderRadGrpM")
                {
                document.onlineSbmtApp.elements[i].disabled=false;
                }
 
            }
            else if(document.onlineSbmtApp.elements[i].value=="")
	    		    {

	    		     document.onlineSbmtApp.elements[i].disabled=false;
                     }
           

       }
  }
  //Added by Vimala.CR-Removal of voter id from onlineforms.
  setEditable(onlineData);
}
/* new online form work flow changes ends */
initialValuesArr=new Array();
function initialValues()
{
	formName="onlineSbmtApp";
	frmObj=document.forms[formName];
	for(i=0;i<frmObj.length;i++)
	{
		name=frmObj.elements[i].name;
		if(name.indexOf("validDoc")>-1)
		{
			for(j=0;j<frmObj.elements[name].length;j++)
			{
				if(frmObj.elements[name][j].type=='text')
				{
					if(frmObj.elements[name][j].value.length==0) continue;
					temp=name+j;
					initialValuesArr[temp]=frmObj.elements[name][j].value;	
				}
			}
		}
		else if(frmObj.elements[i].type=="text")
		{
			if(frmObj.elements[i].value.length==0) continue;
			temp=i+"a";
			initialValuesArr[temp]=frmObj.elements[i].value;
		}
		
	}
}

function removeSpacesInTextFields(formName)
{
	frmObj=document.forms[formName];
	for(i=0;i<frmObj.length;i++)
	{
		if(frmObj.elements[i].type=='text' && frmObj.elements[i].value.length!=0)
			frmObj.elements[i].value=removeSpaces(frmObj.elements[i].value);
		if(frmObj.elements[i].type=='textarea')
			frmObj.elements[i].value=removeSpaces(frmObj.elements[i].value);
	}
}

function validateForm(validDocMsg)
{
	formName="onlineSbmtApp";
	removeSpacesInTextFields(formName)
	frmObj=document.forms[formName];
	msg = "";
	ignoreArray=new Array();
	ignoreArrayIndex=0;
	for(i=0;i<frmObj.length;i++)
	{
		name=frmObj.elements[i].name;
		ignore=false;
		for(h=0;h<ignoreArray.length;h++)
		{
			if(name==ignoreArray[h])
			{
				ignore=true;
				break;
			}
		}
		
		if(ignore==true) continue;	
		if(name.charAt(frmObj.elements[i].name.length-1)=='M')
		{
			
			if(frmObj.elements[i].type=="radio")
			{
			
				checked=false;
				for(j=0;j<frmObj.elements[name].length;j++)
				{
					
					if(frmObj.elements[name][j].checked==true)
					{
						checked=true;
						break;
					}
				}
				if(checked==false)
				{
					msg+=validateField("stringIsEmpty", "", msg, frmObj.elements[i].alt);		
					ignoreArray[ignoreArrayIndex++]=name;
				}
			}
			
			fieldMsg="empty";
			
			if(typeof(frmObj.elements[i].alt)=='undefined')
			{
				fieldMsg=frmObj.elements[i].id;
			}
			else
			{
				fieldMsg=frmObj.elements[i].alt;
			}
			
			if(frmObj.elements[i].value==initialValuesArr[i+"a"])
				msg+=validateField("stringIsEmpty", "", msg, fieldMsg);		
			else
				msg+=validateField("stringIsEmpty", frmObj.elements[i].value, msg, fieldMsg);		
		}		
		if(name.indexOf("validDoc")>-1)
		{
		
			validateDocCBObj="";
			for(j=0;j<frmObj.elements[name].length;j++)
			{
				if(frmObj.elements[name][j].type=='checkbox')
				{
					validateDocCBObj=frmObj.elements[name][j];
					ignoreArray[ignoreArrayIndex++]=name;
					continue;
				}
			}
				
			if(validateDocCBObj.checked==true)
			{
				for(j=0;j<frmObj.elements[name].length;j++)
				{
					if(frmObj.elements[name][j].type=='text')
					{
						if(frmObj.elements[name][j].value==initialValuesArr[name+j])
							msg+=validateField("stringIsEmpty", "", msg, frmObj.elements[name][j].alt);		
						else
							msg+=validateField("stringIsEmpty", frmObj.elements[name][j].value, msg, frmObj.elements[name][j].alt);		

					}
				}
			}
		}
	}
	
	if(msg.length>0)
		msg+=" - mandatory fields";
	
	validDocArr=new Array();
	
	for(i=0;i<frmObj.length;i++)
	{	name=frmObj.elements[i].name;
		if(name.indexOf("validDoc")>-1)
		{
			if(frmObj.elements[i].type=='checkbox')
			{
				if(typeof(validDocArr[name.charAt(8)])=='undefined')
					validDocArr[name.charAt(8)]=false;
				if(frmObj.elements[i].checked==true)
					validDocArr[name.charAt(8)]=true;
			}
		}
	}
	var x;
    	var selected;
	for(x in validDocArr)
	{
		selected=true;
		if(validDocArr[x]==false)
		{
			selected=false;
			break;
		}
	}
	
	if(selected == false)
	{
		msg+="\n"+validDocMsg;
	}
	
	for(i=0;i<frmObj.length;i++)
	{
		if(frmObj.elements[i].type=='textarea')
		{
			taText=frmObj.elements[i].value;
			if(taText.charAt(taText.length-1)=='\n')
				taText=taText.substr(0,taText.length-1);
			var splitParams = taText.split("\n");
			if(splitParams.length>10)
				msg+="\n"+frmObj.elements[i].alt+" -contains more than 10 lines";
			else
			{
				sixty=true;
				for(l=0;l<splitParams.length;l++)
				{
					txt=splitParams[l];
					if(txt.length>60)
					{
						sixty=false;
						break;
					}
				}
				if(sixty==false)
					msg+="\n"+frmObj.elements[i].alt+" -one or more lines contains more than 60 characters";
			}
		}
	}
		

	return msg;
}

function onlineAppDataCorrection(text)
{
	taText=text
	taTextCR="";
	var splitParams = taText.split("\n");
	for(l=0;l<splitParams.length;l++)
	{
		txt=splitParams[l];
		if(l<splitParams.length-1)
		taTextCR+=txt+"\\n";
		else
		taTextCR+=txt;				
    }
    return taTextCR;	
}

function validDocCheckBox(checkbox)
{
	formName="onlineSbmtApp";
	frmObj=document.forms[formName];
	if(checkbox.checked==false)
	{	
		name=checkbox.name;
		ele=frmObj.elements[name];
		for(i=1;i<ele.length;i++)
		{
			if(ele[i].type=="text"){
			ele[i].value="";
			ele[i].readOnly=true;}
		}
	}
	else
	{
		name=checkbox.name;
		ele=frmObj.elements[name];
		for(i=1;i<ele.length;i++)
		{
			if(ele[i].type=="text"){
			ele[i].value="";
			ele[i].readOnly=false;}
		}	
	}
}


//vimala
function validateForm1(validDocMsg)
{
	
	formName="onlineSbmtApp";
	//removeSpacesInTextFields(formName)
	frmObj=document.forms[formName];
	msg = "";
	ignoreArray=new Array();
	ignoreArrayIndex=0;
	for(i=0;i<frmObj.length;i++)
	{
		name=frmObj.elements[i].name;
		ignore=false;
		for(h=0;h<ignoreArray.length;h++)
		{
			if(name==ignoreArray[h])
			{
				ignore=true;
				break;
			}
		}
		
		if(ignore==true) continue;	
		/*if(name.charAt(frmObj.elements[i].name.length-1)=='M')
		{
			
			if(frmObj.elements[i].type=="radio")
			{
			
				checked=false;
				for(j=0;j<frmObj.elements[name].length;j++)
				{
					
					if(frmObj.elements[name][j].checked==true)
					{
						checked=true;
						break;
					}
				}
				if(checked==false)
				{
					msg+=validateField("stringIsEmpty", "", msg, frmObj.elements[i].alt);		
					ignoreArray[ignoreArrayIndex++]=name;
				}
			}
			
			fieldMsg="empty";
			
			if(typeof(frmObj.elements[i].alt)=='undefined')
			{
				fieldMsg=frmObj.elements[i].id;
			}
			else
			{
				fieldMsg=frmObj.elements[i].alt;
			}
			
			if(frmObj.elements[i].value==initialValuesArr[i+"a"])
				msg+=validateField("stringIsEmpty", "", msg, fieldMsg);		
			else
				msg+=validateField("stringIsEmpty", frmObj.elements[i].value, msg, fieldMsg);		
		}*/		
		if(name.indexOf("validDoc")>-1)
		{
		
			validateDocCBObj="";
			for(j=0;j<frmObj.elements[name].length;j++)
			{
				if(frmObj.elements[name][j].type=='checkbox')
				{
					validateDocCBObj=frmObj.elements[name][j];
					ignoreArray[ignoreArrayIndex++]=name;
					continue;
				}
			}
				
			if(validateDocCBObj.checked==true)
			{
				for(j=0;j<frmObj.elements[name].length;j++)
				{
					if(frmObj.elements[name][j].type=='text')
					{
						if(frmObj.elements[name][j].value==initialValuesArr[name+j])
							msg+=validateField("stringIsEmpty", "", msg, frmObj.elements[name][j].alt);		
						else
							msg+=validateField("stringIsEmpty", frmObj.elements[name][j].value, msg, frmObj.elements[name][j].alt);		

					}
				}
			}
		}
	}
	
	if(msg.length>0)
		msg+=" - mandatory fields";
	
	validDocArr=new Array();
	
	for(i=0;i<frmObj.length;i++)
	{	name=frmObj.elements[i].name;
		if(name.indexOf("validDoc")>-1)
		{
			if(frmObj.elements[i].type=='checkbox')
			{
				if(typeof(validDocArr[name.charAt(8)])=='undefined')
					validDocArr[name.charAt(8)]=false;
				if(frmObj.elements[i].checked==true)
					validDocArr[name.charAt(8)]=true;
			}
		}
	}
	var x;
    	var selected;
	for(x in validDocArr)
	{
		selected=true;
		if(validDocArr[x]==false)
		{
			selected=false;
			break;
		}
	}
	
	if(selected == false)
	{
		msg+="\n"+validDocMsg;
	}
	
	/*for(i=0;i<frmObj.length;i++)
	{
		if(frmObj.elements[i].type=='textarea')
		{
			taText=frmObj.elements[i].value;
			if(taText.charAt(taText.length-1)=='\n')
				taText=taText.substr(0,taText.length-1);
			var splitParams = taText.split("\n");
			if(splitParams.length>10)
				msg+="\n"+frmObj.elements[i].alt+" -contains more than 10 lines";
			else
			{
				sixty=true;
				for(l=0;l<splitParams.length;l++)
				{
					txt=splitParams[l];
					if(txt.length>60)
					{
						sixty=false;
						break;
					}
				}
				if(sixty==false)
					msg+="\n"+frmObj.elements[i].alt+" -one or more lines contains more than 60 characters";
			}
		}
	}*/
		

	return msg;
}

/* Begin of SHA 256 implementation*/

/*
* A JavaScript implementation of the SHA256 hash function.
*
* FILE:	sha256.js
* VERSION:	0.8
* AUTHOR:	Christoph Bichlmeier <informatik@zombiearena.de>
*
* NOTE: This version is not tested thoroughly!
*
* Copyright (c) 2003, Christoph Bichlmeier
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
*    notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
*    notice, this list of conditions and the following disclaimer in the
*    documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of contributors
*    may be used to endorse or promote products derived from this software
*    without specific prior written permission.
*
* ======================================================================
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

/* SHA256 logical functions */
function rotateRight(n,x) {
	return ((x >>> n) | (x << (32 - n)));
}
function choice(x,y,z) {
	return ((x & y) ^ (~x & z));
}
function majority(x,y,z) {
	return ((x & y) ^ (x & z) ^ (y & z));
}
function sha256_Sigma0(x) {
	return (rotateRight(2, x) ^ rotateRight(13, x) ^ rotateRight(22, x));
}
function sha256_Sigma1(x) {
	return (rotateRight(6, x) ^ rotateRight(11, x) ^ rotateRight(25, x));
}
function sha256_sigma0(x) {
	return (rotateRight(7, x) ^ rotateRight(18, x) ^ (x >>> 3));
}
function sha256_sigma1(x) {
	return (rotateRight(17, x) ^ rotateRight(19, x) ^ (x >>> 10));
}
function sha256_expand(W, j) {
	return (W[j&0x0f] += sha256_sigma1(W[(j+14)&0x0f]) + W[(j+9)&0x0f] + 
sha256_sigma0(W[(j+1)&0x0f]));
}

/* Hash constant words K: */
var K256 = new Array(
	0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
	0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
	0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
	0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
	0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
	0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
	0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
	0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
	0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
	0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
	0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
	0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
	0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
	0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
	0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
	0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
);

/* global arrays */
var ihash, count, buffer;
var sha256_hex_digits = "0123456789abcdef";

/* Add 32-bit integers with 16-bit operations (bug in some JS-interpreters: 
overflow) */
function safe_add(x, y)
{
	var lsw = (x & 0xffff) + (y & 0xffff);
	var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
	return (msw << 16) | (lsw & 0xffff);
}

/* Initialise the SHA256 computation */
function sha256_init() {
	ihash = new Array(8);
	count = new Array(2);
	buffer = new Array(64);
	count[0] = count[1] = 0;
	ihash[0] = 0x6a09e667;
	ihash[1] = 0xbb67ae85;
	ihash[2] = 0x3c6ef372;
	ihash[3] = 0xa54ff53a;
	ihash[4] = 0x510e527f;
	ihash[5] = 0x9b05688c;
	ihash[6] = 0x1f83d9ab;
	ihash[7] = 0x5be0cd19;
}

/* Transform a 512-bit message block */
function sha256_transform() {
	var a, b, c, d, e, f, g, h, T1, T2;
	var W = new Array(16);

	/* Initialize registers with the previous intermediate value */
	a = ihash[0];
	b = ihash[1];
	c = ihash[2];
	d = ihash[3];
	e = ihash[4];
	f = ihash[5];
	g = ihash[6];
	h = ihash[7];

        /* make 32-bit words */
	for(var i=0; i<16; i++)
		W[i] = ((buffer[(i<<2)+3]) | (buffer[(i<<2)+2] << 8) | (buffer[(i<<2)+1] 
<< 16) | (buffer[i<<2] << 24));

        for(var j=0; j<64; j++) {
		T1 = h + sha256_Sigma1(e) + choice(e, f, g) + K256[j];
		if(j < 16) T1 += W[j];
		else T1 += sha256_expand(W, j);
		T2 = sha256_Sigma0(a) + majority(a, b, c);
		h = g;
		g = f;
		f = e;
		e = safe_add(d, T1);
		d = c;
		c = b;
		b = a;
		a = safe_add(T1, T2);
        }

	/* Compute the current intermediate hash value */
	ihash[0] += a;
	ihash[1] += b;
	ihash[2] += c;
	ihash[3] += d;
	ihash[4] += e;
	ihash[5] += f;
	ihash[6] += g;
	ihash[7] += h;
}

/* Read the next chunk of data and update the SHA256 computation */
function sha256_update(data, inputLen) {
	var i, index, curpos = 0;
	/* Compute number of bytes mod 64 */
	index = ((count[0] >> 3) & 0x3f);
        var remainder = (inputLen & 0x3f);

	/* Update number of bits */
	if ((count[0] += (inputLen << 3)) < (inputLen << 3)) count[1]++;
	count[1] += (inputLen >> 29);

	/* Transform as many times as possible */
	for(i=0; i+63<inputLen; i+=64) {
                for(var j=index; j<64; j++)
			buffer[j] = data.charCodeAt(curpos++);
		sha256_transform();
		index = 0;
	}

	/* Buffer remaining input */
	for(var j=0; j<remainder; j++)
		buffer[j] = data.charCodeAt(curpos++);
}

/* Finish the computation by operations such as padding */
function sha256_final() {
	var index = ((count[0] >> 3) & 0x3f);
        buffer[index++] = 0x80;
        if(index <= 56) {
		for(var i=index; i<56; i++)
			buffer[i] = 0;
        } else {
		for(var i=index; i<64; i++)
			buffer[i] = 0;
                sha256_transform();
                for(var i=0; i<56; i++)
			buffer[i] = 0;
	}
        buffer[56] = (count[1] >>> 24) & 0xff;
        buffer[57] = (count[1] >>> 16) & 0xff;
        buffer[58] = (count[1] >>> 8) & 0xff;
        buffer[59] = count[1] & 0xff;
        buffer[60] = (count[0] >>> 24) & 0xff;
        buffer[61] = (count[0] >>> 16) & 0xff;
        buffer[62] = (count[0] >>> 8) & 0xff;
        buffer[63] = count[0] & 0xff;
        sha256_transform();
}

/* Split the internal hash values into an array of bytes */
function sha256_encode_bytes() {
        var j=0;
        var output = new Array(32);
	for(var i=0; i<8; i++) {
		output[j++] = ((ihash[i] >>> 24) & 0xff);
		output[j++] = ((ihash[i] >>> 16) & 0xff);
		output[j++] = ((ihash[i] >>> 8) & 0xff);
		output[j++] = (ihash[i] & 0xff);
	}
	return output;
}

/* Get the internal hash as a hex string */
function sha256_encode_hex() {
	var output = new String();
	for(var i=0; i<8; i++) {
		for(var j=28; j>=0; j-=4)
			output += sha256_hex_digits.charAt((ihash[i] >>> j) & 0x0f);
	}
	return output;
}

/* Main function: returns a hex string representing the SHA256 value of the 
given data */
function sha256(data) {
	sha256_init();
	sha256_update(data, data.length);
	sha256_final();
        return sha256_encode_hex();
}

/* test if the JS-interpreter is working properly */
function sha256_self_test()
{
	return sha256_digest("message digest") == 
"f7846f55cf23e14eebeab5b4e1550cad5b509e3348fbc4efa3a1413d393cb650";
}


/* End of SHA 256 implementation*/