﻿//if there is two space in a value this is a problem, need to fix.


/// GENERAL

var Max_y=0
var Max_rows=0
RowCounter=0
DupVal=0
RowToDup=0
refreshWin=false
function LTrim( value ) {	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

function showKeyCode(e){
	if (e.keyCode==116){
		refreshWin=true
	}
}
function dontlogout(){
	refreshWin=true
}
function onClose(){
	if (refreshWin==false){
		if (LogOutPressed){
			DelCookie("NbtLtdCookie")
		}else{
			var ok = confirm("Are you sure do you want to logout ?")
			if (ok){
				DelCookie("NbtLtdCookie")
			}
		}
	}
}

function DelCookie(c_name){
	sValue=""
	if (document.cookie.length>0) {
		document.cookie = c_name + "=" + escape(sValue) + "; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
	}	
}
function test(){
	alert("test")
}
function refreshWinow(){
	refreshWin=true
	history.go()
}
function setMode(strMode){
	objModeType=document.getElementById('ModeType') 
	objModeType.innerHTML=strMode+" Mode"
}
function setMsg(StrMsg){
	MsgObj=document.getElementById('SentMsg') 
	MsgObj.innerHTML=StrMsg
}

onerror=handleErr
function handleErr(msg,url,l){
	var txt=""
	txt="There was an error on this page.\n\n"
	txt+="Error: " + msg + "\n"
	txt+="URL: " + url + "\n"
	txt+="Line: " + l + "\n\n"
	txt+="Click OK to continue.\n\n"
	alert(txt)
	return true
}
function rowOVER(val){
	var row=document.getElementById('row'+val)	
	var Check=document.getElementById('Check'+val)		
	if (Check.disabled==false){
		if (row.className!="ShadeCHECKEDerr"){
			if (Check.checked){
				row.className='ShadeCHECKED'
			}else{
				row.className='ShadeOVER'		
			}
		}
	}	
}
function rowNORMAL(val){
	var row=document.getElementById('row'+val)	
	var Check=document.getElementById('Check'+val)	
	if (row.className!="ShadeCHECKEDerr"){	
		if (Check.checked){
			row.className='ShadeCHECKED'
		}else{
			row.className='ShadeNORMAL'		
		}	
	}	
}
function rowCHECKED(val){
	var row=document.getElementById('row'+val)	
	var Check=document.getElementById('Check'+val)	
	if (Check.disabled==false){	
		if (Check.checked){			
			row.className='ShadeCHECKED'
		}	
	}
	EnableDisableBut()
}
function rowERROR(val){
	var row=document.getElementById('row'+val)	
	row.className='ShadeCHECKEDerr'
}
function newRowERROR(val){
	var row=document.getElementById('AddRow'+val)	
	row.className='ShadeCHECKEDerr'
}
function newRowNORMAL(val){
	var row=document.getElementById('AddRow'+val)	
	row.className='ShadeADD'
}


function EnableDisableBut(){
	CheckedNum=0
	var CheckAll=document.getElementById('CheckAll')
	for (i=0;i<CheckAll.value;i++){
		check=document.getElementById("Check"+i)
		if (check.checked){
			CheckedNum++
		}
	}	
	
	if (CheckedNum==0){
		Disable('cmdEditAll')
		Disable('cmdDelAll')
		
	}else
	{
		Enable('cmdEditAll')
		Enable('cmdDelAll')
	}	
}

function Enable(id){
	ObjId=document.getElementById(id)
	ObjId.disabled=false
}
function Disable(id){
	ObjId=document.getElementById(id)
	ObjId.disabled=true
}
function DisableRowsChecked(Str){
	StrAry=getCheckedAry()
	for (i=1;i<=StrAry.length-1;i++){		
		Disable(Str+Number(StrAry[i]))
	}
}
function EnableRowsChecked(Str){
	StrAry=getCheckedAry()
	for (i=1;i<=StrAry.length-1;i++){		
		Enable(Str+Number(StrAry[i]))
	}
}
function ChangeDbTable(obj){
	refreshWin=true	
	window.location.href=obj.options[obj.selectedIndex].value;
}
function ShowUpdateMsg(x){	
	document.getElementById('updateMsg').innerHTML=x
	tClearElemText=setTimeout("ClearElemText()",(5000))
}

function CheckAllRows(obj){
	for (i=0;i<obj.value;i++){
		row=document.getElementById('row'+i)	
		check=document.getElementById("Check"+i)
		if (check.disabled){
			check.checked=false
		}else{
			if (obj.checked){				
				row.className='ShadeCHECKED'
			}else{
				row.className='ShadeNORMAL'		
			}
			check.checked=obj.checked
		}			
	}
	EnableDisableBut()
}
function getCheckedStr(){
	str=""	
	for (i=0;i<RowNums;i++){
		check=document.getElementById("Check"+i)		
		if (check.checked){
			str=str+"_"+i
		}
			
	}
	
	return str
}

function getCheckedAry(){
	str=""	
	for (i=0;i<RowNums;i++){
		check=document.getElementById("Check"+i)		
		if (check.checked){
			str=str+"_"+i
		}
			
	}
	
	return str.split("_")
}
function getNewCheckedAry(){
	str=""	
	var DelCount=0
	objDataTable=document.getElementById('DataTable')
	DataTableRows=getAddRows()	
	for (r=2;r<Max_rows+2;r++){		
		rID=DataTableRows[r-2].id.substr(6)
		var checkboxRow=document.getElementById('checkboxRow'+rID)
		if (checkboxRow.checked){			
			str=str+"_"+rID			
		}	
	}
	return str.split("_")
}
/// END GENERAL


/// DELETE
function DelRecords(rowNums){
	rowNumsAry=rowNums.split("_")	
	var Rcnt=rowNumsAry.length-1
	var DbTableName=document.getElementById('DbTableName')
	var PkName=document.getElementsByName('PkName')
	var PkType=document.getElementsByName('PkType')
	var isPkColNum=document.getElementsByName('isPkColNum')
	DataStr=""	
	AskStr=""
	DataCellID=""
	PkStr=""
	PkTypeStr=""	
	for (i=0;i<PkName.length;i++){
		PkStr=PkStr+"$$$"+PkName[i].value
		PkTypeStr=PkTypeStr+"$$$"+PkType[i].value
		RowDataStr=""		
		for (u=1;u<=Rcnt;u++){		
			DataCellID=rowNumsAry[u]+"_"+isPkColNum[i].value
			var CellData=document.getElementById(DataCellID)		
			RowDataStr=RowDataStr+"~~~"+escape(CellData.innerHTML)
		}
		DataStr=DataStr+"$$$"+RowDataStr		
		if (Rcnt==1){
			AskStr="Delete This Record ?"
		}else{
			AskStr="Delete Those " + Rcnt +" Records ?"
		}		
	}		
	var ok = confirm(AskStr)	
	if (ok){	
		xmlHttp=GetXmlHttpObject(DelRecordsChanged);	
		xmlHttp.open("POST","DeleteRecords.asp", true);	
		xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlHttp.send("TableName="+DbTableName.value+"&rowNums="+rowNums+"&PkStr="+PkStr+"&PkTypeStr="+PkTypeStr+"&DataStr="+DataStr);	
		//alert("TableName="+DbTableName.value+"&rowNums="+rowNums+"&PkStr="+PkStr+"&PkTypeStr="+PkTypeStr+"&DataStr="+DataStr)	
		var cmdDelAll=document.getElementById('cmdDelAll') 
		cmdDelAll.className="SUBMITsml_action"
		cmdDelAll.value="DELETING"
	}
}

function DelRecordsChanged(){ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 	
		var SentMsg=xmlHttp.responseText		
		SentMsgAry=SentMsg.split('$$$')		
		setMsg(SentMsgAry[1])
		rowNums=SentMsgAry[0]		
		rowNumsAry=rowNums.split("_")	
		var Rcnt=rowNumsAry.length-1		
		for (u=1;u<=Rcnt;u++){
			var cmdEdit=document.getElementById('cmdEdit'+rowNumsAry[u])			
			var cmdDel=document.getElementById('cmdDel'+rowNumsAry[u]) 
			var Check=document.getElementById('Check'+rowNumsAry[u]) 			
			cmdEdit.disabled=true
			cmdDel.className="SUBMITsml_done"
			cmdDel.value="DONE"
			cmdDel.disabled=true
			Check.checked=false 
			Check.disabled=true	
			rowNORMAL(rowNumsAry[u])	
			var CheckAll=document.getElementById('CheckAll')
			CheckAll.checked=false 
		}
		EnableDisableBut()	
		var cmdDelAll=document.getElementById('cmdDelAll') 
		cmdDelAll.className="SUBMIT"
		cmdDelAll.value="DELETE"	
	} 	
} 

