var sessionCookie='';
//For Selecting/ deselecting check boxed
	function selectDeselect(field, isCheck) {
		var boxes = document.getElementsByName(field);
		var boxes_checked = anyChecked();
	
		if(isCheck){
			if(document.getElementsByName(isCheck)[0].checked) setChecks(true);
			else setChecks(false);			
		}else{
			if(!boxes_checked) setChecks(true);
			else setChecks(false);
		}
	
		function setChecks( setting ) {
			for( var i=0; i < boxes.length; i++ ) {
				boxes[ i ].checked = setting;
			}
		}

		function anyChecked() {
			for( var i=0; i < boxes.length; i++ ) {
				if( boxes[i].checked == true) {
					return (true);
				} 
			}
			return (false);
		}
	}
	//To check wheather user have selected box or not
	function anySelected(elem) {
		for( var i=0; i < elem.length; i++ ) {
			if( elem[i].selected== true) {
				return (true);
			} 
		}
		return (false);
	}
	//To check wheather user have selected box or not
	function anyChecked(boxes) {
		for( var i=0; i < boxes.length; i++ ) {
			if( boxes[i].checked == true) {
				return (true);
			} 
		}
		return (false);
	}
	// for display error in on box with br at trail
	function messageString(msgArray)
	{
		var msg='';
		for( var i=0; i < msgArray.length; i++ ) {
			if( i== 0) {
				msg+=(i+1)+") "+msgArray[i];
			}else
			{
				msg+="<br />"+(i+1)+") "+msgArray[i];
			}
		}
		return msg;
	}

	//For checking Null values
	function isNull(aStr)
	{
		var index;
        if(!aStr) return true;
		for (index=0; index < aStr.length; index++)
			if (aStr.charAt(index) != ' ')
				return false;
		return true;
	}
	
	//For checking invalid E-Mail address

	function isEmail(aStr){
		var reEmail=/^[0-9a-zA-Z_\.-]+\@[0-9a-zA-Z_\.-]+\.[0-9a-zA-Z_\.-]+$/;
		if(!reEmail.test(aStr)){
			return false;
		}
		return true;
	}
	
	//Removing the newline character
	function countChars(str){
		var reg = new RegExp("[\f\n\r\v]*","g");
		str = str.replace(reg,"");
		return str.length;   
	}
	
 var valid_extensions = /(.avi|.flv)$/i;  
 function CheckExtension(fld)  
 {  
     if(fld.value) {  
         if (valid_extensions.test(fld.value)){  
             return true;  
         } else {  
             return false;  
         }  
     } else {  
         return true;  
     }  
 }  
	

	//Check Numeric Value
	function IsValidNumericValue(strVal)
	{
		nNoOfArguments = IsValidNumericValue.arguments.length;
		//if any of the three parameter is not supplied
		if(nNoOfArguments < 1)
		{
			return false;
		}	

		//valid characters a supplied string can have
		var sValidChars = "0123456789";
		strVal = new String(strVal);	//convert the value to a string object
		var bReturn = true
		var i = new Number(0);

		//if number is 0
		if(0 == parseInt(strVal,10))
			return true;

		//if first character is 0
		if(0 == strVal.charAt(0))
			return false;

		while ((bReturn) && (i < strVal.length))
		{
			bReturn = (sValidChars.indexOf(strVal.charAt(i)) >= 0)
			i++
		}
		return (bReturn);
	}

	//check array value exists
	function has(myArray, value) {

			

		for (var i = 0; i < myArray.length; i++) {
			
			
			if (myArray[i]== value) {

				return true;

			}

		}

		return false;

		};
	//Check Value Exists or not
	function IsValueExist(strVal)
	{
		nNoOfArguments = IsValueExist.arguments.length;
		
		if(nNoOfArguments < 1)
		{
			return false;
		}
		
		strVal = new String(strVal);	//convert the value to a string object
		
		// if string contains no character
		if(strVal.length == 0) 
		{
			return false;
		}
		return true;
	}
	function isValidImage(imagename)
	{
		imagefile_value = imagename;
		var checkimg = imagefile_value.toLowerCase();
		if (!checkimg.match(/(\.jpg|\.gif|\.png|\.JPG|\.GIF|\.PNG|\.jpeg|\.JPEG)$/))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	//Check Float Value
	function IsValidFloatValue(strVal)
	{	
		nNoOfArguments = IsValidFloatValue.arguments.length;
		
		//if no parameter is supplied
		if(nNoOfArguments < 1)
		{
			return false;
		}
		//if strVal is empty
		if(!IsValueExist(strVal))	
		{
			return false;
		}	
		//valid characters a supplied string can have
		var sValidChars = "0123456789.";
		
		strVal = new String(strVal);	//convert the value to a string object
		
		var bReturn = true;	
		var i = new Number(0);
		
		//if more than one decimal exist in value
		if(strVal.indexOf(".") != strVal.lastIndexOf("."))
		return false;
		
		
		//if first character is 0 
		if(('0' == strVal.charAt(0)))
		{
			//if next is not decimal
			if (!('.' == strVal.charAt(1)))
			{
				return false;
			}
		}	
		
		while ((bReturn) && (i < strVal.length))
		{
			bReturn = (sValidChars.indexOf(strVal.charAt(i)) >= 0)
			i++;
		}
		return (bReturn)
	}


		

function CheckPhoneNumber(TheNumber) {
	var valid = 1
	var GoodChars = "0123456789()-+ "
	var i = 0
	if (TheNumber=="") {
		// Return false if number is empty
		valid = 0
	}
	for (i =0; i <= TheNumber.length -1; i++) {
		if (GoodChars.indexOf(TheNumber.charAt(i)) == -1) {
// Note: Remove the comments from the following line to see this
// for loop in action.
// alert(TheNumber.charAt(i) + " is no good.")
			valid = 0
		} // End if statement
	} // End for loop
	return valid
}
function CheckAlphabet(character) {
	var valid = 1
	character=character.toUpperCase();

	var GoodChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
	var i = 0
	if (character=="")
	 {
		
		valid = 0
	}
	for (i =0; i <= character.length -1; i++) {
		if (GoodChars.indexOf(character.charAt(i)) == -1) {
		valid = 0
		} // End if statement
	} // End for loop
	return valid
}

function CheckNumericAlphabet(character) {
	var valid = 1
	character=character.toUpperCase();

	var GoodChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
	var i = 0
	if (character=="")
	 {
		
		valid = 0
	}
	for (i =0; i <= character.length -1; i++) {
		if (GoodChars.indexOf(character.charAt(i)) == -1) {
		valid = 0
		} // End if statement
	} // End for loop
	return valid
}

function CheckNumericAlphabetandSpace(character) {
	var valid = 1
	character=character.toUpperCase();

	var GoodChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ "
	var i = 0
	if (character=="")
	 {
		
		valid = 0
	}
	for (i =0; i <= character.length -1; i++) {
		if (GoodChars.indexOf(character.charAt(i)) == -1) {
		valid = 0
		} // End if statement
	} // End for loop
	return valid
}


function CheckDigits(TheNumber) 
{
	var valid = 1
	var GoodChars = "0123456789"
	var i = 0
	if (TheNumber=="") {
		// Return false if number is empty
		valid = 0
	}
	for (i =0; i <= TheNumber.length -1; i++) {
		if (GoodChars.indexOf(TheNumber.charAt(i)) == -1) {
			valid = 0
		} // End if statement
	} // End for loop
	return valid
}
function CheckSpecial(special) 
{
	var valid = 1
	var GoodChars = "`~!@#$%^&*()_-=+\|][}{':;?><,./"
	var i = 0
	if (special=="")
	 {
		
		valid = 0
	}
	for (i =0; i <= special.length -1; i++) {
		if (GoodChars.indexOf(special.charAt(i)) == -1) {
			valid = 0
		} // End if statement
	} // End for loop
	return valid
}



function check_it(texturl) {
     var theurl=texturl;
     var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/
     if (tomatch.test(theurl))
     {
         
         return true;
     }
     else
     {
        
         return false; 
     }
}





function isURL(argvalue) {

	if (argvalue.indexOf(" ") != -1)
		return false;
	else if (argvalue.indexOf("http://") == -1)
		return false;
	else if (argvalue == "http://")
		return false;
	else if (argvalue.indexOf("http://") > 0)
		return false;

	argvalue = argvalue.substring(7, argvalue.length);
	if (argvalue.indexOf(".") == -1)
		return false;
	else if (argvalue.indexOf(".") == 0)
		return false;
	else if (argvalue.charAt(argvalue.length - 1) == ".")
		return false;

	if (argvalue.indexOf("/") != -1) {
		argvalue = argvalue.substring(0, argvalue.indexOf("/"));
		if (argvalue.charAt(argvalue.length - 1) == ".")
			return false;
	}

	if (argvalue.indexOf(":") != -1) {
	if (argvalue.indexOf(":") == (argvalue.length - 1))
		return false;
	else if (argvalue.charAt(argvalue.indexOf(":") + 1) == ".")
		return false;


	argvalue = argvalue.substring(0, argvalue.indexOf(":"));
	
	if (argvalue.charAt(argvalue.length - 1) == ".")
		return false;
	}

  return true;

}
function trim(s) 
{
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function isValidMail(mail)
{	
	m=new String(mail);
	var mailLength=m.length
	var totalDOT=0
	var totalROUTE=0
	var totalSPACE=0

	// Should not beging with a '.' or '@'
	if(m.charAt(0)=='@' || m.charAt(0) == '.')
	{	return false;		}

	// 
	for(ctr=1;ctr<=mailLength;ctr++)
	{	if (m.charAt(ctr)=='@')	{	totalROUTE++;	}	
		if (m.charAt(ctr)=='.')	{	totalDOT++;	}	
		if (m.charAt(ctr)==' ') {	totalSPACE++;	}
	}

	if (totalROUTE!=1)			//Checking for Multiple @
	{	return false;		}
	if(totalDOT<1)				//Checking for Route Domain
	{	return false;		}
	if(totalSPACE>0)			//No Embeded Space
	{	return false;		}
	
	//Checking for Invalid Characters

	for(ctr=0;ctr<=mailLength;ctr++)
	{	
		if (m.charAt(ctr)=='`')	return false;	
		else if (m.charAt(ctr)=='!')	return false;	
		else if (m.charAt(ctr)==' ') 	return false;	
		else if (m.charAt(ctr)=='#')	return false;	
		else if (m.charAt(ctr)=='$')	return false;	
		else if (m.charAt(ctr)=='%')	return false;	
		else if (m.charAt(ctr)=='^')	return false;	
		else if (m.charAt(ctr)=='&')	return false;	
		else if (m.charAt(ctr)=='*')	return false;	
		else if (m.charAt(ctr)=='(')	return false;	
		else if (m.charAt(ctr)==')')	return false;	
		else if (m.charAt(ctr)=='+')	return false;	
		else if (m.charAt(ctr)=='=')	return false;	
		else if (m.charAt(ctr)=='|')	return false;	
		else if (m.charAt(ctr)=='\\')	return false;	
		else if (m.charAt(ctr)=='{')	return false;	
		else if (m.charAt(ctr)=='}')	return false;	
		else if (m.charAt(ctr)=='[')	return false;	
		else if (m.charAt(ctr)==']')	return false;	
		else if (m.charAt(ctr)==':')	return false;
		else if (m.charAt(ctr)==';')	return false;	
		else if (m.charAt(ctr)=='"')	return false;	
		else if (m.charAt(ctr)=="'")	return false;	
		else if (m.charAt(ctr)=='<')	return false;	
		else if (m.charAt(ctr)=='>')	return false;	
		else if (m.charAt(ctr)==',')	return false;	
		else if (m.charAt(ctr)=='?')	return false;	
		else if (m.charAt(ctr)=='/')	return false;	
	}
	return true;
}

function hidediv(divname) {

  //console.log(divname);
    
	if (document.getElementById) 
	{ // DOM3 = IE5, NS6
		document.getElementById(divname).style.display = 'none';
	}
	else 
	{
		if (document.layers) 
		{ // Netscape 4
			eval("document."+divname+".display = 'none'");
		}
		else 
		{ // IE 4
			eval("document.all."+divname+".style.display= 'none'");
		}
	}
}

function showdiv(divname) {
	

	if (document.getElementById) 
	{ // DOM3 = IE5, NS6
		document.getElementById(divname).style.display = 'block';
	
	}
	else 
	{
		if (document.layers) { // Netscape 4
			eval("document."+divname+".display  = 'block'");
		}
		else 
		{ // IE 4
			eval("document.all."+divname+".style.display = 'block'");
		}
	}
} 

function contain_change(val)
{
	var exp=val;

	switch (exp){
		case "1" :
			document.getElementById("div_cont1").style.display='';
			document.getElementById("div_cont2").style.display='none';
			document.getElementById("div_cont3").style.display='none';
			document.getElementById("tab_1").style.backgroundColor = "#FF6800"; 
			document.getElementById("tab_2").style.backgroundColor = "#A09E9E"; 
			document.getElementById("tab_3").style.backgroundColor = "#A09E9E"; 
			break;
		case "2" :
			document.getElementById("div_cont1").style.display='none';
			document.getElementById("div_cont2").style.display='';
			document.getElementById("div_cont3").style.display='none';
			document.getElementById("tab_1").style.backgroundColor = "#A09E9E"; 
			document.getElementById("tab_2").style.backgroundColor = "#FF6800"; 
			document.getElementById("tab_3").style.backgroundColor = "#A09E9E"; 
			break;
		case "3" :
			document.getElementById("div_cont1").style.display='none';
			document.getElementById("div_cont2").style.display='none';
			document.getElementById("div_cont3").style.display='';
			document.getElementById("tab_1").style.backgroundColor = "#A09E9E"; 
			document.getElementById("tab_2").style.backgroundColor = "#A09E9E"; 
			document.getElementById("tab_3").style.backgroundColor = "#FF6800"; 
			break;
		}

}


 function checkAll (obj, elem) 
 {	

	for (i=0; i<obj.elements.length; i++) 
	{
		if(obj.elements[i].type == 'checkbox' && obj.elements[i].name!='chkModAll' )
		{
			obj.elements[i].checked = elem.checked;

		}

	}
}




function finalCategory(divName, prefix , resultElement )
{
		
		ourElements	= getDiv(divName);
		var selvalues= new Array();
	
		tempFinalArray =new Array();
		msg='';
		var msg1;
	
		for(z=0; z<ourElements.length; z++)
		{
			
			ary = GetSelectedItem(prefix+z);
			
			selvalues[z]= new Array();
			selvalues[z] = ary;
			
		}
		d=0;
		
		var tempFinalArray = new Array();
		var idAlreadyExists = false;

		for(var m=0; m<selvalues.length; m++)
		{	
			if(selvalues[m].length)
			{
				
				for(n=0; n<selvalues[m].length; n++)
				{
					element_ary_val = selvalues[m][n][1].split("-");
					if(element_ary_val[0]==0)
					{
						tempFinalArray[d]=element_ary_val[1];
						d++;

					}else
					{	
						if(has(tempFinalArray, element_ary_val[0]))
						{
							removeIndex=-1;
							for(var t =0; t<tempFinalArray.length; t++)
							{
								if(tempFinalArray[t]==element_ary_val[0])
								{
									removeIndex=t;

								}
							}
							if(removeIndex>-1)
							{	
								removeByIndex( tempFinalArray, removeIndex);
							}
							tempFinalArray[d]=element_ary_val[1];
							d++;

						}else
						{
							tempFinalArray[d]=element_ary_val[1];
							d++;
							
							//tempFinalArray

						}

					}

				}
			}

			//S00,0-3,divLObjS00,S01,0-31,divLObjS01,S02,0-52,divLObjS02

					
		}


		//alert(tempFinalArray.length);
		
	
		if(tempFinalArray.length>0)
		{	
			var elementValues= new Array();
			var u=0;

			for(var g=0; g<tempFinalArray.length; g++)
			{
				if(tempFinalArray[g])
				{
					elementValues[u]=tempFinalArray[g]; 
					u++;
				}
			}
			document.getElementById(resultElement).value=elementValues;

		}else
		{
			document.getElementById(resultElement).value="";
		}
		
		
}
function checkElement(cbName, elementId, prefx)
{	

	elementName = cbName.split("[]")[0];
	elementName	+= elementId;
	
    
    cbElement= document.getElementById(elementName);
	

	if(cbElement)
	{
		if(cbElement.type=='checkbox')
		{
			cbElement.click();
		}
	}
	

}

function selectElementOption(elemName, value)
{

	if(elem= document.getElementById(elemName))
	{
		for(x=0; x<elem.options.length;x++)
		{

			if(elem.options[x].value==value)
			{
				
				return x;

			}
		}

	}
		

}

function findDivs(div)
{

		var node= new Array();
		var z=0;

		for (var k=0;k<div.childNodes.length;k++)
		{
			if(div.childNodes[k].nodeType==1)
			{	
				node[z] = div.childNodes[k];
				z++;

			}
		}

		return node;

}
function passwordChanged(elementName) {
var strength = document.getElementById(elementName);
var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\W).*$", "g");
var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
var enoughRegex = new RegExp("(?=.{6,}).*", "g");
var pwd = document.getElementById("password");
if (pwd.value.length==0) {
strength.innerHTML = 'Type Password';
} else if (false == enoughRegex.test(pwd.value)) {
strength.innerHTML = 'More Characters';
} else if (strongRegex.test(pwd.value)) {
strength.innerHTML = '<span style="color:green">Strong!</span>';
} else if (mediumRegex.test(pwd.value)) {
strength.innerHTML = '<span style="color:orange">Medium!</span>';
} else {
strength.innerHTML = '<span style="color:red">Weak!</span>';
}
}			
function findDivElement(div)
{

		var node= new Array();
		var z=0;

		for (var k=0;k<div.childNodes.length;k++)
		{
			if(div.childNodes[k].nodeType==1)
			{	
				node[z] = div.childNodes[k];
				z++;

			}
		}

		return node;

}
	
var prevSel = new Array();;
var bredCrumAry = new Array();

function allSelectBoxValues(fObj, tObj, selInd, objPreifix, targetElement , callFunction, finalCategoryElementId, bredcrumDivId)
{
    
	//alert("From " + fObj + " , "+  tObj);
	var prevDivSelected = document.getElementById(targetElement);
	

	var l=0;
	var s;
	var selectedOptions = new Array();
	var resultcategories = new Array();
	var resElements  = new Array();
	
	
	selectedOptions = GetSelectedItem(fObj);
	
	
	var totalDivs=0;

	selectedIds='';

	//alert(fObj);

	allElements = divCheckListArray(fObj);
	//alert(allElements);

		
	for(var g=0; g<allElements.length; g++)
	{	
		cbElement= document.getElementById(allElements[g][0]);
		//alert("Element Name : " + allElements[g][0] + ", Element : " + cbElement.checked);
		if(cbElement.checked==true)
		{	rowElement= document.getElementById("divRow" + allElements[g][0]);
			rowElement.className= "divRowItemSelected";
		}else
		{
			rowElement= document.getElementById("divRow" + allElements[g][0]);
			rowElement.className= "divRowItem";
		}
	}
	
	
	for(z=0; z<selectedOptions.length; z++)
	{	
			
		if((selectedIds=='') )
		{	
			if(selectedOptions[z][1]!=0)
			{
				selectedIds= selectedOptions[z][1];
	
			}
		}else
		{
			if(selectedOptions[z][1]!=0)
			{
			
				selectedIds+= ','+selectedOptions[z][1];
			

			}
		}

	}
	
	//alert("selectedIds : " + selectedIds);





	targetDiv=document.getElementById(tObj);
	
	if(targetDiv)
	{

		elemtIndexAry= new Array();
		elemtAryTEMP = new Array();
		elemtAry= new Array();
		removeDivAry = new Array();
		//alert("selInd " +  selInd);
		elemtIndexAry= selInd.split("-");
		
		startElement= elemtIndexAry[1];
	//	alert(startElement + " , targetElement " + targetElement);
		var div = document.getElementById(targetElement);
		
		m=0;
		

		for (i=0;i<targetDiv.childNodes.length;i++)
		{
		    if(targetDiv.childNodes[i].nodeType==1)
			{	
			    
			    if(targetDiv.childNodes[i].childNodes.length==1)
			    {
			       divHeadingId = targetDiv.childNodes[i].id;
			        
			    }else
			    {
			        elemValue = document.getElementById(targetDiv.childNodes[i].id.split("divRow")[1]).value.split("-")[0] ;
			        if(startElement==elemValue)
			        {
			            
			            
			            if(!checkArray(divHeadingId, removeDivAry))
			            {
			                   removeDivAry[m]= divHeadingId;
			                   m++;
			            }
			             
			            if(!checkArray(targetDiv.childNodes[i].id, removeDivAry))
			            {    
		                     removeDivAry[m]= targetDiv.childNodes[i].id;
		                     m++;
			                
			            }
			            
			       
			            
			            
			        }
			        
			    }
			
			}
		}
		var currentSelectedElementName='';

		//alert(fObj + " - " + selInd);
		for (var y=0;y<allElements.length;y++ )
		{
			if(allElements[y][1]== selInd)
			{
				//alert(allElements[y]);
				currentSelectedElementName=allElements[y][0];

				element = document.getElementById(allElements[y][0]);
				parentNodeleftDiv= element.parentNode;
				parentNodeRow = parentNodeleftDiv.parentNode;
				//alert(parentNodeRow.id + " - " + fObj + " - " + objPreifix);
				newelements= removeSubElements(parentNodeRow.id, fObj , objPreifix);
				
				//alert("Elements : " + elements);
				

			}

		}
		//alert(newelements);


		
	
		//alert("removeDivAry : "+ removeDivAry);
		
	
		

		//elements= removeSubElements(remove_array[x][1] , remove_array[x][0] , objPreifix);

		

	  // alert(removeDivAry);
	  /*

		for(n=0; n<removeDivAry.length; n++)
		{

			
		    DIV_INDEX = removeDivAry[n].split(objPreifix)[1].substring(0,1);
		    prevDivId = objPreifix +DIV_INDEX
		   	targetDivId=removeDivAry[n];
		    
		   
		    
		    
		   // alert( "prev Div : " + prevDivId + ", " + targetDivId);
		    returnElements= removeDivElements(prevDivId, targetDivId );
			if(returnElements.length)
			{
				for(y=0 ; y<returnElements.length; y++)
				{
					element_content = returnElements[y]+'';
					elements_to_remove[elements_to_remove_index] =element_content.split(',');
					elements_to_remove_index++;

				}
			}

    
		}


		//alert("elements_to_remove : "+ elements_to_remove);
		
		alert("remove_array :" + remove_array);
			*/
		// Start New Coding 
		remove_array = newelements;
	
		
		var removingElementsPrev= new Array();
		var removingElementsPrevIndex= 0;
		
		var removingElements= new Array();
		
		var removingElementsZero= new Array();
		
		var removingElementsZeroIndex= 0;
		var removingElementsFirst= new Array();
		var removingElementsFirstIndex= 0;
		var removingElementsSecond= new Array();
		var removingElementsSecondIndex= 0;
		var removingElementsThird= new Array();
		var removingElementsThirdIndex= 0;
	
		var removingElementsFourth= new Array();
		var removingElementsFourthIndex= 0;
		var removingElementsFifth= new Array();
		var removingElementsFifthIndex= 0;
		var elemToRemove= new Array();
		var elemToRemoveIndex= 0;
		
		
		if(remove_array.length)
		{
			//alert("remove_array :" + remove_array);
			removingElementsPrev[removingElementsPrevIndex] = remove_array;
			removingElementsPrevIndex++;
			//alert(removingElementsPrev.length);

			for (var z=0;z<removingElementsPrev.length ; z++)
			{
				if(removingElementsPrev[z].length)
				{
					for (var v=0;v<removingElementsPrev[z].length ;v++ )
					{


						elemToRemove[elemToRemoveIndex]= new Array(removingElementsPrev[z][v][0], removingElementsPrev[z][v][1]);
						elemToRemoveIndex++;

						if( removingElementsPrev[z][v][2] =='')
						{

							//alert("Heading :" +  removingElementsPrev[z][v][0] + " , " + removingElementsPrev[z][v][1] );
						}
						else
						{
							//alert("Data  :" +  removingElementsPrev[z][v][0] + " , " + removingElementsPrev[z][v][1] );
							elements= removeSubElements(removingElementsPrev[z][v][0] , removingElementsPrev[z][v][1] , objPreifix);
							if(elements.length)
							{
								removingElementsZero[removingElementsZeroIndex]= elements;
								removingElementsZeroIndex++;


							}
						}

					}
				}
			}
		}

		
		for (var z=0;z<removingElementsZero.length ; z++)
		{
			if(removingElementsZero[z].length)
			{
				for (var v=0;v<removingElementsZero[z].length ;v++ )
				{
					elemToRemove[elemToRemoveIndex]= new Array(removingElementsZero[z][v][0], removingElementsZero[z][v][1]);
					elemToRemoveIndex++;

					if( removingElementsZero[z][v][2] =='')
					{

						//alert("Heading :" +  removingElementsZero[z][v][0] + " , " + removingElementsZero[z][v][1] );
					}
					else
					{
						//alert("Data  :" +  removingElementsZero[z][v][0] + " , " + removingElementsZero[z][v][1] );
						elements= removeSubElements(removingElementsZero[z][v][0] , removingElementsZero[z][v][1] , objPreifix);
						if(elements.length)
						{
							removingElementsFirst[removingElementsFirstIndex]= elements;
							removingElementsFirstIndex++;


						}
					}

				}
			}
		}
			
		for (var z=0 ;	z<removingElementsFirst.length;	z++ )
		{

			if(removingElementsFirst[z].length)
			{
				for (var v=0;v<removingElementsFirst[z].length ;v++ )
				{
					elemToRemove[elemToRemoveIndex]= new Array(removingElementsFirst[z][v][0], removingElementsFirst[z][v][1]);
					elemToRemoveIndex++;
					
					
					
					if( removingElementsFirst[z][v][2] =='')
					{

						//alert("Heading :" +  removingElementsFirst[z][v][0] + " , " + removingElementsFirst[z][v][1] );
					}
					else
					{
						//alert("Data  :" +  removingElementsFirst[z][v][0] + " , " + removingElementsFirst[z][v][1] );
						elements= removeSubElements(removingElementsFirst[z][v][0] , removingElementsFirst[z][v][1] , objPreifix);
						if(elements.length)
						{
							removingElementsSecond[removingElementsSecondIndex]= elements;
							removingElementsSecondIndex++;


						}
					}

				}
			}

		}


		for (var z=0 ;	z<removingElementsSecond.length;	z++ )
		{

			if(removingElementsSecond[z].length)
			{
				for (var v=0;v<removingElementsSecond[z].length ;v++ )
				{
					elemToRemove[elemToRemoveIndex]= new Array(removingElementsSecond[z][v][0], removingElementsSecond[z][v][1]);
					elemToRemoveIndex++;
					
					
					
					if( removingElementsSecond[z][v][2] =='')
					{
						//alert("Heading :" +  removingElementsSecond[z][v][0] + " , " + removingElementsSecond[z][v][1] );
					}
					else
					{
						//alert("Data  :" +  removingElementsSecond[z][v][0] + " , " + removingElementsSecond[z][v][1] );
						elements= removeSubElements(removingElementsSecond[z][v][0] , removingElementsSecond[z][v][1] , objPreifix);
						if(elements.length)
						{
							removingElementsThird[removingElementsThirdIndex]= elements;
							removingElementsThirdIndex++;


						}
					}

				}
			}

		}
		

		
		for (var z=0 ;	z<removingElementsThird.length;	z++ )
		{

			if(removingElementsThird[z].length)
			{
				for (var v=0;v<removingElementsThird[z].length ;v++ )
				{
					elemToRemove[elemToRemoveIndex]= new Array(removingElementsThird[z][v][0], removingElementsThird[z][v][1]);
					elemToRemoveIndex++;
					
					
					
					if( removingElementsThird[z][v][2] =='')
					{
						//alert("Heading :" +  removingElementsThird[z][v][0] + " , " + removingElementsThird[z][v][1] );
					}
					else
					{
						//alert("Data  :" +  removingElementsThird[z][v][0] + " , " + removingElementsThird[z][v][1] );
						elements= removeSubElements(removingElementsThird[z][v][0] , removingElementsThird[z][v][1] , objPreifix);
						if(elements.length)
						{
							removingElementsFourth[removingElementsFourthIndex]= elements;
							removingElementsFourthIndex++;


						}
					}

				}
			}

		}

		for (var z=0 ;	z<removingElementsFourth.length;	z++ )
		{

			if(removingElementsFourth[z].length)
			{
				for (var v=0;v<removingElementsFourth[z].length ;v++ )
				{
					elemToRemove[elemToRemoveIndex]= new Array(removingElementsFourth[z][v][0], removingElementsFourth[z][v][1]);
					elemToRemoveIndex++;
					
					
					
					if( removingElementsFourth[z][v][2] =='')
					{
						//alert("Heading :" +  removingElementsFourth[z][v][0] + " , " + removingElementsFourth[z][v][1] );
					}
					else
					{
						//alert("Data  :" +  removingElementsFourth[z][v][0] + " , " + removingElementsFourth[z][v][1] );
						elements= removeSubElements(removingElementsFourth[z][v][0] , removingElementsFourth[z][v][1] , objPreifix);
						if(elements.length)
						{
							removingElementsFifth[removingElementsFifthIndex]= elements;
							removingElementsFifthIndex++;


						}
					}

				}
			}

		}

		for (var m=0;m<elemToRemove.length ;m++ )
		{
				
			//alert("elemToRemove["+m+"] :" + elemToRemove[m]);
			
			removingElement		= document.getElementById(elemToRemove[m][0]);
			parentDivElement	= document.getElementById(elemToRemove[m][1]);
			mainDiv				= parentDivElement.parentNode;

			
			//cn = parentDivElement.parentNode;
			
			if(parentDivElement && removingElement)
			{
				parentDivElement.removeChild(removingElement);
				divCollection= findDivs(parentDivElement);
				if(divCollection.length==0)
				{
					mainDiv.removeChild(parentDivElement);
				}

			}
			
		}

		
	
	
	}
	
	//alert('test');
	
	if(selectedIds.length==0)
	{

		
		
	}
	//finalCategory(targetElement, objPreifix, finalCategoryElementId);
	
	//getBredcrum(finalCategoryElementId, bredcrumDivId, callFunction);
		
	//alert('test123');

	if(selectedIds!='' || selInd==-1)
	{	
		//finalCategory(targetElement, objPreifix, finalCategoryElementId);
	}
	categoryPopulate(callFunction, selectedIds, tObj , currentSelectedElementName, objPreifix, targetElement, finalCategoryElementId, bredcrumDivId);

	//alert('test1234556');
	divCollection= findDivs(prevDivSelected);
	for(var i=0; i<divCollection.length;i++)
	{
		

		
		prevSel[i] = new Array();
		
		s=0;
		
		prevI=-1;


		innerDivCollection= findDivs(divCollection[i]);
	
		for(var j=0; j<innerDivCollection.length;j++)
		{

			innerDivContentCollection= findDivs(innerDivCollection[j]);
			if(innerDivContentCollection.length)
			{
				divlObj= innerDivContentCollection[0];
				
				for (var k=0;k<divlObj.childNodes.length;k++)
				{
					if(divlObj.childNodes[k].nodeType==1)
					{	
						for(var b=0;b<divlObj.childNodes[k].attributes.length; b++ )
						{
							if(divlObj.childNodes[k].attributes[b].nodeName=='id')
							{
								var checkBoxElement= document.getElementById(divlObj.childNodes[k].attributes[b].nodeValue );
								if(checkBoxElement.checked)
								{	
								
									prevSel[i][s] = checkBoxElement.value;
									s++;
									prevI=i;

									
								}
							}	
							
						}
					}
				}
			}
		}
	}

	


}


function removeSubElements(checkedElementName, targetElem, prefix){
		
		//alert("Argument " + checkedElementName + " - " + targetElem + " - " + prefix);
		//Argument divRowS10 - S1 - S
		//Argument divRowS11 - S1 - S

		var returnArray = new Array();
		var returnArrayIndex = 0;


		rowDivName = document.getElementById(checkedElementName);
		innerDivItemRowAry= findDivs(rowDivName);
		targetParentElement = document.getElementById(targetElem);
		topElement= targetParentElement.parentNode;
		var parentId='';


		nextTargetElementIndex= eval(targetElem.split(prefix)[1]);
		nextTargetElement= nextTargetElementIndex+1;
		nextTargetElementId= prefix+nextTargetElement;

		if(nextTargetElement= document.getElementById(nextTargetElementId))
		{
				if(innerDivItemRowAry.length==2)
				{
					innerCheckBoxItem= innerDivItemRowAry[0].childNodes;
					for (var i = 0; i < innerCheckBoxItem.length; i++) 
					{
						if ( innerCheckBoxItem[i].nodeType==1 ){
							parentId=innerCheckBoxItem[i].value.split("-")[1]; 
								
							divItemRowAry= findDivs(nextTargetElement);
							for(var j=0; j<divItemRowAry.length; j++)
							{
								//alert("Id  : " + divItemRowAry[j].id);

								divRow= findDivs(divItemRowAry[j]);
								if(divRow.length==0)
								{
									headingRow= divItemRowAry[j].id
								}else if (divRow.length==2)
								{
									checkBoxItem= divRow[0].childNodes;
									
									
									
									for (var l = 0; l < checkBoxItem.length; l++) 
									{
										if ( checkBoxItem[l].nodeType==1 ){
											currentId=checkBoxItem[l].value.split("-")[0]; 
											if(currentId==parentId)
											{
														
												if(returnArrayIndex==0)
												{
													returnArray[returnArrayIndex] = new Array();
													returnArray[returnArrayIndex] =new Array(headingRow, nextTargetElementId , '' );
													//alert("Heading :" + returnArray[returnArrayIndex]);
													
													returnArrayIndex++;
												}
																																			
												returnArray[returnArrayIndex] = new Array();
												returnArray[returnArrayIndex] =new Array( divItemRowAry[j].id, nextTargetElementId , currentId );
												returnArrayIndex++;
												//alert("Item :" + returnArray[returnArrayIndex]);

												//alert( "Row Id :"+ divItemRowAry[j].id + ", Next Id :" + nextTargetElementId + ", Prefix "+ prefix);
												
												//alert(returnArray);

												//removeSubElements(divItemRowAry[j].id, nextTargetElementId, prefix);

												//alert("Row Id :"+ divItemRowAry[j].id + "Id : " + checkBoxItem[l].id +", value : " + checkBoxItem[l].value);

												
											}
											
											//alert(nextTargetElementId + " - " +targetElem+ " - " + parentId +" - " + prefix);
						
											//alert("Id : " + divItemRowAry[j].id + ", Length :" +divRow.length + ", " + currentId);

										}
									}
								}
							}
						}
					}
				}
		}

		//alert("Element Id :" + checkedElementName + " , length :" +innerDivItemRowAry.length +", element Of " + targetElem + ", " + prefix);
	

	
		
		
		return returnArray;
}
function getBredcrum(elementFinalCategoryId, divBredCrumId, functionName)
{
	var http = AJAX_getXMLHttpObject();
	lookupFunction =functionName;
    /* Build HTTP POST data. */

	categoryId=0;

    var POSTData = '&categoryId=' + urlEncode(categoryId);
	POSTData += "&finalCategoryIds="+ document.getElementById(elementFinalCategoryId).value;

	var resultArray= new Array();
		  /* Anonymous callback function triggered when HTTP response is received. */
    var callBack = function ()
    {
		
        if (http.readyState != 4)
        {
			
            return;
        }
	
        if (!http.responseXML)
        {
            var errorMessage = "An error occurred while receiving a response from the server.\n\n"
                             + http.responseText;
            alert(errorMessage);
            return;
        }
		
        /* Return if we have any errors. */
        var errorCodeNode    = http.responseXML.getElementsByTagName('errorcode').item(0);
        var errorMessageNode = http.responseXML.getElementsByTagName('errormessage').item(0);
        
		
		if (!errorCodeNode.firstChild || errorCodeNode.firstChild.nodeValue != '0')
        {
            if (errorCodeNode.firstChild.nodeValue != '-2')
            {
                var errorMessage = "An error occurred while receiving a response from the server.\n\n"
                                 + errorMessageNode.firstChild.nodeValue;
                alert(errorMessage);
            }

            return;
        }else
		{
			 noOfElemnetsNode= http.responseXML.getElementsByTagName('totalelements').item(0);
			 var resultTags = http.responseXML.getElementsByTagName('result');
			 var bredcrumsResult = http.responseXML.getElementsByTagName('bredcrums');
			if(bredcrumsResult.length)
			{
				
				bredcrum='';

				for (var i=0;i<bredcrumsResult.length;i++)
				{		
					bredcrum+= (i+1)+")" + urlDecode(bredcrumsResult[i].firstChild.nodeValue)+"<br>";

				}
				document.getElementById(divBredCrumId).innerHTML =bredcrum;

			}
			
			
			dataNodes = resultTags;

			
			
		}
		
		return true

		
    }
	
    AJAX_callFunction(
        http,
        lookupFunction,
        POSTData,
        callBack,
        0,
        sessionCookie,
        false,
        false
    );
	

	
}
	
function removeCheckBoxList(removeCheckBoxItemArray, targetDivId, parentDivSelected, targetElement, finalCategoryElementId, bredcrumDivId, objPreifix, fObj)
{				//alert(removeCheckBoxItemArray+ " , " + targetDivId+ ", " + parentDivSelected +", "+ targetElement + ", " + finalCategoryElementId+ " , " + bredcrumDivId+ ", "+objPreifix);

				targetDIV= document.getElementById(targetDivId);
				needstocallbredcum=0;
				

				
				if(isArray(removeCheckBoxItemArray) && removeCheckBoxItemArray.length)
				{
					//alert(removeCheckBoxItemArray);
					for ( var k=0;k<removeCheckBoxItemArray.length ; k++)
					{
						// to remove Individual Div Rows including headings
						currentElement= document.getElementById(removeCheckBoxItemArray[k]);
						//alert(removeCheckBoxItemArray[k]);
						/*
						innerDivItemRowAry= findDivs(currentElement);
						if(innerDivItemRowAry=='')
						{
						     //alert("test");
						}
						for (d=0;d< innerDivItemRowAry.length;d++ )
						{
							
							innerDivItemAry= findDivs(innerDivItemRowAry[d]);
							
							if(innerDivItemAry.length)
							{	

								for(var m=0; m<innerDivItemAry[0].attributes.length;	m++)
								{
									if(innerDivItemAry[0].attributes[m].nodeName=='id')
									{
									    
									    //alert("Remove Id : " +innerDivItemAry[0].attributes[m].nodeValue);
										chkBoxElement= document.getElementById(innerDivItemAry[0].attributes[m].nodeValue);
										if(chkBoxElement)
										{
										  innerDivItemRowAry[d].removeChild(chkBoxElement);
										}
										needstocallbredcum=1;
										
									}
								}
							}
						}
						
						
						/* 
						if(innerDivItemRowAry.length)
						{
							for (var g=0;g<innerDivItemRowAry.length;g++ )
							{
								for(s=0; s<innerDivItemRowAry[g].attributes.length; s++)
								{
									//alert(innerDivItemRowAry[g].attributes[s].nodeName + "=" + innerDivItemRowAry[g].attributes[s].nodeValue);

								}
								
								currentElement.removeChild(innerDivItemRowAry[g]);
							}
						}
												

						targetDIV.removeChild(currentElement);
						targetDivNodeArray= divCheckListArray(targetDivId);
						if(targetDivNodeArray.length==0)
						{
							parentDivSelected.removeChild(targetDIV);
						}
						
						*/
					
					}
				}
				else
				{
					needstocallbredcum=1;
				}

				if(needstocallbredcum)
				{
					
					finalCategory(targetElement, objPreifix, finalCategoryElementId);
					getBredcrum(finalCategoryElementId, bredcrumDivId, fObj);
					
								
				}
}

var remove_array_top = new Array();
remove_array_top_index=0;


var remove_array=new Array();

remove_array_index=0;

var  remove_array_elements = new Array();
remove_array_elements_index=0;

function removeDivElements(prevDivId, targetDivId)
{
	
	containerElement= document.getElementById(prevDivId);
	topParent= containerElement.parentNode;
	//alert("Node ID : " + prevDivId + ", Node Child Nodes : " + topParent.childNodes.length);
	var array_divs = new Array();
	for(var h=0; h <  topParent.childNodes.length; h++)
	{
		if(topParent.childNodes[h].nodeType==1)
		{	
				for(var b=0;b<topParent.childNodes[h].attributes.length; b++ )
				{
					if(topParent.childNodes[h].attributes[b].nodeName=='id')
					{
						array_divs[l] = topParent.childNodes[h].attributes[b].nodeValue;
						l++;

					}
				}
		}

	}
	var next_click_elements	= new Array();
		next_click_elements_index=0;
	
	removingElement= document.getElementById(targetDivId);
	if(containerElement && containerElement)
	{
		
		if(removingElement.childNodes.length==1)
		{
			remove_array[remove_array_index]= new Array();
			remove_array[remove_array_index][0] = prevDivId;
			remove_array[remove_array_index][1] = targetDivId;
			remove_array_index++;

			//alert( "Head " + prevDivId + " -- Test -- " + targetDivId + " - Length " + removingElement.childNodes.length);
			//containerElement.removeChild(removingElement);
		}else
		{

				remove_array[remove_array_index]= new Array();
				remove_array[remove_array_index][0] = prevDivId;
				remove_array[remove_array_index][1] = targetDivId;
				remove_array_index++;

				for (var k=0;k<removingElement.childNodes.length;k++)
				{
					if(removingElement.childNodes[k].nodeType==1)
					{	
						
						for(var b=0;b<removingElement.childNodes[k].attributes.length; b++ )
						{
							
							if(removingElement.childNodes[k].attributes[b].nodeName=='id')
							{
								divName = removingElement.childNodes[k].attributes[b].nodeValue;
								innerDiv = document.getElementById(divName);
								if(innerDiv.childNodes.length)
								{
									
									if(innerDiv.childNodes.length==1)
									{
										// Right
										rightDivName = removingElement.childNodes[k].attributes[b].nodeValue;
										/*
										remove_array[remove_array_index]= new Array();
										remove_array[remove_array_index][0] = targetDivId;
										remove_array[remove_array_index][1] = rightDivName ;
										remove_array_index++;
										*/

										//alert("right div " + prevDivId + " -- Test -- " + targetDivId + " - Length " +rightDivName);
						
									}else
									{
										leftDivName = removingElement.childNodes[k].attributes[b].nodeValue;
										/*
										remove_array[remove_array_index]= new Array();
										remove_array[remove_array_index][0] = targetDivId;
										remove_array[remove_array_index][1] = leftDivName ;
										remove_array_index++;	
										*/
									
										
										for (var l=0;l<innerDiv.childNodes.length;l++)
										{
											if(innerDiv.childNodes[l].nodeType==1)
											{
												//alert(innerDiv.childNodes[l].nodeName);
												
												for(var c=0;c<innerDiv.childNodes[l].attributes.length; c++ )
												{
													
													if(innerDiv.childNodes[l].attributes[c].nodeName=='id')
													{
														//alert("Attrib Length : " +innerDiv.childNodes[l].attributes.length+" Name : "+ innerDiv.childNodes[l].attributes[c].nodeName + " = " + innerDiv.childNodes[l].attributes[c].nodeValue);
		
														
														subdivName = innerDiv.childNodes[l].attributes[c].nodeValue;
														/*
														//"checkElement('"+checkBoxItem.name+"','"+newOptionIndex+"','"+objPreifix+"')";
														remove_array_elements[remove_array_elements_index]= new Array();
														remove_array_elements[remove_array_elements_index][0] = divName;
														remove_array_elements[remove_array_elements_index][1] = subdivName;
														remove_array_elements_index++;
														*/
														
														cbElement= document.getElementById(subdivName);
														
														//alert("left div " + prevDivId + " -- Test -- " + targetDivId + " , Sub Div Name :" + subdivName + " c b checked :" + cbElement.checked);
														
														
														
														if(cbElement.checked)
														{
															next_click_elements[next_click_elements_index]= new Array();
															next_click_elements[next_click_elements_index][0]= divName;
															next_click_elements[next_click_elements_index][1]= subdivName;

															next_click_elements_index++;

															//cbElement.click();
															
														}
														

														
													
													}
												}

											}
										}
									}
								}
								else
								{	
									remove_array[remove_array_index]= new Array();
									remove_array[remove_array_index][0] = prevDivId;
									remove_array[remove_array_index][1] = targetDivId;
									remove_array_index++;	
									alert("head div " + prevDivId + " -- Test -- " + targetDivId + " - Length " +removingElement.childNodes[k].attributes[b].nodeValue);
								}
							}
						}
						
					}
				}
			
		}
		return next_click_elements;

					
	}
								
	


	
	/*
	var elements_to_remove= new Array();
	var checkedElementValues = new Array();
	//alert("Inside: "+ prevDivId);
	
	prevArray = divCheckListArray(prevDivId, "checked");
	
	targetArray = divCheckListArray(targetDivId, '');
	var remove_ids_ary = new Array();
	var remove_ids_ary_index=0;
	var elements_to_remove= new Array();
    //alert(prevArray);
    
	for(var m=0; m<prevArray.length; m++ )
	{
	    
		checkedElementValues[m]= prevArray[m][1].split("-")[1];
	}

	noMatchedArray= checkArrayElements(targetArray, checkedElementValues);
	if(isArray(noMatchedArray) && noMatchedArray.length)
	{
		elements_to_remove= noMatchedArray;

	}
	alert(elements_to_remove);
	return ;

	if(elements_to_remove)
	{
				
				if(isArray(elements_to_remove) && elements_to_remove.length)
				{
					var parent_element='';

					for(var v=0; v<elements_to_remove.length; v++)
					{
						elemnt= document.getElementById(elements_to_remove[v][0]);
						parentElemnt= elemnt.parentNode;
						parentParentElemnt= parentElemnt.parentNode;
						

						//if(divlObj.childNodes[k].attributes[b].nodeName=='id')
						for(var m=0; m<parentParentElemnt.attributes.length;	m++)
						{
							if(parentParentElemnt.attributes[m].nodeName=='id')
							{
								findParentDivAry= parentParentElemnt.attributes[m].nodeValue.split(targetDivId);
								previousDivId=findParentDivAry[0]+targetDivId+(findParentDivAry[1]-1);

								previousDiv= document.getElementById(previousDivId).childNodes[0];
								targetRemoveElemnt= document.getElementById(targetDivId);
								
								if(previousDiv)
								{
									
									if(previousDiv.hasChildNodes()==false)
									{

										remove_ids_ary[remove_ids_ary_index]=previousDivId;
										
										
										remove_ids_ary_index++;


										//targetRemoveElemnt.removeChild(document.getElementById(previousDivId));
									}
								}
								removeElement= document.getElementById(parentParentElemnt.attributes[m].nodeValue)
								//targetRemoveElemnt.removeChild(removeElement);
								remove_ids_ary[remove_ids_ary_index]=parentParentElemnt.attributes[m].nodeValue;
								remove_ids_ary_index++
								//alert(targetDivId + " | "+ parentParentElemnt.attributes[m].nodeValue + " | " +previousDivId+" | " +previousDiv.hasChildNodes() );
								
							}

						}
					}
				}
			}

	return remove_ids_ary;
	*/


}

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}
function checkArrayElements(targetArray, checkedElementValues)
{

	var non_existing_elements = new Array();
	var non_existing_elements_one_dim = new Array();
	var f=0;

	for(var n=0; n<targetArray.length; n++ ){
		
		if(!has(checkedElementValues, targetArray[n][1].split("-")[0]))
		{	
			if(non_existing_elements.length)
			{
				if(!has(non_existing_elements_one_dim,targetArray[n][0] ))
				{
						non_existing_elements[f] = targetArray[n];
						non_existing_elements_one_dim[f] = targetArray[n][0];
						f++;
				}

				
			}else
			{
				non_existing_elements[f] = targetArray[n];
				non_existing_elements_one_dim[f] = targetArray[n][0];
				f++;
			}
		}
	}
	

	return non_existing_elements;

}
function divCheckListArray(DivId, checkForChecked)
{
	var element = new Array();	
	var z=0;
	
	
	if(Div= document.getElementById(DivId))
	{	
		innerDivCollection= findDivs(Div);
		
		for(var j=0; j<innerDivCollection.length;j++)
		{
			innerDivContentCollection= findDivs(innerDivCollection[j]);
			if(innerDivContentCollection.length)
			{
				divlObj= innerDivContentCollection[0];

				for (var k=0;k<divlObj.childNodes.length;k++)
				{
					if(divlObj.childNodes[k].nodeType==1)
					{	
						for(var b=0;b<divlObj.childNodes[k].attributes.length; b++ )
						{
							if(divlObj.childNodes[k].attributes[b].nodeName=='id')
							{
							    
								var checkBoxElement= document.getElementById(divlObj.childNodes[k].attributes[b].nodeValue );
								//alert("Div ID :" + DivId + ", is : " +checkForChecked + ",  ID " +divlObj.childNodes[k].attributes[b].nodeValue);
								
								if(checkForChecked=='checked' && checkBoxElement.checked=='true')
								{
								   
										element[z] = Array(divlObj.childNodes[k].attributes[b].nodeValue,checkBoxElement.value)
										
										z++;
									
									

								}else
								{
									element[z] = Array(divlObj.childNodes[k].attributes[b].nodeValue,checkBoxElement.value);
									z++;
								}
								
								

							}
						}
					}
				}
			}
		}
	}
	return element;

}



