/*

Name 		: 	dynamicTemplate.js
Author		:	Priyam Chatterjee
Date		:	10/07/2013
Description	:	File contains all the js functions for dynamic template implementation

*/

//tempattRelMap, 
//	templateId, input, output, expression, message,validationConditionMap
//		conditionalOperator, tempattId, tempattType, tempattOperator, tempattOperatorId, tempattConditionVal, tempattrelId, sequence, isStaticEnteredVal

function addValidation()
{
	var maxTemplateCondition=document.getElementById("maxTemplateCondition").value;
	//alert(maxTemplateCondition);
	
	var content="<fieldset id='conditionFieldSet_"+maxTemplateCondition+"' style='margin-bottom:20px;'><legend class='dataGroupHeader'>VALIDATION CONDITION(S)</legend>";
	content+="<table id='conditionTab_"+maxTemplateCondition+"' align='center'  border='0' cellspacing='0' cellpadding='5' width='80%' style='margin-bottom:20px;'>";
	content+="<tr align='left'><td colspan='10'><a href=\"javascript:addValidationCondition("+maxTemplateCondition+");\">Add Condition</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
	content+="<a href=\"javascript:deleteValidation('conditionFieldSet_"+maxTemplateCondition+"');\">Delete Validation</a></td></tr>";
	content+="<tr id='conditionTab_"+maxTemplateCondition+"_0'><td align='right'><input type='hidden' name='tempattRelMap["+maxTemplateCondition+"].validationConditionMap[0].conditionalOperatorId' id='valCondOperator_"+maxTemplateCondition+"_0' value='0' />-</td><td width='30%'>";
	content+="<select name='tempattRelMap["+maxTemplateCondition+"].validationConditionMap[0].tempattId' id='tempattId_"+maxTemplateCondition+"_0' style='width:200px;' onChange=\"javascript:getAllTempattTypeCombo('tempattType_"+maxTemplateCondition+"_0',this.value);\"></select>";
	content+="<select name='tempattRelMap["+maxTemplateCondition+"].validationConditionMap[0].tempattType' id='tempattType_"+maxTemplateCondition+"_0' style='width:200px;' onChange=\"javascript:getRightConditionTabContent("+maxTemplateCondition+",0,this.value);\"></select>";
	content+="<select name='tempattRelMap["+maxTemplateCondition+"].validationConditionMap[0].tempattOperatorId' id='conditionalOperator_"+maxTemplateCondition+"_0'>"+getAllOperators()+"</select>";
	content+="</td><td id='rightConditionTab_"+maxTemplateCondition+"_0' width='25%' align='left'></td><td width='20%' align='left'>-</td></tr></table>";
	content+="<label class='fieldLabel' style='margin-top:-10px;'>Message  </label><textarea name='tempattRelMap["+maxTemplateCondition+"].message' id='' rows='2' cols='150' style='resize:none;'></textarea>";
	content+="<input type='hidden' name='' id='maxCondition_"+maxTemplateCondition+"' value='1'/></fieldset>";
	
	$("#validationContent").append(content);
	document.getElementById("maxTemplateCondition").value=parseInt(maxTemplateCondition)+1;
	var tempattComboContent=getAllTempattIdCombo();
	var tempattIdComboId="#tempattId_"+maxTemplateCondition+"_0";
	$(tempattIdComboId).append(tempattComboContent);
}


//tempattRelMap, 
//	templateId, input, output, expression, message,validationConditionMap
//		conditionalOperator, conditionalOperatorId, tempattId, tempattType, tempattOperator, tempattConditionVal, tempattrelId, sequence, isStaticEnteredVal

function addValidationCondition(thisTemplateCondition)
{

	var maxValidationCondition=document.getElementById("maxCondition_"+thisTemplateCondition).value;

	var content="";
	content+="<tr id='conditionTab_"+thisTemplateCondition+"_"+maxValidationCondition+"'>";
	content+="<td align='right'><select name='tempattRelMap["+thisTemplateCondition+"].validationConditionMap["+maxValidationCondition+"].conditionalOperatorId' id='valCondOperator_"+thisTemplateCondition+"_"+maxValidationCondition+"' style='width:100px;'><option value='1'>AND</option><option value='2'>OR</option></select></td><td>";
	content+="<select name='tempattRelMap["+thisTemplateCondition+"].validationConditionMap["+maxValidationCondition+"].tempattId' id='tempattId_"+thisTemplateCondition+"_"+maxValidationCondition+"' style='width:200px;' onChange=\"javascript:getAllTempattTypeCombo('tempattType_"+thisTemplateCondition+"_"+maxValidationCondition+"',this.value);\">"+getAllTempattIdCombo()+"</select>";
	content+="<select name='tempattRelMap["+thisTemplateCondition+"].validationConditionMap["+maxValidationCondition+"].tempattType' id='tempattType_"+thisTemplateCondition+"_"+maxValidationCondition+"' style='width:200px;' onChange=\"javascript:getRightConditionTabContent("+thisTemplateCondition+","+maxValidationCondition+",this.value);\"></select>";
	content+="<select name='tempattRelMap["+thisTemplateCondition+"].validationConditionMap["+maxValidationCondition+"].tempattOperatorId' id='conditionalOperator_"+thisTemplateCondition+"_"+maxValidationCondition+"'>"+getAllOperators()+"</select>";
	content+="</td><td id='rightConditionTab_"+thisTemplateCondition+"_"+maxValidationCondition+"' width='25%' align='left'></td>";
	content+="<td width='20%' align='left'><a href=\"javascript:deleteValidationCondition('conditionTab_"+thisTemplateCondition+"_"+maxValidationCondition+"');\">Delete</a></td></tr>";
	
	var tabId="#conditionTab_"+thisTemplateCondition;
	$(tabId).append(content);
	document.getElementById("maxCondition_"+thisTemplateCondition).value=parseInt(maxValidationCondition)+1;
	
	
	
	
}