function DelCheckedRecords(){	
	DelRecords(getCheckedStr())
}

/// END DELETE

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/// EDIT
function EditCheckedRecords(){
	EditRecords(getCheckedAry())
}
function EditOneRecord(val){
	//alert("EditOneRecord "+val)
	str="_"+val
	Ary=str.split("_")
	//rowCHECKED(val)
	//var cmdEdit=document.getElementById('cmdEdit'+val)
	//cmdEdit.value="SAVE"
	var cmdEdit=document.getElementById('cmdEdit'+val)
	if (cmdEdit.value=="SAVE"){
		AskStr=""
		var Rcnt=Ary.length-1
		if (Rcnt==1){
			AskStr="Save This Record ?"
		}else{
			AskStr="Save Those " + Rcnt +" Records ?"
		}	
		var ok = confirm(AskStr)	
		if (ok){
			setMode("View")
			cmdEdit.value="EDIT"
			Enable('cmdAddAll')
			SaveCheckedRows(Ary)
		}
	}else{
		cmdEdit.value="SAVE"
		setMode("Edit")
		getFieldData(Ary,"EDIT")
	}
	
	//EditRecords(Ary)
}
function EditRecords(Ary){

	var cmdDelAll=document.getElementById('cmdDelAll')
	var cmdEditAll=document.getElementById('cmdEditAll')
	if (cmdEditAll.value=="SAVE"){		
		AskStr=""
		var Rcnt=Ary.length-1
		if (Rcnt==1){
			AskStr="Save This Record ?"
		}else{
			AskStr="Save Those " + Rcnt +" Records ?"
		}	
		var ok = confirm(AskStr)	
		if (ok){
			setMode("View")
			cmdEditAll.value="EDIT"
			cmdDelAll.disabled=false
			EnableRowsChecked('cmdDel')
			EnableRowsChecked('cmdEdit')
			Enable('cmdAddAll')
			SaveCheckedRows(Ary)
		}		
	}else{
		cmdEditAll.value="SAVE"
		cmdDelAll.disabled=true
		setMode("Edit")
		getFieldData(Ary,"EDIT")
	}
}