function valExistsFromCheckList(divId, value)
{
	
	if(DivObject=document.getElementById(divId))
	{	
		innerDivCollection= findDivs(DivObject);
		for(var j=0; j<innerDivCollection.length;j++)
		{
			innerDivContentCollection= findDivs(innerDivCollection[j]);
			if(innerDivContentCollection.length)
			{
				divlObj= innerDivContentCollection[0];
				
				for (var k=0;k<divlObj.childNodes.length;k++)
				{
					if(divlObj.childNodes[k].nodeType==1)
					{	
						for(var b=0;b<divlObj.childNodes[k].attributes.length; b++ )
						{
							if(divlObj.childNodes[k].attributes[b].nodeName=='id')
							{
								var checkBoxElement= document.getElementById(divlObj.childNodes[k].attributes[b].nodeValue );
								if(checkBoxElement.value == value )
								{
									return true;
								}
								
							}	
						}
					}
				}
			}
		}
	}
	return false;
}

function categoryPopulate(functionName, categoryId, tObj, currentSelectedElementName, objPreifix, targetElement, finalCategoryElementId , bredcrumDivId)
{	
	//alert(selInd);
	//alert(currentSelectedElementName );

	finalCategory(targetElement, objPreifix, finalCategoryElementId);
	//alert(bredcrumDivId);

	lookupFunction =functionName;
    var http = AJAX_getXMLHttpObject();
	
    /* Build HTTP POST data. */
    var POSTData = '&categoryId=' + urlEncode(categoryId);
	POSTData+="&finalCategoryIds="+ document.getElementById(finalCategoryElementId).value;
	
	if(document.getElementById(finalCategoryElementId).value!='' )
	{
	
		var resultArray= new Array();
		
		  /* Anonymous callback function triggered when HTTP response is received. */
		var callBack = function ()
		{
			
			if (http.readyState != 4)
			{
				
				return;
			}
		
			if (!http.responseXML)
			{
				var errorMessage = "An error occurred while receiving a response from the server.\n\n"
								 + http.responseText;
				alert(errorMessage);
				return;
			}
			
			/* Return if we have any errors. */
			var errorCodeNode    = http.responseXML.getElementsByTagName('errorcode').item(0);
			var errorMessageNode = http.responseXML.getElementsByTagName('errormessage').item(0);
			
			
			if (!errorCodeNode.firstChild || errorCodeNode.firstChild.nodeValue != '0')
			{
				if (errorCodeNode.firstChild.nodeValue != '-2')
				{
					var errorMessage = "An error occurred while receiving a response from the server.\n\n"
									 + errorMessageNode.firstChild.nodeValue;
					alert(errorMessage);
				}

				return;
			}else
			{
				 noOfElemnetsNode= http.responseXML.getElementsByTagName('totalelements').item(0);
				 var resultTags = http.responseXML.getElementsByTagName('result');
				 var bredcrumsResult = http.responseXML.getElementsByTagName('bredcrums');
				if(bredcrumsResult.length)
				{
					
					bredcrum='';

					for (var i=0;i<bredcrumsResult.length;i++)
					{		
						bredcrum+= (i+1)+")" + urlDecode(bredcrumsResult[i].firstChild.nodeValue)+"<br>";

					}
					document.getElementById(bredcrumDivId).innerHTML =bredcrum;

				}
				
				
				dataNodes = resultTags;
				
				
				if(resultTags.length>0)
				{	
					//alert(resultTags.length);

				  
					if(!document.getElementById(tObj))
					{	
						
						var Ary = new Array();
						Ary = tObj.split(objPreifix);
						

						tObjIndex=Ary[1];
						nextDivId =(eval(tObjIndex))+1;
						

						if (navigator.appName.match("Internet Explorer")) {
							
							unsetDiv = document.createElement("<DIV>");
							
						} else {
							unsetDiv = document.createElement("DIV");
						
						}
					

						unsetDiv.className='innerDiv';
						unsetDiv.setAttribute('id',objPreifix+ tObjIndex);
						//document.getElementById(targetElement).style.width =document.getElementById(targetElement).offsetWidth +230;
						
						document.getElementById(targetElement).appendChild(unsetDiv);
					}else
					{
						var Ary = new Array();
						Ary = tObj.split(objPreifix);
						

						tObjIndex=Ary[1];
						nextDivId =(eval(tObjIndex))+1;
					}
					
				}
				
				
				
				
				if(dataNodes.length)
				{	
					tmp='';	
					newOptionIndex=0;
					
					//alert(targetElement + ", " + objPreifix+ " , " + finalCategoryElementId);

					
					for (var i=0;i<dataNodes.length;i++)
					{		
						
						

						var IDNode   = dataNodes[i].getElementsByTagName('id').item(0);
						var IDNodeValue = urlDecode(IDNode.firstChild.nodeValue);
						 
						var nameNode = dataNodes[i].getElementsByTagName('name').item(0);
						var nameNodeValue = urlDecode(nameNode.firstChild.nodeValue);
						 
						var ParentcatNode = dataNodes[i].getElementsByTagName('parentcategoryid').item(0);
						if(ParentcatNode.hasChildNodes())
						{
							var ParentCatNodeValue = urlDecode(ParentcatNode.firstChild.nodeValue);
						
							var ParentcatCodeNode = dataNodes[i].getElementsByTagName('pcategory_scode').item(0);
						

							var ParentCatCodeNodeValue = urlDecode(ParentcatCodeNode.firstChild.nodeValue);
							var newValue = ParentCatNodeValue+"-"+IDNodeValue;
							
							if(!valExistsFromCheckList(tObj,newValue ))
							{
								if(ParentCatCodeNodeValue!=tmp)
								{		
										divElem= document.getElementById(tObj);
										divItemsCounter= findDivs(divElem);
										lastIndex=0;

										if(divLength=divItemsCounter.length)
										{
											//"divRow";
											//alert("Shuvendu Index : " + divItemsCounter[divLength-1]);

											for(var b=0;b<divItemsCounter[divLength-1].attributes.length; b++ )
											{
											
												
												if(divItemsCounter[divLength-1].attributes[b].nodeName =='id')
												{	
													//alert("Shuvendu : " + divItemsCounter[divLength-1].attributes[b].nodeValue);
													
													lastIndex= divItemsCounter[divLength-1].attributes[b].nodeValue.split("divRow")[1].split(tObj);
													
		
												}
												

											}
											//alert("Shuvendu Index : " + divItemsCounter[divLength-1].split("divRow")[1]);
											var current_index = 0;
											current_index  = parseInt(lastIndex[1]);
											//alert("Vinod  Test : "+ current_index);

											newOptionIndex= (current_index+1);
										


										}
										

										if (navigator.appName.match("Internet Explorer")) {
											checkBoxDiv = document.createElement("<DIV>");
											
										} else {
											checkBoxDiv = document.createElement("DIV");
											
										}
					
										checkBoxDiv.innerHTML=ParentCatCodeNodeValue;
										checkBoxDiv.className='divRowItemHeading';
										checkBoxDiv.id="divRow"+tObj+newOptionIndex;
								
										divElem.appendChild(checkBoxDiv);
										checkBoxDiv='';
										newOptionIndex++;


								}

								if (navigator.appName.match("Internet Explorer")) {
										checkBoxItemDiv = document.createElement("<DIV>");
										checkBoxInnerLeftDiv = document.createElement("<DIV>");
										checkBoxInnerRightDiv = document.createElement("<DIV>");
										checkBoxItem = document.createElement("<INPUT>");
										
								} else {
										checkBoxItemDiv = document.createElement("DIV");
										checkBoxInnerLeftDiv = document.createElement("DIV");
										checkBoxInnerRightDiv = document.createElement("DIV");
										checkBoxItem = document.createElement("INPUT");
									
								}

								checkBoxItemDiv.id="divRow"+tObj+newOptionIndex;
								checkBoxItemDiv.className='divRowItem';
							
								
								checkBoxItem.type="checkbox";
								checkBoxItem.id= tObj+newOptionIndex;
								checkBoxItem.name= tObj+'[]';
								checkBoxItem.value=newValue;
								

								checkBoxItem.setAttribute("onclick", "allSelectBoxValues('"+tObj+"','"+objPreifix+(nextDivId)+"',this.value,'"+objPreifix+"', '"+targetElement+"', '"+functionName+"' , '"+finalCategoryElementId+ "','"+bredcrumDivId+"')");
							
								checkBoxInnerRightDiv.innerHTML=nameNodeValue;
								checkBoxInnerRightDiv.className='innerDivRight';
								checkBoxInnerRightDiv.setAttribute("id", 'divRObj'+tObj+newOptionIndex);

								checkBoxInnerRightDiv.setAttribute("onclick", "checkElement('"+checkBoxItem.name+"','"+newOptionIndex+"','"+objPreifix+"')");
								
								checkBoxInnerLeftDiv.appendChild(checkBoxItem);
								checkBoxInnerLeftDiv.className='innerDivLeft';
								checkBoxInnerLeftDiv.setAttribute("id",'divLObj'+tObj+newOptionIndex );
								
								checkBoxItemDiv.appendChild(checkBoxInnerLeftDiv);
								
								checkBoxItemDiv.appendChild(checkBoxInnerRightDiv);
								
								document.getElementById(tObj).appendChild(checkBoxItemDiv);
								newOptionIndex++;
								tmp = ParentCatCodeNodeValue;
							
							}
							

							
						}
						
						
					

					}
					
				}
				
				//childSelectedItem(tObj, selInd , objPreifix, targetElement );
				
				

			}
			
			return true

			
		}
		
		AJAX_callFunction(
			http,
			lookupFunction,
			POSTData,
			callBack,
			0,
			sessionCookie,
			false,
			false
		);
		
	}else
	{
		//alert("Make it Blank ");
		document.getElementById(bredcrumDivId).innerHTML='';
	}

	

}