function deleteValidationCondition(deleteValidationConditionRowId)
{
	var r=confirm("Are you sure, you want to delete Condition ?")
	if (r==false) return;
	
	var deleteValidationConditionRowId="#"+deleteValidationConditionRowId;
	$(deleteValidationConditionRowId).remove();
}

function deleteValidation(deleteValidationRowId)
{
	var r=confirm("Are you sure, you want to delete Validation ?")
	if (r==false) return;
  
	var deleteValidationRowId="#"+deleteValidationRowId;
	$(deleteValidationRowId).remove();
}

function deleteExistingValidation(deleteValidationRowId, tempattRelId)
{
	var r=confirm("Are you sure, you want to delete Validation ?")
	if (r==false) return;
  
	var allDeletedTemplateRelId=document.getElementById("allDeletedTemplateRelId").value;
	if(allDeletedTemplateRelId==null || allDeletedTemplateRelId=="")	document.getElementById("allDeletedTemplateRelId").value+=tempattRelId;
	else document.getElementById("allDeletedTemplateRelId").value+=","+tempattRelId;
	
	var deleteValidationRowId="#"+deleteValidationRowId;
	$(deleteValidationRowId).remove();
	
}



function getAllTempattIdCombo()
{
	var allTempattId=document.getElementById("allTempattId").value;
	var allTempattText=document.getElementById("allTempattText").value;
	var allTempattCode=document.getElementById("allTempattCode").value;
	var allTempattId_array=allTempattId.split(",");
	var allTempattText_array=allTempattText.split("|");
	var allTempattCode_array=allTempattCode.split(",");
	
	//alert(allTempattCode_array.length);
	var tempattComboContent="<option value='0'>SELECT ATTRIBUTES</option>";
	for(var i=0;i<allTempattId_array.length;i++)
	{
		tempattComboContent+="<option value='"+allTempattId_array[i]+"'>"+allTempattText_array[i]+"("+allTempattCode_array[i]+")</option>";
	}
	return tempattComboContent;
}


function getAllTempattTypeCombo(targetComboId, thisTempattId)
{
	//alert(targetComboId);
	
	var allTempattId=document.getElementById("allTempattId").value;
	var allTempattIndicator=document.getElementById("allTempattIndicator").value;
	var allTempattOptionCount=document.getElementById("allTempattOptionCount").value;
	
	var allTempattId_array=allTempattId.split(",");
	var allTempattIndicator_array=allTempattIndicator.split(",");
	var allTempattOptionCount_array=allTempattOptionCount.split(",");
	
	var tempattTypeComboContent="<option value='0'>SELECT TYPE</option>";
	var thisIndicatorCount="";
	var thisOptionCount="";
	
	for(var i=0;i<allTempattId_array.length;i++)
	{
		if(allTempattId_array[i]==thisTempattId)
		{
			thisIndicatorCount=allTempattIndicator_array[i];
			thisOptionCount=allTempattOptionCount_array[i];
			break;
		}
		
	}
	
	if(thisOptionCount>0)	tempattTypeComboContent+="<option value='O'>OPTION(O)</option>";
	if(thisIndicatorCount>0)	tempattTypeComboContent+="<option value='I'>INDICATOR(I)</option>";
	tempattTypeComboContent+="<option value='E'>ENTERED VALUE(E)</option>";
	
	targetComboId="#"+targetComboId;
	$(targetComboId).html(tempattTypeComboContent);
	
	var rightConditionTabId=targetComboId.replace("tempattType","rightConditionTab"); 
	$(rightConditionTabId).html("");
	
}


function getAllOperators()
{
	var operator_array=new Array('==','!=','>','<','>=','<=','IN');
	var operator_text_array=new Array('EQUAL(==)','NOT EQUAL(!=)','GREATER THAN(>)','LESS THAN(<)','GREATER THAN EQUAL(>=)','LESS THAN EQUAL(<=)','IN');
	var operatorComboContent="<option value='0'>SELECT OPERATOR</option>";
	for(var i=0;i<operator_array.length;i++)
	{
		operatorComboContent+="<option value='"+(i+1)+"'>"+operator_text_array[i]+"</option>";
	}
	return operatorComboContent;
}