function SaveCheckedRows(Ary){
	var Rcnt=Ary.length-1
	var DbTableName=document.getElementById('DbTableName')
	var PkName=document.getElementsByName('PkName')
	var FldType=document.getElementsByName('FldType')
	var FldName=document.getElementsByName('FldName')	
	var isPkColNum=document.getElementsByName('isPkColNum')
	NewDataStr=""	
	OldDataStr=""	
	
	DataCellID=""
	PkNameStr=""
	FldTypeStr=""
	FldNameStr=""
	rowNumsStr=""	
	found=false
	for (u=1;u<Ary.length;u++){
		rowNumsStr=rowNumsStr+"$$$"+Ary[u]
	}
	for (x=0;x<ColNums;x++){
		found=false
		for (a=0;a<PkName.length;a++){			
			if (x==isPkColNum[a].value){
				found=true
			}
		}
		if (found){
			PkNameStr=PkNameStr+"$$$"+PkName[x].value					
		}else{
			PkNameStr=PkNameStr+"$$$null"						
		}		
		FldTypeStr=FldTypeStr+"$$$"+FldType[x].value	
		FldNameStr=FldNameStr+"$$$"+FldName[x].value
	}

	//alert(PkNameStr)
	//alert(FldTypeStr)	
	//alert(FldNameStr)	
	for (y=1;y<=Rcnt;y++){
		NewDataStr=NewDataStr+"###"
		OldDataStr=OldDataStr+"###"
		for (x=0;x<ColNums;x++){			
			DataCellID=Ary[y]+"_"+x			
			var OldCellData=document.getElementById('FieldVal'+DataCellID)
			var FldIsAutoInc=document.getElementById('FieldIsAutoIncrement_'+(x+1))
			if (FldIsAutoInc.value=="True"){
				NewDataStr=NewDataStr+"$$$FldIsAutoInc"
				OldDataStr=OldDataStr+"$$$"+escape(LTrim(OldCellData.value))
			}else{
				var NewCellData=document.getElementById('$$$'+DataCellID)
				NewDataStr=NewDataStr+"$$$"+escape(LTrim(NewCellData.value))
				OldDataStr=OldDataStr+"$$$"+escape(OldCellData.value)
			}
				
		}	
	}
	//alert(NewDataStr)
	//alert(OldDataStr)	
	//alert("TableName="+DbTableName.value+"&rowNums="+rowNumsStr+"&PkNameStr="+PkNameStr+"&FldTypeStr="+FldTypeStr+"&FldNameStr="+FldNameStr+"&NewDataStr="+NewDataStr+"&OldDataStr="+OldDataStr)
	xmlHttp=GetXmlHttpObject(SaveCheckedRowsChanged);	
	xmlHttp.open("POST","SaveRecords.asp", true);	
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttp.send("TableName="+DbTableName.value+"&rowNums="+rowNumsStr+"&PkNameStr="+PkNameStr+"&FldTypeStr="+FldTypeStr+"&FldNameStr="+FldNameStr+"&NewDataStr="+NewDataStr+"&OldDataStr="+OldDataStr);	
}