function getDiv(targetDiv)
{
	var allInsideElements= new Array();
	var x=0;
	
	cn = document.getElementById(targetDiv).childNodes;
	
	


  for (var i = 0; i < cn.length; i++) 
  {
    //alert( "i='" + i + "', n='" + cn[i].name + "', nt='" + cn[i].nodeType + "', nv='" + cn[i].nodeValue + "'" );  
    if ( cn[i].nodeType==1 ){
      	allInsideElements[x]=cn[i].name;
		x++;
	}

  }
  return allInsideElements;

}

function childSelectedItem(tObjClickPos, selInd , objPreifix, targetElement)
{			

		

			var ourElements = new Array();
			var elem = new Array();
			var msg='';
			var firstSelectedItems = new Array();
			var secondSelectedItems = new Array();
			var prevSelectedListItems = new Array();
			ourElements	= getDiv(targetElement);
		
			prevIndex=0;
			var tempArray = new Array();
			var SelectedArray = new Array;
			var DynamicArray = new Array;
			var currentSelBoxId;
			var currentId;
			var parentId;
			var parentIds= new Array();
			var parentSelBoxId;
			var parentElements = new Array();
			var childElements = new Array();
			tClickPos= tObjClickPos.split(objPreifix);
			ClickPos= tClickPos[1];
			var selValues= new Array();
			var selInd=0;
			var allItems=0;
			var tmpvalues=0;
			var selValuesIndex= new Array();
			//alert(ourElements.length + ", Click Pos" + ClickPos);
			// code By shuvendu
			


			for(x=0; x<eval(ourElements.length); x++)
			{	
				//alert("Test:"+tObjClickPos +" ,No of loops(x):"+x);
				var msg= "";
				var secSelectedVal = new Array();
				var removeElements = new Array();
				var selBox=document.getElementById(objPreifix+x);
				

				firstSelectedValues = GetSelectedItem(objPreifix+x);
				
				allItems = GetItem(objPreifix+x);

				if(x>=ClickPos)
				{
					if(x==ClickPos)
					{
						var selBox=document.getElementById(objPreifix+(x));
						if(!selBox.length){
							document.getElementById(targetElement).removeChild(selBox);
						}


					}else
					{

					var selBox=document.getElementById(objPreifix+(x));
					parentNode = selBox.parentNode;
					document.getElementById(targetElement).removeChild(selBox);
					}
				


				}
				


				eval('SEL' + x + ' = new Array()');
				
				for(m=0; m<firstSelectedValues.length; m++)
				{
					eval('SEL' + x + ' = firstSelectedValues');

				
				}
				
				

			}
			
}
function inArray(elem, ary)
{	
	for(j=0; j<ary.length; j++)
	{
		if(ary[j][1].split("-")[0]==elem)
		{
			return true;
		}
	}
	return false;

}