function getRightConditionTabContent(validationIndex, conditionIndex, tempattType)
{
	var tagetTab="#rightConditionTab_"+validationIndex+"_"+conditionIndex;
	var tempattId="tempattId_"+validationIndex+"_"+conditionIndex;
	var thisTempattId=document.getElementById(tempattId).value;
	//alert(tagetTab);
	
	
	var allTempattId=document.getElementById("allTempattId").value;
	var allTempattIndicator=document.getElementById("allTempattIndicator").value;
	var allTempattOptionCount=document.getElementById("allTempattOptionCount").value;
	var allTempattOptionId=document.getElementById("allTempattOptionId").value;
	var allTempattOptionText=document.getElementById("allTempattOptionText").value;
	
	var allTempattId_array=allTempattId.split(",");
	var allTempattIndicator_array=allTempattIndicator.split(",");
	var allTempattOptionCount_array=allTempattOptionCount.split(",");
	var allTempattOptionId_array=allTempattOptionId.split(",");
	var allTempattOptionText_array=allTempattOptionText.split("~");
	
	var thisIndicatorCount="";
	var thisOptionCount="";
	var thisOptionId="";
	var thisOptionText="";
	
	for(var i=0;i<allTempattId_array.length;i++)
	{
		if(allTempattId_array[i]==thisTempattId)
		{
			thisIndicatorCount=allTempattIndicator_array[i];
			thisOptionCount=allTempattOptionCount_array[i];
			thisOptionId=allTempattOptionId_array[i];
			thisOptionText=allTempattOptionText_array[i];
			break;
		}
		
	}
	
	var tagetTabContent="";
	if(tempattType=="E")
	{
		tagetTabContent+="<input type='radio' name='tempattRelMap["+validationIndex+"].validationConditionMap["+conditionIndex+"].isStaticEnteredVal' id='' value='0' checked/>";
		tagetTabContent+="<select name='tempattRelMap["+validationIndex+"].validationConditionMap["+conditionIndex+"].tempattConditionValEnteredTempatt' id='' style='width:200px;'>"+getAllTempattIdCombo()+"</select><br/>";
		tagetTabContent+="<input type='radio' name='tempattRelMap["+validationIndex+"].validationConditionMap["+conditionIndex+"].isStaticEnteredVal' id='' value='1'/>";
		tagetTabContent+="<input type='text' name='tempattRelMap["+validationIndex+"].validationConditionMap["+conditionIndex+"].tempattConditionValEnteredStatic' />";
	}
	else if(tempattType=="I")
	{
		tagetTabContent+="<select name='tempattRelMap["+validationIndex+"].validationConditionMap["+conditionIndex+"].tempattConditionVal' id='' style='width:200px;'><option value='0'>SELECT INDICATOR</option>";
		if(thisIndicatorCount==1)	tagetTabContent+="<option value='100'>VALUE</option>";
		else if(thisIndicatorCount==2)	tagetTabContent+="<option value='101'>PERCENTAGE</option>";
		else if(thisIndicatorCount==3 || thisIndicatorCount==4)	tagetTabContent+="<option value='100'>VALUE</option><option value='101'>PERCENTAGE</option>";
		tagetTabContent+="</select>";
		
		/* 0 - NONE, 1 - VALUE, 2 - PERCENTAGE, 3 - BOTH  */
	}
	
	else if(tempattType=="O")
	{
		/*alert(thisOptionId);
		alert(thisOptionText);*/
		
		thisOptionId = thisOptionId.replace('{','');
		thisOptionId = thisOptionId.replace('}','');
		var thisOptionId_array=thisOptionId.split("|");
		
		thisOptionText = thisOptionText.replace('{','');
		thisOptionText = thisOptionText.replace('}','');
		var thisOptionText_array=thisOptionText.split("|");
		
		tagetTabContent+="<select name='tempattRelMap["+validationIndex+"].validationConditionMap["+conditionIndex+"].optionList' id='' style='width:200px;' multiple='multiple' size='3'>";
		//tagetTabContent+="<select name='' id='' style='width:200px;'><option value='0'>SELECT OPTION</option>";
		for(var j=0;j<thisOptionId_array.length;j++)
		{
			tagetTabContent+="<option value='"+thisOptionId_array[j]+"'>"+thisOptionText_array[j]+"</option>";
			
		}
		
		tagetTabContent+="</select>";
	}
	
	
	
	$(tagetTab).html(tagetTabContent);
}





/****************************************************************************************************************************************************/

/*

Name 		: 	dynamicTemplateAttributeUpdate.js
Author		:	Priyam Chatterjee
Date		:	23/07/2013
Description	:	File contains all the js functions for dynamic template attribute updation implementation

*/

/*
CODE SEQUENCE DESCRIPTION TYPE INDICATOR TOOLTIP LENGTH WIDTH MANDATORY DISPLAY READONLY PRICEIMPACT EVALUATION OPTION 

BS 1 BASIC PRICE (PER U O M) DECIMAL NONE  16 5 Y Y N Y(1) P 
{BS|1|BASIC PRICE|101|0|DEMO TOOL TIP|16|5|Y|Y|N|1|P|0},{VT|2|VAT|101|1|DEMO TOOL TIP|16|5|Y|Y|N|1|P|2},{T1|3|TEST1|101|2|DEMO TOOL TIP|16|5|Y|Y|N|1|P|3},{T2|4|TEST2|101|3|16|5|Y|Y|N|1|P|0}
*/

//updateTempattId, updateTempattFieldId, updateTempattValueDiv, updateTempattDeleteFlag