function SaveCheckedRowsChanged(){
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 	
		var SentMsg=xmlHttp.responseText
		//alert(SentMsg)
		errReport=""
		SentMsgAry=SentMsg.split("~~~")
		Ary=SentMsgAry[0].split("$$$")		
		errRows=SentMsgAry[1].split("$$$")
		errReport=SentMsgAry[2].split("$$$")
		errCount=0
		MsgStr=""
		MsgStr=SentMsgAry[3]+"<br>"
		for (u=1;u<Ary.length;u++){
			if (errRows[u]==Ary[u]){
				errCount++
				rowERROR(errRows[u])		
				MsgStr=MsgStr+errReport[u]+"<br>"
			}else{
				rowCHECKED(Ary[u])
				for (y=1;y<=ColNums;y++){
					var FldIsAutoInc=document.getElementById('FieldIsAutoIncrement_'+y)						
					if (FldIsAutoInc.value=="False"){
						DataCellID=Ary[u]+"_"+(y-1)					
						var elm=document.getElementById(DataCellID)	
						var NewCellData=document.getElementById('$$$'+DataCellID)						
						elm.innerHTML=NewCellData.value
					}					
				}
			}								
		}		
		var cmdEditAll=document.getElementById('cmdEditAll')		
		if (errCount>1){				
			cmdEditAll.value="SAVE"			
		}else{
			cmdEditAll.value="EDIT"	
			var cmdEdit=document.getElementById('cmdEdit'+Ary[1])
			cmdEdit.value="EDIT"
		}

		setMsg(MsgStr)
	}

}

function getFieldData(Ary,strAction){

	Sep="$$$"
	rowNumsStr=""
	FkPkTablesStr=""
	FkPkColumnsStr=""
	ColIdsStr=""
	if (strAction=="ADD"){
		rowNumsStr=rowNumsStr+"$$$"+"ADD"
	}
	if (strAction=="EDIT"){
		for (u=1;u<Ary.length;u++){
			rowNumsStr=rowNumsStr+"$$$"+Ary[u]
		}
	}
	if (strAction=="DUP"){
		rowNumsStr=rowNumsStr+"$$$"+"DUP"
	}	
	for (u=0;u<ColNums;u++){
		var FkPkColumn=document.getElementById('FkPkColumn_'+u)
		var FkPkTable=document.getElementById('FkPkTable_'+u)
		if (FkPkColumn==null){
			FkPkTablesStr=FkPkTablesStr+Sep+"null"
			FkPkColumnsStr=FkPkColumnsStr+Sep+"null"
			ColIdsStr=ColIdsStr+Sep+"null"
		}else{
			FkPkTablesStr=FkPkTablesStr+Sep+FkPkTable.value
			FkPkColumnsStr=FkPkColumnsStr+Sep+FkPkColumn.value
			ColIdsStr=ColIdsStr+Sep+u
		}
		
	}
	
	xmlHttp=GetXmlHttpObject(getFieldDataChanged);	
	xmlHttp.open("POST","getOptionsAry.asp", true);	
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttp.send("FkPkTables="+FkPkTablesStr+"&FkPkColumns="+FkPkColumnsStr+"&ColIds="+ColIdsStr+"&rowNums="+rowNumsStr);		
	//alert("FkPkTables="+FkPkTablesStr+"&FkPkColumns="+FkPkColumnsStr+"&ColIds="+ColIdsStr+"&rowNums="+Ary)
	
}
function ChangeCbVal(obj){
	if (obj.value=="True"){		
		obj.value="False"
	}else{
		obj.value="True"
	}
}
function IsCkd(cbVal){
	if (cbVal=="True"){
		return "checked"
	}else{
		return ""
	}
}
function getFieldDataChanged(){ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 	
		var SentMsg=xmlHttp.responseText
		//alert(SentMsg)		
		SentMsgAry=SentMsg.split("^^^")		
		rowNumsAry=SentMsgAry[0].split("$$$")
		if (rowNumsAry[1]=="ADD"){
			insRowFromData(SentMsg)
			setMsg("Select the fields values, And click save.")
		}
		if (rowNumsAry[1]=="DUP"){
			dupRowFromData(SentMsg)
			setMsg("Duplicate "+DupVal+" successfully.")
		}
		if (rowNumsAry[1]!="ADD" && rowNumsAry[1]!="DUP"){			
			DataStr=SentMsgAry[1]
			DataStrAry=DataStr.split("###")				
			var Rn=rowNumsAry.length-1	
			setMsg("Ready for Editing "+Rn+" Records")
			////////	
	
			DataCellID=""
			CellStr=""	
			OptionAry=""
			var FldTypeAry=document.getElementsByName('FldType')
			for (u=1;u<=DataStrAry.length-1;u++){
				for (i=1;i<=Rn;i++){	
					if (DataStrAry[u]=="NoFk"){
						for (y=1;y<=ColNums;y++){
							var FldIsAutoInc=document.getElementById('FieldIsAutoIncrement_'+y)						
							if (FldIsAutoInc.value=="False"){
								DataCellID=rowNumsAry[i]+"_"+(y-1)		
								var maxlength=document.getElementById('maxlength_'+y)						
								var elm=document.getElementById(DataCellID)				
								var FieldVal=document.getElementById('FieldVal'+DataCellID)													
								if (FldTypeAry[(y-1)].value=="11"){								
									elm.innerHTML="<input onclick='ChangeCbVal(this)'  type='checkbox' "+IsCkd(FieldVal.value)+" id=$$$"+DataCellID+" value='"+FieldVal.value+"'>"
								}else{
									elm.innerHTML="<input class='TEXT'  id=$$$"+DataCellID+" type='text' maxlength='"+maxlength.value+"' value='"+FieldVal.value+"' >"
								}
							}
						}					
					}else{
						var FldIsAutoInc=document.getElementById('FieldIsAutoIncrement_'+u)
						if (FldIsAutoInc.value=="False"){
							DataCellID=rowNumsAry[i]+"_"+(u-1)
							var elm=document.getElementById(DataCellID)
							var FieldVal=document.getElementById('FieldVal'+DataCellID)	
							if (DataStrAry[u]=="noData"){
								elm.innerHTML="Need To Add Data To Related Table"
							}else{
								if (DataStrAry[u]=="null"){
									var maxlength=document.getElementById('maxlength_'+u)
									if (FldTypeAry[(u-1)].value=="11"){
										elm.innerHTML="<input onclick='ChangeCbVal(this)' type='checkbox' "+IsCkd(FieldVal.value)+" id=$$$"+DataCellID+" value='"+FieldVal.value+"' >"										
									}else{
										elm.innerHTML="<input class='TEXT'  id=$$$"+DataCellID+" type='text' maxlength='"+maxlength.value+"' value='"+FieldVal.value+"'>"
									}
								}else{
									OptionAry=DataStrAry[u].split("$$$")
									CellStr="<select id=$$$"+DataCellID+">"
									for (w=1;w < OptionAry.length ;w++){								
										CellStr=CellStr+"<option  value='"+OptionAry[w]+"'"
										if (FieldVal.value==OptionAry[w]){
											CellStr=CellStr+" selected=selected"
										}
										CellStr=CellStr+" >"+OptionAry[w]+"</option>"
									}			 
									CellStr=CellStr+"</select>"							
									elm.innerHTML=CellStr 
								}	
							}					
							
						}
							
					}						
				}		
			}
			
			///////////		
			DisableRowsChecked('cmdDel')
			DisableRowsChecked('cmdEdit')
			Disable('cmdAddAll')
		}
	} 	
	
} 