function checkArray(elem, ary)
{	
	for(j=0; j<ary.length; j++)
	{
		if(ary[j]==elem)
		{
			return true;
		}
	}
	return false;

}


function removeByIndex(arrayName,arrayIndex){ 
	arrayName.splice(arrayIndex,1); 
}
function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}
function get_firstchild(n)
{
	x=n.firstChild;
	while (x.nodeType!=1)
	{
		x=x.nextSibling;
	}
	return x;
}

function validateCreditCard(ccNumb) {  // v2.0
	var valid = "0123456789";  // Valid digits in a credit card number
	var len = ccNumb.length;  // The length of the submitted cc number
	var iCCN = parseInt(ccNumb);  // integer of ccNumb
	var sCCN = ccNumb.toString();  // string of ccNumb
	sCCN = sCCN.replace (/^s+|s+$/g,'');  // strip spaces
	var iTotal = 0;  // integer total set at zero
	var bNum = true;  // by default assume it is a number
	var bResult = false;  // by default assume it is NOT a valid cc
	var temp;  // temp variable for parsing string
	var calc;  // used for calculation of each digit
	
	// Determine if the ccNumb is in fact all numbers
	for (var j=0; j<len; j++) {
	  temp = "" + sCCN.substring(j, j+1);
	  if (valid.indexOf(temp) == "-1"){bNum = false;}
	}
	
	// if it is NOT a number, you can either alert to the fact, or just pass a failure
	if(!bNum){
	  /*alert("Not a Number");*/bResult = false;
	}
	
	// Determine if it is the proper length 
	if((len == 0)&&(bResult)){  // nothing, field is blank AND passed above # check
	  bResult = false;
	} else{  // ccNumb is a number and the proper length - let's see if it is a valid card number
	  if(len >= 15){  // 15 or 16 for Amex or V/MC
	    for(var i=len;i>0;i--){  // LOOP throught the digits of the card
	      calc = parseInt(iCCN) % 10;  // right most digit
	      calc = parseInt(calc);  // assure it is an integer
	      iTotal += calc;  // running total of the card number as we loop - Do Nothing to first digit
	      i--;  // decrement the count - move to the next digit in the card
	      iCCN = iCCN / 10;                               // subtracts right most digit from ccNumb
	      calc = parseInt(iCCN) % 10 ;    // NEXT right most digit
	      calc = calc *2;                                 // multiply the digit by two
	      // Instead of some screwy method of converting 16 to a string and then parsing 1 and 6 and then adding them to make 7,
	      // I use a simple switch statement to change the value of calc2 to 7 if 16 is the multiple.
	      switch(calc){
	        case 10: calc = 1; break;       //5*2=10 & 1+0 = 1
	        case 12: calc = 3; break;       //6*2=12 & 1+2 = 3
	        case 14: calc = 5; break;       //7*2=14 & 1+4 = 5
	        case 16: calc = 7; break;       //8*2=16 & 1+6 = 7
	        case 18: calc = 9; break;       //9*2=18 & 1+8 = 9
	        default: calc = calc;           //4*2= 8 &   8 = 8  -same for all lower numbers
	      }                                               
	    iCCN = iCCN / 10;  // subtracts right most digit from ccNum
	    iTotal += calc;  // running total of the card number as we loop
	  }  // END OF LOOP
	  if ((iTotal%10)==0){  // check to see if the sum Mod 10 is zero
	    bResult = true;  // This IS (or could be) a valid credit card number.
	  } else {
	    bResult = false;  // This could NOT be a valid credit card number
	    }
	  }
	}
	// change alert to on-page display or other indication as needed.
	if(bResult) {
	  return true;
	}
	if(!bResult){
		return false;
	
	}
}