function getUpdateAttributeValue()
{
	var thisTempattId=document.getElementById("updateTempattId").value;
	var tempattFieldId=document.getElementById("updateTempattFieldId").value;
	
	
	/* CODE BLOCK FOR RESTRICTING DELETETION OF DEFAULT TEMPLATE ATTRIBUTES START */
	
	
	var allTempattId=document.getElementById("allTempattId").value;
	var allTempattId_array=allTempattId.split(",");
	
	var allAttributeId=document.getElementById("allAttributeId").value;
	var allAttributeId_array=allAttributeId.split(",");
	
	var allDefaultAttrId=document.getElementById("allDefaultAttrId").value;
	var allDefaultAttrId_array=allDefaultAttrId.split(",");
	
	var thisAttributeId="";
	
	for(var i=0;i<allTempattId_array.length;i++)
	{
		if(allTempattId_array[i]==thisTempattId)
		{
			thisAttributeId=allAttributeId_array[i];
			break;
		}
	}
	
	var initialDefAttrFlag = 0; 
	for(var k=0;k<allDefaultAttrId_array.length;k++)
	{
		if(thisAttributeId==allDefaultAttrId_array[k])
		{
			initialDefAttrFlag=1;
			break;
		}
	}
	
	if(initialDefAttrFlag==1)	document.getElementById("updateTempattDeleteFlag").disabled=true;
	else document.getElementById("updateTempattDeleteFlag").disabled=false;
	
	document.getElementById("updateTempattDeleteFlag").checked=false;
	
	
	/* CODE BLOCK FOR RESTRICTING DELETETION OF DEFAULT TEMPLATE ATTRIBUTES START */
	
	
	
	//alert(thisTempattId+" : "+tempattFieldId);
	$('#updateTempattOptionDiv').html("");
	
	var selectUpdateFlag=0;
	var selectUpdateVal="";
	
	var htmlContent="";
	if(thisTempattId!="" && tempattFieldId!="")
	{
		//alert("Applicable for value div");
		
		var allTempattFieldVal=document.getElementById("allTempattFieldVal").value;
		var allTempattFieldVal_array=allTempattFieldVal.split("~");
		
		var allTempattId=document.getElementById("allTempattId").value;
		var allTempattId_array=allTempattId.split(",");
		
		var allTempattOptionId=document.getElementById("allTempattOptionId").value;
		var allTempattOptionText=document.getElementById("allTempattOptionText").value;
		var allTempattOptionSequence=document.getElementById("allTempattOptionSequence").value;
		var allTempattOptionId_array=allTempattOptionId.split(",");
		var allTempattOptionText_array=allTempattOptionText.split("~");
		var allTempattOptionSequence_array=allTempattOptionSequence.split(",");
		
		var allDefaultAttrId=document.getElementById("allDefaultAttrId").value;
		var allDefaultAttrId_array=allDefaultAttrId.split(",");
		
		var allAttributeId=document.getElementById("allAttributeId").value;
		var allAttributeId_array=allAttributeId.split(",");
		
		
		
		
		var thisOptionId="";
		var thisOptionText="";
		var thisOptionSequence="";
		var thisTempattFieldVal="";
		var thisAttributeId="";
		
		var thisOptionId_array;
		var thisOptionText_array;
		var thisTempattFieldVal_array;
		var thisOptionSequence_array;
		
		var test="";
		
		for(var i=0;i<allTempattId_array.length;i++)
		{
			if(allTempattId_array[i]==thisTempattId)
			{
				thisOptionId=allTempattOptionId_array[i];
				thisOptionId = thisOptionId.replace('{','');
				thisOptionId = thisOptionId.replace('}','');
				thisOptionId_array=thisOptionId.split("|");
				
				thisOptionText=allTempattOptionText_array[i];
				thisOptionText = thisOptionText.replace('{','');
				thisOptionText = thisOptionText.replace('}','');
				thisOptionText_array=thisOptionText.split("|");
				
				thisOptionSequence=allTempattOptionSequence_array[i];
				thisOptionSequence = thisOptionSequence.replace('{','');
				thisOptionSequence = thisOptionSequence.replace('}','');
				thisOptionSequence_array=thisOptionSequence.split("|");
				
				thisTempattFieldVal=allTempattFieldVal_array[i];
				
				//test=thisTempattFieldVal;
				
				thisTempattFieldVal = thisTempattFieldVal.replace('{','');
				thisTempattFieldVal = thisTempattFieldVal.replace('}','');
				thisTempattFieldVal_array=thisTempattFieldVal.split("|");
				
				thisAttributeId=allAttributeId_array[i];
				
				break;
			}
			
		}
		
		//alert(test);
		
		document.getElementById("updateAttributeId").value=thisAttributeId;
		
		var defAttrFlag = 0; 
		for(var k=0;k<allDefaultAttrId_array.length;k++)
		{
			if(thisAttributeId==allDefaultAttrId_array[k])
			{
				defAttrFlag=1;
				break;
			}
		}
		
		if(defAttrFlag==1 && tempattFieldId!=1 && tempattFieldId!=2 && tempattFieldId!=14)
		{
			alert("You cannot update the selected field for default attribute");
			$('#updateTempattValueDiv').html(htmlContent);
			document.getElementById("updateTempattId").value=0;
			document.getElementById("updateTempattFieldId").value=0;
			return;
		}
		
		
		var indicatorSelectOption="<option value='0'>NONE</option><option value='1'>VALUE</option><option value='2'>PERCENTAGE</option><option value='3'>BOTH(VALUE DEF)</option><option value='4'>BOTH(PERCENTAGE DEF)</option>";
		var generalSelectOPtion="<option value='Y'>Y</option><option value='N'>N</option>";
		var priceImpactSelectOPtion="<option value='1'>Y</option><option value='0'>N</option>";
		var evaluationSelectOPtion="<option value='C'>C</option><option value='P'>P</option><option value='T'>T</option><option value='Y'>Y</option>";
		var dfltValSrcSelectOPtion="<option value='0'>NA</option><option value='1'>CONSTANT</option><option value='100'>RFQ ATTR</option><option value='101'>RFQ ITEM ATTR</option><option value='200'>QTN HEADER ATTR</option><option value='201'>QTN ITEM ATTR</option><option value='500'>ATTR IN WORDS</option><option value='401'>ORDER ITEM ATTR</option>";
		var tempattDisplaySelectOPtion="<option value='A'>A</option><option value='H'>H</option><option value='S'>S</option><option value='B'>B</option><option value='N'>N</option>";
		var isOptionFlag=0;
		var csviewSelectOPtion="<option value='A'>A</option><option value='N'>N</option>";
		
		
		var viewTypeSelectOption="";
		
		var allViewTypeId=document.getElementById("allViewTypeId").value;
		var allViewTypeId_array=allViewTypeId.split(",");
		
		
		var allViewTypeText=document.getElementById("allViewTypeText").value;
		var allViewTypeText_array=allViewTypeText.split("|");
		
		for(i=0;i<allViewTypeId_array.length;i++){
			viewTypeSelectOption+="<option value='"+allViewTypeId_array[i]+"'>"+allViewTypeText_array[i]+"</option>";
		}
		
		//alert(thisTempattFieldVal_array);
		
		if(tempattFieldId==1) //CODE
		{
			htmlContent+="<input type='text' name='templateUpdateAttribute.tempattVal' value='"+thisTempattFieldVal_array[0]+"'>";
		
		}
		else if(tempattFieldId==2)	//SEQUENCE 
		{
			htmlContent+="<input type='text' name='templateUpdateAttribute.tempattVal' value='"+thisTempattFieldVal_array[1]+"'>";
		}
		else if(tempattFieldId==3)	//DESCRIPTION 
		{
			htmlContent+="<input type='text' name='templateUpdateAttribute.tempattVal' value='"+thisTempattFieldVal_array[2]+"'>";
		}
		else if(tempattFieldId==4)	//TYPE
		{
			htmlContent+="<select name='templateUpdateAttribute.tempattVal' id='updateAttributeVal' size='3' style='width:200px;'>"+getAttValTypeOptions()+"</select>";
			selectUpdateFlag=1;
			selectUpdateVal=thisTempattFieldVal_array[3];
		
		}
		else if(tempattFieldId==5)	//INDICATOR
		{
			htmlContent+="<select name='templateUpdateAttribute.tempattVal' id='updateAttributeVal' size='3' style='width:200px;'>"+indicatorSelectOption+"</select>";
			selectUpdateFlag=1;
			selectUpdateVal=thisTempattFieldVal_array[4];
			
		}
		else if(tempattFieldId==6)	//TOOLTIP
		{
			htmlContent+="<input type='text' name='templateUpdateAttribute.tempattVal' value='"+thisTempattFieldVal_array[5]+"'>";
		}
		else if(tempattFieldId==7)	//LENGTH
		{
			htmlContent+="<input type='text' name='templateUpdateAttribute.tempattVal' value='"+thisTempattFieldVal_array[6]+"'>";
			htmlContent+="<input type='hidden' name='templateUpdateAttribute.tempattExtraVal' value='"+thisTempattFieldVal_array[7]+"'>";
					
		}
		else if(tempattFieldId==8)	//WIDTH
		{
			htmlContent+="<input type='text' name='templateUpdateAttribute.tempattVal' value='"+thisTempattFieldVal_array[7]+"'>";
			htmlContent+="<input type='hidden' name='templateUpdateAttribute.tempattExtraVal' value='"+thisTempattFieldVal_array[6]+"'>";
		}
		else if(tempattFieldId==9)	//MANDATORY
		{
			htmlContent+="<select name='templateUpdateAttribute.tempattVal' id='updateAttributeVal' size='3' style='width:200px;'>"+generalSelectOPtion+"</select>";
			selectUpdateFlag=1;
			selectUpdateVal=thisTempattFieldVal_array[8];
		
		}
		else if(tempattFieldId==10)	//DISPLAY
		{
			htmlContent+="<select name='templateUpdateAttribute.tempattVal' id='updateAttributeVal' size='3' style='width:200px;'>"+generalSelectOPtion+"</select>";
			selectUpdateFlag=1;
			selectUpdateVal=thisTempattFieldVal_array[9];
		}
		else if(tempattFieldId==11)	//READONLY
		{
			htmlContent+="<select name='templateUpdateAttribute.tempattVal' id='updateAttributeVal' size='3' style='width:200px;'>"+generalSelectOPtion+"</select>";
			selectUpdateFlag=1;
			selectUpdateVal=thisTempattFieldVal_array[10];
		
		}
		else if(tempattFieldId==12)	//PRICEIMPACT
		{
			htmlContent+="<select name='templateUpdateAttribute.tempattVal' id='updateAttributeVal' size='3' style='width:200px;'>"+priceImpactSelectOPtion+"</select>";
			selectUpdateFlag=1;
			selectUpdateVal=thisTempattFieldVal_array[11];
	
		}
		
		
		else if(tempattFieldId==13)	//EVALUATION 
		{
			htmlContent+="<select name='templateUpdateAttribute.tempattVal' id='updateAttributeVal' size='3' style='width:200px;'>"+evaluationSelectOPtion+"</select>";
			selectUpdateFlag=1;
			selectUpdateVal=thisTempattFieldVal_array[12];
		}
		else if(tempattFieldId==14)	//OPTION 
		{
			isOptionFlag=1;
			var optionValHtml="<OPTION VALUE='0' style='font-weight:bold;'>NEW OPTION</OPTION>";
			for(var j=0;j<thisOptionId_array.length;j++)
			{
				optionValHtml+="<OPTION VALUE='"+thisOptionId_array[j]+"'>"+thisOptionText_array[j]+"</OPTION>";
			}
			
			htmlContent+="<select name='templateUpdateAttribute.tempattOptionId' id='updateTempattOptionId' size='3' style='width:250px;' onChange=\"javascript:getTempattOptionContent('"+thisOptionSequence+"',this.value);\">"+optionValHtml+"</select>";
		
		}
		
		else if(tempattFieldId==15)	//DFLTVALSCR 
		{
			htmlContent+="<select name='templateUpdateAttribute.tempattVal' id='updateAttributeVal' size='3' style='width:200px;'>"+dfltValSrcSelectOPtion+"</select>";
			selectUpdateFlag=1;
			selectUpdateVal=thisTempattFieldVal_array[14];
		
		}
		
		else if(tempattFieldId==16)	//DFLTVALEXP 
		{
			htmlContent+="<input type='text' name='templateUpdateAttribute.tempattVal' value='"+thisTempattFieldVal_array[15]+"'>";
		
		}
		else if(tempattFieldId==17)	//TEMPATTDISPLAY
		{
			htmlContent+="<select name='templateUpdateAttribute.tempattVal' id='updateAttributeVal' size='3' style='width:200px;'>"+tempattDisplaySelectOPtion+"</select>";
			selectUpdateFlag=1;
			selectUpdateVal=thisTempattFieldVal_array[16];
		}
		else if(tempattFieldId==18)	//VIEWTYPE
		{
			htmlContent+="<select name='templateUpdateAttribute.tempattVal' id='updateAttributeVal' size='3' style='width:200px;'>"+viewTypeSelectOption+"</select>";
			selectUpdateFlag=1;
			selectUpdateVal=thisTempattFieldVal_array[17];
		}
		
		else if(tempattFieldId==19)	//CSVIEW
		{
			htmlContent+="<select name='templateUpdateAttribute.tempattVal' id='updateAttributeVal' size='3' style='width:200px;'>"+csviewSelectOPtion+"</select>";
			selectUpdateFlag=1;
			selectUpdateVal=thisTempattFieldVal_array[18];
	
		}
		
		
		htmlContent+="<input type='hidden' name='templateUpdateAttribute.isOption' value='"+isOptionFlag+"'>";
		
	}
	
	
	
	$('#updateTempattValueDiv').html(htmlContent);
	
	//alert(selectUpdateVal);
	
	if(selectUpdateFlag==1)	document.getElementById("updateAttributeVal").value=selectUpdateVal;
	
}