function insRowFromData(SentMsg){
	insRows('DataTable',LastAddNum,SentMsg);		
}
function dupRowFromData(SentMsg){	
	insRows('DataTable',DupVal,SentMsg);
	var FldTypeAry=document.getElementsByName('FldType')
	for (y=Max_y;y>(Max_y-DupVal);y--){
		for (x=0;x<ColNums;x++){	
			var FldIsAutoInc=document.getElementById('FieldIsAutoIncrement_'+(x+1))	
			if (FldIsAutoInc.value=="False"){
				var fieldElmToCopy=document.getElementById('###'+RowToDup+"_"+x)			
				var fieldElmToChange=document.getElementById('###'+(y-1)+"_"+x)
				if (FldTypeAry[x].value=="11"){
					fieldElmToChange.checked=fieldElmToCopy.checked
					fieldElmToChange.value=fieldElmToCopy.checked					
				}else{
					fieldElmToChange.value=fieldElmToCopy.value
				}
					
			}			
					
		}
	}
			
}
function EditRecord(){

}

/// END EDIT

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// ADD
function SaveNewRows(){
		Ary=getNewCheckedAry()
		var Rcnt=Ary.length-1
		if (Rcnt==0){
			alert("please select rows you wish to save")
		}else{
			AskStr=""			
			if (Rcnt==1){
				AskStr="Save This New Record ?"
			}else{
				AskStr="Save Those New " + Rcnt +" Records ?"
			}
			var ok = confirm(AskStr)	
			if (ok){
				SaveCheckedNewRows(Ary)
			}
		}

}
function SaveCheckedNewRows(Ary){
	var Rcnt=Ary.length-1
	var DbTableName=document.getElementById('DbTableName')
	var PkName=document.getElementsByName('PkName')
	var FldType=document.getElementsByName('FldType')
	var FldName=document.getElementsByName('FldName')	
	var isPkColNum=document.getElementsByName('isPkColNum')
	NewDataStr=""	
	OldDataStr=""	
	
	DataCellID=""
	PkNameStr=""
	FldTypeStr=""
	FldNameStr=""
	rowNumsStr=""	
	found=false
	for (u=1;u<Ary.length;u++){
		rowNumsStr=rowNumsStr+"$$$"+Ary[u]
	}
	for (x=0;x<ColNums;x++){
		found=false
		for (a=0;a<PkName.length;a++){			
			if (x==isPkColNum[a].value){
				found=true
			}
		}
		if (found){
			PkNameStr=PkNameStr+"$$$"+PkName[x].value					
		}else{
			PkNameStr=PkNameStr+"$$$null"						
		}		
		FldTypeStr=FldTypeStr+"$$$"+FldType[x].value	
		FldNameStr=FldNameStr+"$$$"+FldName[x].value
	}

	//alert(PkNameStr)
	//alert(FldTypeStr)	
	//alert(FldNameStr)	
	for (y=1;y<=Rcnt;y++){
		NewDataStr=NewDataStr+"###"
		//OldDataStr=OldDataStr+"###"
		for (x=0;x<ColNums;x++){			
			DataCellID=Ary[y]+"_"+x			
			//var OldCellData=document.getElementById('FieldVal'+DataCellID)
			var FldIsAutoInc=document.getElementById('FieldIsAutoIncrement_'+(x+1))
			if (FldIsAutoInc.value=="True"){
				NewDataStr=NewDataStr+"$$$FldIsAutoInc"
			//	OldDataStr=OldDataStr+"$$$"+escape(OldCellData.value)
			}else{
				var NewCellData=document.getElementById('###'+DataCellID)				
				NewDataStr=NewDataStr+"$$$"+escape(LTrim(NewCellData.value))
			//	OldDataStr=OldDataStr+"$$$"+escape(OldCellData.value)
			}
				
		}	
	}
	
	//alert(OldDataStr)	
	//alert("TableName="+DbTableName.value+"&rowNums="+rowNumsStr+"&PkNameStr="+PkNameStr+"&FldTypeStr="+FldTypeStr+"&FldNameStr="+FldNameStr+"&NewDataStr="+NewDataStr+"&OldDataStr="+OldDataStr)
	xmlHttp=GetXmlHttpObject(SaveCheckedNewRowsChanged);	
	xmlHttp.open("POST","SaveNewRecords.asp", true);	
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttp.send("TableName="+DbTableName.value+"&rowNums="+rowNumsStr+"&PkNameStr="+PkNameStr+"&FldTypeStr="+FldTypeStr+"&FldNameStr="+FldNameStr+"&NewDataStr="+NewDataStr);	

}
function SaveCheckedNewRowsChanged(){
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 	
		var SentMsg=xmlHttp.responseText
		//alert(SentMsg)	
		errReport=""
		SentMsgAry=SentMsg.split("~~~")
		Ary=SentMsgAry[0].split("$$$")		
		errRows=SentMsgAry[1].split("$$$")
		errReport=SentMsgAry[2].split("$$$")
		errCount=0
		MsgStr=""
		MsgStr=SentMsgAry[3]
		for (u=1;u<Ary.length;u++){
			//alert(errRows[u]+"=="+Ary[u])
			if (errRows[u]==Ary[u]){
				errCount++
				newRowERROR(errRows[u])		
				MsgStr=MsgStr+"<br><br>"+errReport[u]
			}else{
				newRowNORMAL(Ary[u])
			}								
		}		
		/*var cmdEditAll=document.getElementById('cmdEditAll')		
		if (errCount>1){				
			cmdEditAll.value="SAVE"			
		}else{
			cmdEditAll.value="EDIT"	
		}*/

		setMsg(MsgStr)
	}

}
function ChangeAddNum(Act){
	var AddPlusNum=document.getElementById('AddPlusNum')
	if (Act=="up"){
		AddPlusNum.value=Number(AddPlusNum.value)+1
	}else{
		if (AddPlusNum.value!="1"){
			AddPlusNum.value=Number(AddPlusNum.value)-1
		}
	}
	var cmdAddAll=document.getElementById('cmdAddAll')
	cmdAddAll.value="ADD "+AddPlusNum.value
}