function uplaodImageName(tempphoto ,  prevUplaodedImage , nophoto)
{
    if(tmpphoto = document.getElementById(tempphoto))
	{  
	    var tmpSrc='';
	    
	    
	    nophotoCheck = tmpphoto.src.split(nophoto);
	    prevImageSrc= document.getElementById(prevUplaodedImage).src;
       
	    if(nophotoCheck.length==1  && (    prevImageSrc!=tmpphoto) )
	    {
	       tmpSrc= tmpphoto.src
	    }
	      	    
	    
	    return tmpSrc;
	    
	    
	}
    
}

function urlEncode(text)
{
    /* Force JavaScript to always treat 'text' as a string. */
    text += '';

    /* encodeURIComponent() doesn't handle the ' character. */
    text = text.replace(/\'/g, '%27');
    
    /* Don't use escape(), as it doesn't properly handle UTF-8. */
    text = encodeURIComponent(text);

    return text;
}



function containSpecialCharacters(str, exclude) 
{
    
    var iChars = "! #$%^&*()+=[]\\\';,/{}|\":<>?";
    if(exclude) {
        for (var j=0; j < exclude.length; j++) {
            iChars = iChars.replace(exclude.charAt(j), '');
        }
    }
	//alert(iChars);
    for (var i = 0; i < str.length; i++) {
        if (iChars.indexOf(str.charAt(i)) != -1) {
            return true;
        }
    }
    return false;
}



function checkFirstLastCharacter(str) {

    var iChars = "_.";

    //for First character
    if (iChars.indexOf(str.charAt(0)) != -1) {
        return true;
    }
    //for Last character
    if (iChars.indexOf(str.charAt(str.length-1)) != -1) {
        return true;
    }
}


function IsOnlyNumbers(str) 
{
	var nonums = /^[0-9]*$/;
	if (nonums.test(str))
	return true;
	else
	return false;
}



function Checkfiles(filename)
{
	 var ext = filename.substring(filename.lastIndexOf('.') + 1);
	if(ext == "gif" || ext == "GIF" || ext == "JPEG" || ext == "jpeg" || ext == "jpg" || ext == "JPG")
	{
	   return true;
	} 
	else
	{
	return false;
	}
}



function showBox(){
	//alert('showBox');
    $('overlay').show();
    center('box');
    return false;
}

function hideBox(){
	//alert('hideBox');
	$('box').hide();
    $('overlay').hide();
    return false;
}

function register_pop() {

		close_window();
		elemMessageDiv=document.getElementById("registerPop");
		document.getElementById('light').style.display='block';
		document.getElementById('fade').style.display='block';
		document.getElementById('light').innerHTML=document.getElementById('registerPop').innerHTML;
		
		document.getElementById('light').style.height	= elemMessageDiv.style.height;
		document.getElementById('light').style.width	= elemMessageDiv.style.width;

}


function login_pop() {

		close_window();
		elemMessageDiv=document.getElementById("loginPop");
		document.getElementById('light').style.display='block';
		document.getElementById('fade').style.display='block';
		document.getElementById('light').innerHTML=document.getElementById('loginPop').innerHTML;
		
		document.getElementById('light').style.height	= elemMessageDiv.style.height;
		document.getElementById('light').style.width	=document.getElementById('light').style.width+50;
		

}




function close_window()
	{
		document.getElementById('light').style.display='none';
		document.getElementById('fade').style.display='none';

	}
	
	
function checkRegistration()
{
	var pattern = /^[a-zA-Z0-9_]*$/;
	if(isNull(document.getElementById("UserFirstname").value)) {

		alert("User first name cannot be blank.");
		document.getElementById("UserFirstname").focus();
		return (false);
	}
	if( pattern.test(document.getElementById("UserFirstname").value) == false) {
		alert("Invalid user first name!");
		document.getElementById("UserFirstname").focus();
		return (false);
	}
	if(isNull(document.getElementById("UserLastname").value)) {

		alert("User last name cannot be blank.");
		document.getElementById("UserLastname").focus();
		return (false);
	}
	if( pattern.test(document.getElementById("UserLastname").value) == false) {
		alert("Invalid user Last Name!");
		document.getElementById("UserLastname").focus();
		return (false);
	}
	if(isNull(document.getElementById("UserEmail").value)) {

		alert("User email address cannot be blank.");
		document.getElementById("UserEmail").focus();
		return (false);
	}
	if(!isEmail(document.getElementById("UserEmail").value)) {

		alert("Please specify valid email address.");
		document.getElementById("UserEmail").focus();
		return (false);
	}

	if(isNull(document.getElementById("UserPassword").value)) {
		alert("Password cannot be blank.");
		document.getElementById("UserPassword").focus();
		return (false);
	}
	
	if( pattern.test(document.getElementById("UserPassword").value) == false) {
		alert("Invalid Password!");
		document.getElementById("UserPassword").focus();
		return (false);
	}

	if(document.getElementById("UserPassword").value.length < 5)
	{
		alert("Password must be atleast five characters long.");
		document.getElementById("UserPassword").focus();
		return (false);
	}
									
	return true;




}

	
	function checkLogin()
{
	if(isNull(document.getElementById("UserEmail").value)) {

		alert("User email address cannot be blank.");
		document.getElementById("UserEmail").focus();
		return (false);
	}
	if(!isEmail(document.getElementById("UserEmail").value)) {

		alert("Please specify valid email address.");
		document.getElementById("UserEmail").focus();
		return (false);
	}
	if(isNull(document.getElementById("UserPassword").value)) {
		alert("Password cannot be blank.");
		document.getElementById("UserPassword").focus();
		return (false);
	}
	
	

	if(document.getElementById("UserPassword").value.length < 5)
	{
		alert("Password must be atleast five characters long.");
		document.getElementById("UserPassword").focus();
		return (false);
	}							
	return true;




}
var sURL = unescape(window.location.pathname);

function doLoad()
{
    // the timeout value should be the same as in the "refresh" meta-tag
    setTimeout( "refresh()", 2*1000 );
}

function refresh()
{
    //  This version of the refresh function will cause a new
    //  entry in the visitor's history.  It is provided for
    //  those browsers that only support JavaScript 1.0.
    //
    window.location.href = sURL;
}