function getAttValTypeOptions()
{
	var allAttValtypeId=document.getElementById("allAttValtypeId").value;
	var allAttValtypeId_array=allAttValtypeId.split(",");
	
	var allAttValtypeText=document.getElementById("allAttValtypeText").value;
	var allAttValtypeText_array=allAttValtypeText.split("|");
	
	var attValTypeHtml="";
	for(var j=0;j<allAttValtypeId_array.length;j++)
	{
		attValTypeHtml+="<OPTION VALUE='"+allAttValtypeId_array[j]+"'>"+allAttValtypeText_array[j]+"</OPTION>";
	}
	
	return attValTypeHtml;
}


function getTempattOptionContent(thisOptionSequence,tempattOptionId)
{
	var thisOptionSequence_array=thisOptionSequence.split("|");
	var tempattOptionVal=document.getElementById("updateTempattOptionId").options[document.getElementById("updateTempattOptionId").selectedIndex].text;
	var tempattOptionSequence=thisOptionSequence_array[document.getElementById("updateTempattOptionId").selectedIndex-1];
	
	if(tempattOptionId==0)
	{
		tempattOptionVal="";
		tempattOptionSequence="";
	}
	
	
	var tempattOptionContent="<div style='width:245px;border: 2px groove #353535;'><table align='center'  border='0' cellspacing='0' cellpadding='2'>";
	tempattOptionContent+="<tr class='columnClass'><td class='fieldLabel' align='right'>Value</td><td class='fieldLabel' align='left'><input type='text' name='templateUpdateAttribute.tempattOptionVal' value='"+tempattOptionVal+"'></td></tr>";
	tempattOptionContent+="<tr class='columnClass'><td class='fieldLabel' align='right'>Sequence</td><td class='fieldLabel' align='left'><input type='text' name='templateUpdateAttribute.tempattOptionSequence' value='"+tempattOptionSequence+"'></td></tr>";
	tempattOptionContent+="<tr class='columnClass'><td class='fieldLabel' align='right'><input type='checkbox' name='templateUpdateAttribute.tempattOptionDeleteFlag' value='1'/></td><td class='fieldLabel' align='left'>Delete</td></tr>";
	tempattOptionContent+="</table></div>";
	
	$('#updateTempattOptionDiv').html(tempattOptionContent);
}