function insRows(tblID,RowNum,SentMsg){
	SentMsgAry=SentMsg.split("^^^")			
	DataStrAry=SentMsgAry[1].split("###")	
	//alert(DataStrAry)	
	setMsg(SentMsgAry[2])
	RowNum=Number(RowNum)
	DataCellID=""	
	var FldNameAry=document.getElementsByName('FldName')
	var FldTypeAry=document.getElementsByName('FldType')
	var tblData=document.getElementById(tblID)
	for (y=0;y<RowNum;y++){	
		var NewRow=tblData.insertRow(y+2)			
		NewRow.className="ShadeADD"		
		yNew=((2*Max_y)+(RowNum-RowCounter))-1
		for (x=0;x<ColNums+3;x++){					
			var objCell=NewRow.insertCell(x)					
			if (x<3){
				if (x==0){
					objCell.innerHTML="<input id='"+yNew+"' type='button' onclick='DuplicateRow(this)' class='SUBMITsml2' value='+'>&nbsp;<input class='DupInput' id='DupVal"+yNew+"' type='text' value='1'>"
				}
				if (x==1){
					objCell.innerHTML="<input id='"+yNew+"' type='button' onclick='DelOneRow(this)' class='SUBMITsml' value='DEL' >"
				}
				if (x==2){		
				
					objCell.innerHTML="<input id='checkboxRow"+yNew+"' onclick='checkboxRow(this)' type='checkbox'  value='"+yNew+"'  />"
				}				
				objCell.className="MidCen"				
			}else{
				DataCellID=yNew+"_"+(x-3)
				u=(x-2)
				/////////
				var FldIsAutoInc=document.getElementById('FieldIsAutoIncrement_'+u)	
				if (FldIsAutoInc.value=="False"){
					if (DataStrAry[1]=="NoFk"){								
						var maxlength=document.getElementById('maxlength_'+u)
						if (FldTypeAry[(u-1)].value=="11"){															
							objCell.innerHTML="<input onchange='checkThis(this)' onclick='ChangeCbVal(this)' id='###"+DataCellID+"' type='checkbox' "+IsCkd("False")+" value='False' >"
						}else{
							objCell.innerHTML="<input onchange='checkThis(this)'  class=TEXT id='###"+DataCellID+"' type='text' maxlength="+maxlength.value+">"
						}
					}else{				
						if (DataStrAry[u]=="noData"){
							objCell.innerHTML="Need To Add Data To Related Table"
						}else{
							if (DataStrAry[u]=="null"){
								var maxlength=document.getElementById('maxlength_'+u)
								if (FldTypeAry[(u-1)].value=="11"){															
									objCell.innerHTML="<input onchange='checkThis(this)' onclick='ChangeCbVal(this)' id='###"+DataCellID+"' type='checkbox' "+IsCkd("False")+" value='False' >"
								}else{
									objCell.innerHTML="<input onchange='checkThis(this)' class=TEXT id='###"+DataCellID+"' type='text' maxlength="+maxlength.value+">"
								}
							}else{
								OptionAry=DataStrAry[u].split("$$$")
								CellStr="<select onchange='checkThis(this)' id='###"+DataCellID+"' >"
								CellStr=CellStr+"<option  value=''>Select "+FldNameAry[u-1].value+"</option>"
								for (w=1;w < OptionAry.length ;w++){								
									CellStr=CellStr+"<option  value='"+OptionAry[w]+"'"									
									CellStr=CellStr+" >"+OptionAry[w]+"</option>"
								}			 
								CellStr=CellStr+"</select>"							
								objCell.innerHTML=CellStr 
							}				
						}							
					}
				}
				///////////*******************
				//objCell.innerHTML=DataCellID	
			}
		
		}	
		NewRow.id="AddRow"+yNew		
		RowCounter++
		Max_rows++
	}
	Max_y=RowCounter	
	var AddRowButs=document.getElementById('AddRowButs')
	AddRowButs.className="Show"
	
}
function checkThis(obj){
	rowID=obj.id.substr(3)
	rowIDAry=rowID.split("_")
	var checkNewrow=document.getElementById('checkboxRow'+rowIDAry[0])
	checkNewrow.checked=true	
}
function CancelAddRows(){
	
	var ok = confirm("Are You Sure ? This will erase all rows.")	
	setMode("View")
	if (ok){
	var AddRowButs=document.getElementById('AddRowButs')
	AddRowButs.className="Hide"	
	objDataTable=document.getElementById('DataTable')	
	for (y=0;y<Max_rows;y++){	
		objDataTable.deleteRow(2)	
	}
	RowCounter=0
	Max_y=0
	Max_rows=0
	}
	
}
function IsNumeric(sText){
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char; 
   for (i = 0; i < sText.length && IsNumber == true; i++){ 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1){
         IsNumber = false;
      }
   }
   return IsNumber;
}