function processDiv(itemIndex,attrIndex,entityId, scope){
	
	//"quotationItem[${status.index}].templateAttributeValues[${status1.index}].attributeOptionValue
	//alert(itemIndex+":25:"+attrIndex);
	
	 if (scope === undefined) {
		 scope = 1;
	 } 
	
	var tempattNameString="";
	var selectorString="";
	
	//QUOTATIONITEM
	if(entityId==201){
		tempattNameString="quotationItem["+itemIndex+"].templateAttributeValues["+attrIndex+"].";
		selectorString="tr[id^='"+itemIndex+"_']";
	}
	//RFQ HEADER
	else if(entityId==100){
		tempattNameString="templateAttributeValues["+attrIndex+"].";
		selectorString="tr[id*='_']";
	}
	//QUOTATION HEADER
	else if(entityId==200){
		tempattNameString="defaultItem.templateAttributeValues["+attrIndex+"].";
		selectorString="tr[id*='_']";
	}
	//alert($("tr[id*='_']").length);
	
	//alert(tempattNameString);
	
	var thisEnteredValue=document.getElementById(tempattNameString+"attributeOptionValue").value;
	//alert(thisEnteredValue);
	
	var thisTempattId=document.getElementById(tempattNameString+"templateAttribute.id").value;
	var newValidationString=document.getElementById(tempattNameString+"templateAttribute.hiddenString").value;
	var disabledString=document.getElementById(tempattNameString+"templateAttribute.disableString").value;
	
	
		
	if(newValidationString!="" && newValidationString!=null){
		
		
		/* PREPARATION ARRAY OF CONCERNED ATTRIBUTES START  */
		
		
		//var newValidationString_array=newValidationString.split("|");
			
			
		/* PREPARATION ARRAY OF CONCERNED ATTRIBUTES END  */
	/*	
		$(selectorString).each(function(i) {
			
			var thisIdString=this.id;
			var thisIdString_array=thisIdString.split("_");
			var thisId=thisIdString_array[1];
			
			$("[value='"+thisId+"'][name$='templateAttribute\\.id']").each(function(i) {
							
							var thisLoopId=this.id;
							var thisIndex=thisLoopId.substring(thisLoopId.lastIndexOf("[")+1,thisLoopId.lastIndexOf("]"));
							//alert("resultIndex : "+thisIndex);
							if(thisIndex>attrIndex){
								
								if(entityId==201){
									//alert(itemIndex+"_"+thisId);
									document.getElementById(itemIndex+"_"+thisId).style.display="block";
									if($("#"+itemIndex+"_"+thisId).find('select').length > 0){
										$("#"+itemIndex+"_"+thisId).find('select').prop('selectedIndex',0);
									}
								}
								//RFQ HEADER
								else if(entityId==100){
									//alert(thisIndex+"_"+thisId);
									document.getElementById(thisIndex+"_"+thisId).style.display="block";
									if($("#"+thisIndex+"_"+thisId).find('select').length > 0){
										$("#"+thisIndex+"_"+thisId).find('select').prop('selectedIndex',0);
									}
								}
								
								
								
							}
			});
			
			
	});*/
	
		
		
		//1006~3003,3004|1007~3005
		/*var newValidationString_array=newValidationString.split("|");
		for(var j=0;j<newValidationString_array.length;j++)
		{
			var newValidationLevel1String_array=newValidationString_array[j].split("~");
			var targetValue=newValidationLevel1String_array[0];
			
			if(targetValue==thisEnteredValue){
				var newValidationLevel2String_array=newValidationLevel1String_array[1].split(",");
				for(var i=0;i<newValidationLevel2String_array.length;i++)
				{
					var targetTempattId=newValidationLevel2String_array[i];
					document.getElementById(itemIndex+"_"+targetTempattId).style.display="none";
				}
			
			}
			
		}*/
		
		/******************************************************************************************/
		
		
		//161184-194588+x1-x2~161186,161187|161184-194589~161192
		
		var newValidationString_array=newValidationString.split("|");
		var allInvalidCount=0;
		
		/******************************************************************************************/
		
		for(var j=0;j<newValidationString_array.length;j++)
		{
			
			var newValidationLevel1String_array=newValidationString_array[j].split("~");
			
			var newValidationLevel1String_multiple_array=newValidationLevel1String_array[0].split("+");
				//alert(newValidationLevel1String_array[1]);
				var newValidationLevel2String_array=newValidationLevel1String_array[1].split(",");
				for(var i=0;i<newValidationLevel2String_array.length;i++)
				{
						var targetTempattId=newValidationLevel2String_array[i];
						
						if(entityId==201){
							document.getElementById(itemIndex+"_"+targetTempattId).style.display="block";
							if(scope==1 && $("#"+itemIndex+"_"+targetTempattId).find('select[name$="attributeOptionValue"]').length > 0){
								$("#"+itemIndex+"_"+targetTempattId).find('select[name$="attributeOptionValue"]').prop('selectedIndex',0);
							}
							$("#"+itemIndex+"_"+targetTempattId).find('[name$="tempattValDisplay"]').prop('value','Y');
						}
						else if(entityId==100 || entityId==200){
							
							$("tr[id$='_"+targetTempattId+"']").each(function(i) {
								
								var thisIdString=this.id;
								document.getElementById(thisIdString).style.display="block";
								if(scope==1 && $("#"+thisIdString).find('[name$="attributeOptionValue"]').length > 0){
									$("#"+thisIdString).find('[name$="attributeOptionValue"]').prop('selectedIndex',0);
								}
								$("#"+thisIdString).find('[name$="tempattValDisplay"]').prop('value','Y');
							});
						}
						
												
				}
			
						
		}
		
		/******************************************************************************************/
		
		for(var j=0;j<newValidationString_array.length;j++)
		{
			
			var newValidationLevel1String_array=newValidationString_array[j].split("~");
			
			var newValidationLevel1String_multiple_array=newValidationLevel1String_array[0].split("+");
			
			var invalidCount=0;
			for(var x=0;x<newValidationLevel1String_multiple_array.length;x++){
				var actualVal_array=newValidationLevel1String_multiple_array[x].split("-");
				
				var targetValue=actualVal_array[1];
		
					$("[value='"+actualVal_array[0]+"'][name$='templateAttribute\\.id']").each(function(i) {
			
						var thisId=this.id;
						var thisIndex=thisId.substring(thisId.lastIndexOf("[")+1,thisId.lastIndexOf("]"));
						//alert("thisId : "+thisId)
						var thisEnteredValId=this.id.replace("templateAttribute.id","attributeOptionValue");
						//alert("thisEnteredValId : "+thisEnteredValId)
						var thisEnteredVal=document.getElementById(thisEnteredValId).value;
						//alert("thisEnteredVal : "+thisEnteredVal)
						if(targetValue!=thisEnteredVal){
							invalidCount++;
							allInvalidCount++;
						}
						
					});
					
			}
			
			if(invalidCount==0){
				var newValidationLevel2String_array=newValidationLevel1String_array[1].split(",");
				for(var i=0;i<newValidationLevel2String_array.length;i++)
				{
						var targetTempattId=newValidationLevel2String_array[i];
						
						if(entityId==201){
							document.getElementById(itemIndex+"_"+targetTempattId).style.display="none";
							//alert(itemIndex+"_"+targetTempattId+"::"+$("#"+itemIndex+"_"+targetTempattId).find('select[name$="attributeOptionValue"]').length);
							if(scope==0 && $("#"+itemIndex+"_"+targetTempattId).find('select[name$="attributeOptionValue"]').length > 0){
								$("#"+itemIndex+"_"+targetTempattId).find('select[name$="attributeOptionValue"]').prop('selectedIndex',0);
							}
							$("#"+itemIndex+"_"+targetTempattId).find('[name$="tempattValDisplay"]').prop('value','N');
						}
						else if(entityId==100 || entityId==200){
							
							$("tr[id$='_"+targetTempattId+"']").each(function(i) {
								
								var thisIdString=this.id;
								document.getElementById(thisIdString).style.display="none";
								if(scope==0 && $("#"+thisIdString).find('select[name$="attributeOptionValue"]').length > 0){
									$("#"+thisIdString).find('select[name$="attributeOptionValue"]').prop('selectedIndex',0);
								}
								$("#"+thisIdString).find('[name$="tempattValDisplay"]').prop('value','N');
							});
						}
						
												
				}
			}
					
			
			/*var targetValue=newValidationLevel1String_array[0];
			
			if(targetValue==thisEnteredValue){
				var newValidationLevel2String_array=newValidationLevel1String_array[1].split(",");
				for(var i=0;i<newValidationLevel2String_array.length;i++)
				{
					var targetTempattId=newValidationLevel2String_array[i];
					document.getElementById(targetTempattId).style.display="none";
				}
			
			}*/
			
		}
		
		
		
		
	}
	
	if(disabledString!="" && disabledString!=null){

		$("select[name$='attributeOptionValue']").each(function(i) {
				
				var thisId=this.id;
				var firstIndex=thisId.substring(thisId.indexOf("[")+1,thisId.indexOf("]"));
				var thisIndex=thisId.substring(thisId.lastIndexOf("[")+1,thisId.lastIndexOf("]"));
				//alert(firstIndex+" : "+thisIndex);
				if(firstIndex==itemIndex){
					if(thisIndex>attrIndex){
						if(entityId==201){
							$("#quotationItem\\["+itemIndex+"\\]\\.templateAttributeValues\\["+thisIndex+"\\]\\.attributeOptionValue").find("option").each(function(i) {
								$(this).prop('disabled', false);
							});
						}
						else if(entityId==200){
							$("#defaultItem\\.templateAttributeValues\\["+thisIndex+"\\]\\.attributeOptionValue").find("option").each(function(i) {
								$(this).prop('disabled', false);
							});
						}
						
						
						/*var myOpts = document.getElementById(thisId).options;
						for(x=0;x<myOpts.length;x++){
							//alert(myOpts[x].value);
							$("option[value='"+myOpts[x].value+"']").each(function(i) {
								$(this).prop('disabled', false);
							});
						}*/
					}
					
				}
			
			});
		
		
		//FOR DISABLED
		//1005~3003-2002,2003|1005~3003-2002,2003
		//alert(disabledString);
		var disabledString_array=disabledString.split("|");
		for(var j=0;j<disabledString_array.length;j++)
		{
			var disabledStringLevel1_array=disabledString_array[j].split("~");
			var targetValue=disabledStringLevel1_array[0];
			
			if(targetValue==thisEnteredValue){
				var disabledStringLevel2_array=disabledStringLevel1_array[1].split("-");
				var targetTempattId=disabledStringLevel2_array[0];
				var disabledStringLevel3_array=disabledStringLevel2_array[1].split(",");
				
				$("[value='"+targetTempattId+"'][name$='templateAttribute\\.id']").each(function(i) {
					
					var thisLoopId=this.id;
					var thisIndex=thisLoopId.substring(thisLoopId.lastIndexOf("[")+1,thisLoopId.lastIndexOf("]"));
					//alert(thisIndex);
					
					for(var i=0;i<disabledStringLevel3_array.length;i++)
					{
						var targetOptionVal=disabledStringLevel3_array[i];
						
						
						if(entityId==201){
							$("#quotationItem\\["+itemIndex+"\\]\\.templateAttributeValues\\["+thisIndex+"\\]\\.attributeOptionValue").find("option[value='"+targetOptionVal+"']").each(function(i) {
								$(this).prop('disabled', true);
							});
						}
						else if(entityId==200){
							$("#defaultItem\\.templateAttributeValues\\["+thisIndex+"\\]\\.attributeOptionValue").find("option[value='"+targetOptionVal+"']").each(function(i) {
								$(this).prop('disabled', true);
							});
						}
						
					}
					
				});
			}
			
		}
	}
	
	
}