function DuplicateRow(obj){
	objDupVal=document.getElementById('DupVal'+obj.id)
	if (objDupVal.value!=""){
		RowToDup=obj.id
		if (IsNumeric(objDupVal.value)){
			if (Number(objDupVal.value)>15){
				setMsg("No more then 15")
			}else{
				DupVal=objDupVal.value
				setMsg("Please wait, Getting Data...")			
				getFieldData(getCheckedAry(),"DUP")				
			}
	
		}else{
			setMsg("Please enter a number")
		}
	}
}
function checkboxRow(obj){
//	alert("checkboxRow"+obj.id)
}

function deleteRow(indexVal){
	document.getElementById('DataTable').deleteRow(indexVal)
}
function DeleteAddRows(){
	var DelCount=0
	objDataTable=document.getElementById('DataTable')
	DataTableRows=getAddRows()	
	for (r=2;r<Max_rows+2;r++){		
		rID=DataTableRows[r-2].id.substr(6)
		var checkboxRow=document.getElementById('checkboxRow'+rID)
		if (checkboxRow.checked){			
			objDataTable.deleteRow(r-DelCount)
			DelCount++			
		}	
	}
	Max_rows=Max_rows-DelCount
	
}
function getAddRows(){
	objDataTable=document.getElementById('DataTable')
	DataTableRows= new Array(Max_rows)
	for (r=2;r<Max_rows+2;r++){	
		DataTableRows[r-2]=objDataTable.rows[r]
	}
	return DataTableRows
}
function DelOneRow(obj){
	objDataTable=document.getElementById('DataTable')
	DataTableRows=getAddRows()		
	for (r=2;r<Max_rows+2;r++){	
		rID=DataTableRows[r-2].id.substr(6)			
		if (rID==obj.id){
			objDataTable.deleteRow(r)
		}
	}
	Max_rows--	
}