function processAllDiv(entityId){
	//alert("test");
	
	//QUOTATIONITEM
	if(entityId==201){
		$("select[name^='quotationItem'][name$='attributeOptionValue']").each(function(i) {
			
			var thisId=this.id;
			var firstIndex=thisId.substring(thisId.indexOf("[")+1,thisId.indexOf("]"));
			var thisIndex=thisId.substring(thisId.lastIndexOf("[")+1,thisId.lastIndexOf("]"));
			//alert(this.value+" : "+thisId+" - "+firstIndex+" : "+thisIndex);
			
			processDiv(firstIndex,thisIndex,201,0);
			
		
		});
	}
	else if(entityId==100){
		
			$("select[name^='templateAttributeValues'][name$='attributeOptionValue']").each(function(i) {
						
						var thisId=this.id;
						var firstIndex=thisId.substring(thisId.indexOf("[")+1,thisId.indexOf("]"));
						var thisIndex=thisId.substring(thisId.lastIndexOf("[")+1,thisId.lastIndexOf("]"));
						//alert(this.value+" : "+thisId+" - "+firstIndex+" : "+thisIndex);
						
						processDiv(firstIndex,thisIndex,100,0);
						
					
			});
	}
	else if(entityId==200){
		
		$("select[name^='defaultItem'][name$='attributeOptionValue']").each(function(i) {
					
					var thisId=this.id;
					var firstIndex=thisId.substring(thisId.indexOf("[")+1,thisId.indexOf("]"));
					var thisIndex=thisId.substring(thisId.lastIndexOf("[")+1,thisId.lastIndexOf("]"));
					//alert(this.value+" : "+thisId+" - "+firstIndex+" : "+thisIndex);
					
					processDiv(firstIndex,thisIndex,200,0);
					
				
		});
	}
	
	
	
	
}