function Add(){	
	setMode("Add")
	var AddPlusNum=document.getElementById('AddPlusNum')
	LastAddNum=AddPlusNum.value
	setMsg("Please wait, Getting Data...")
	getFieldData(getCheckedAry(),"ADD")
}

// END ADD

/// AJAX
var xmlHttp
function GetXmlHttpObject(handler){ 
	var objXmlHttp=null	
	if (navigator.userAgent.indexOf("Opera")>=0){
		alert("This example doesn't work in Opera") 
		return 
	}
	if (navigator.userAgent.indexOf("MSIE")>=0){ 
		var strName="Msxml2.XMLHTTP"
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0){
			strName="Microsoft.XMLHTTP"
		} 
		try{ 
			objXmlHttp=new ActiveXObject(strName)
			objXmlHttp.onreadystatechange=handler 
			return objXmlHttp
		} 
		catch(e){ 
			alert("Error. Scripting for ActiveX might be disabled") 
			return 
		} 
	} 
	if (navigator.userAgent.indexOf("Mozilla")>=0){
		objXmlHttp=new XMLHttpRequest()
		objXmlHttp.onload=handler
		objXmlHttp.onerror=handler 
		return objXmlHttp
	}
} 

// minimaiz data trasper
// cons Sep="$$$" sep2="###" sep3="^^^"

/// END AJAX

///////////////////////////////////////////////////////////////////////////////////////


function addItem(val){
	alert("add "+val)
}

function editItem(val,id){
	alert("edit "+val+" id="+id)
}
function delItem(val,id){
	alert("del "+val+" id="+id)
}
function selectItem(val,id){
	alert("selectItem "+val+" id="+id)
}
function delAllItem(val){
	alert("del All "+val)
}
function PreviewMode(val){
	FeaturePreviewModeObj=document.getElementById('FeaturePreviewMode')
	FeatureEditModeObj=document.getElementById('FeatureEditMode')	
	FeaturePreviewModeObj.className='Hide'
	FeatureEditModeObj.className='Pointer'
	FeatureIDsAry=document.getElementsByName('FeatureIDs')
	len=FeatureIDsAry.length
	for (i=0;i<len;i++){
		FeatureToolBoxObj=document.getElementById('FeatureToolBox'+FeatureIDsAry[i].value)
		FeatureToolBoxObj.className='Hide'
	}
}
function EditMode(val){
	FeaturePreviewModeObj=document.getElementById('FeaturePreviewMode')
	FeatureEditModeObj=document.getElementById('FeatureEditMode')	
	FeaturePreviewModeObj.className='Pointer'
	FeatureEditModeObj.className='Hide'
	FeatureIDsAry=document.getElementsByName('FeatureIDs')
	len=FeatureIDsAry.length
	for (i=0;i<len;i++){
		FeatureToolBoxObj=document.getElementById('FeatureToolBox'+FeatureIDsAry[i].value)
		FeatureToolBoxObj.className='Show'
	}
}

