// JavaScript Document

// Java Script for transaction process in client browser

// alterError - fixes a rounding bug in Netscape 2
	function getPriceFromOption(priceSource, separator)
	{
		var panjangDir;
		var i;
		var priceReverse;
		var price;
	
		priceReverse = '';
		for(i=priceSource.length-1; i>=0; i--)
		{
			if( priceSource.substr(i,1) == separator)
			{
				break;
			}
			priceReverse = priceReverse + priceSource.substr(i,1);
		}
	
		price = '';
		for(i=priceReverse.length-1; i>=0; i--)
		{
			price = price + priceReverse.substr(i,1);
		}
		//document.forms[formName].elements[txtFileTarget].value = fileName2;
		return price;
	}

	function checkNumber(value) 
	{
		if (value<=0.99) 
		{
			newPounds = '0';
		} 
		else 
		{
			newPounds = parseInt(value);
		}
		newPence = parseInt((value+.0008 - newPounds)* 100);
		if (eval(newPence) <= 9) newPence='0'+newPence;
		newString = newPounds + '.' + newPence;
		return (newString);
	}
	
	function getTotal(subTotalArray)
	{
		vTotal = 0;
		for(var i=0; i<subTotalArray.length; i++)
		{
			vTotal = vTotal + subTotalArray[i];
		}
		return vTotal;
	}
	
	// get Sub Total
	function getSubTotal(colsQty, colsPrice) 
	{
		index = document.cookie.indexOf("TheData");
		countbegin = (document.cookie.indexOf("=", index) + 1);
        countend = document.cookie.indexOf(";", index);
        if (countend == -1) 
		{
           	countend = document.cookie.length;
        }
		fulllist = document.cookie.substring(countbegin, countend);
		x = 0;
		var vSubTotal = new Array();
		for ( var i = 0; i <= fulllist.length; i++) 
		{
			if (fulllist.substring(i,i+1) == '[') 
			{
				datastart = i+1;
				datamiddle = datastart;
				thedata = new Array();
				k = 0;
			} 
			else if (fulllist.substring(i,i+1) == ']') 
			{					
				dataend = i;
				thelastdata = fulllist.substring(datamiddle, dataend);
				x = x + 1;
				for( var j=0; j<k; j++)	
				{
					if( j==colsQty )
						vQty = parseFloat(thedata[j]);
					if( j==colsPrice )
						vPrice = parseFloat(thedata[j]);	
				}
				if( j==colsQty )
					vQty = parseFloat(thelastdata);
				if( j==colsPrice )
					vPrice = parseFloat(thelastdata);
				vSubTotal[x-1] = vQty*vPrice;
			} 
			else if (fulllist.substring(i,i+1) == '#')
			{
				thedata[k] = fulllist.substring(datamiddle, i);
				datamiddle = i+1;
				k = k + 1;
			}
		}
		
		return vSubTotal;
	}
	
	// get SUM Colomn
	function getSUMCol(colNumber) 
	{
		index = document.cookie.indexOf("TheData");
		countbegin = (document.cookie.indexOf("=", index) + 1);
        countend = document.cookie.indexOf(";", index);
        if (countend == -1) 
		{
           	countend = document.cookie.length;
        }
		fulllist = document.cookie.substring(countbegin, countend);
		x = 0;
		var vSUMCol = 0;
		for ( var i = 0; i <= fulllist.length; i++) 
		{
			if (fulllist.substring(i,i+1) == '[') 
			{
				datastart = i+1;
				datamiddle = datastart;
				thedata = new Array();
				k = 0;
			} 
			else if (fulllist.substring(i,i+1) == ']') 
			{					
				dataend = i;
				thelastdata = fulllist.substring(datamiddle, dataend);
				x = x + 1;
				for( var j=0; j<k; j++)	
				{
					if( j==colNumber )
						vSUM = parseFloat(thedata[j]);	
				}
				if( j==colNumber )
					vSUM = parseFloat(thelastdata);
				vSUMCol = vSUMCol + vSUM;
			} 
			else if (fulllist.substring(i,i+1) == '#')
			{
				thedata[k] = fulllist.substring(datamiddle, i);
				datamiddle = i+1;
				k = k + 1;
			}
		}
		
		return vSUMCol;
	}
	// showData() - displays data in a table
	function showData(header_caption, colsAdd, valuesAdd) 
	{
		index = document.cookie.indexOf("TheData");
		countbegin = (document.cookie.indexOf("=", index) + 1);
        countend = document.cookie.indexOf(";", index);
        if (countend == -1) 
		{
           	countend = document.cookie.length;
        }
		fulllist = document.cookie.substring(countbegin, countend);
		//alert(document.cookie.substring(countbegin, countend)+" = "+fulllist.length+" karakter ("+fulllist.substring(0,2)+") begin="+countbegin+" end="+countend+" cookie="+document.cookie.substr(0,73));
		document.writeln('<table border=0 cellspacing=1 cellpadding=1 width="100%">');
		document.writeln('<tr align=center>');
		for( var i=0; i < header_caption.length; i++)
		{
			document.writeln('<td bgcolor="#E9E9E9"><b>'+header_caption[i]+'</b></td>');
		}
		if (colsAdd != null)
		{
			for( var i = 0; i < colsAdd.length; i++)
				document.writeln('<td bgcolor="#E9E9E9"><b>'+colsAdd[i]+'</b></td>');
		}
		document.writeln('<td bgcolor="#E9E9E9" width="45"><b>Action</b></td></tr>');
		datano = 0;
		for ( var i = 0; i <= fulllist.length; i++) 
		{
			if (fulllist.substring(i,i+1) == '[') 
			{
				datastart = i+1;
				datamiddle = datastart;
				thedata = new Array();
				k = 0;
			} 
			else if (fulllist.substring(i,i+1) == ']') 
			{					
				dataend = i;
				thelastdata = fulllist.substring(datamiddle, dataend);
				datano=datano+1;
				document.writeln('<tr>');
				for( var j=0; j<k; j++)	
				{
					document.writeln('<td bgcolor="#EFEFEF" align=center>'+thedata[j]+'</td>');
				}
				document.writeln('<td bgcolor="#EFEFEF" align=center>'+thelastdata+'</td>');
				if (valuesAdd != null)
				{
					document.writeln('<td bgcolor="#EFEFEF" align=right>'+valuesAdd[datano-1]+'</td>');
				}
				document.writeln('<td bgcolor="#EFEFEF" align=center width="45"><a href="javascript:removeData('+datano+');"><img src="images/default/delete.png" border=0></a></td></tr>');
			} 
			else if (fulllist.substring(i,i+1) == '#')
			{
				thedata[k] = fulllist.substring(datamiddle, i);
				datamiddle = i+1;
				k = k + 1;
			}
		}

		document.writeln('</table>');
	}
	
	function addData(newData) 
	{
		if (newData == null) 
		{
			rc = alert('The data is empty !!');
			return false;
		}
		else
		{
			index = document.cookie.indexOf("TheData");
			countbegin = (document.cookie.indexOf("=", index) + 1);
        	countend = document.cookie.indexOf(";", index);
	        if (countend == -1) 
			{
        	    countend = document.cookie.length;
        	}
			current_data = "";
			for (i=0; i<newData.length; i++)
			{
				if ( i==0 )
					current_data = current_data + document.myForm.elements[newData[i]].value; 
				else
					current_data = current_data + "#" + document.myForm.elements[newData[i]].value;
			}
	        document.cookie="TheData="+document.cookie.substring(countbegin, countend)+"["+current_data+"]";
		}
		return true;
	}
	
	function removeData(datano) {
		newDataList = null;
		datalist = 0;
		for (var i = 0; i <= fulllist.length; i++) 
		{
			if (fulllist.substring(i,i+1) == '[') 
			{
				datastart = i+1;
			} 
			else if (fulllist.substring(i,i+1) == ']') 
			{
				dataend = i;
				thedata = fulllist.substring(datastart, dataend);
				datalist=datalist+1;
				if (datalist != datano) 
				{
					newDataList = newDataList+'['+fulllist.substring(datastart, dataend)+']';
				}
			}
		}
		index = document.cookie.indexOf("TheData");
		document.cookie="TheData="+newDataList;
		history.go(0);
	}
	
	function clearData() 
	{
		if (confirm('Are you sure you wish to clear the data')) 
		{
			resetData();
			resetDataTemp();
			history.go(0);
		}
	}
	
	function resetData() 
	{
		index = document.cookie.indexOf("TheData");
		document.cookie="TheData=.";
	}
	
	
	// add function Master From Form
	function addDataMaster(newData) 
	{
		resetDataMaster();
		if (newData == null) 
		{
			rc = alert('The data master is empty !!');
			return false;
		}
		else
		{
			index = document.cookie.indexOf("TheDataMaster");
			countbegin = (document.cookie.indexOf("=", index) + 1);
        	countend = document.cookie.indexOf(";", index);
	        if (countend == -1) 
			{
        	    countend = document.cookie.length;
        	}
			current_data = "";
			for (i=0; i<newData.length; i++)
			{
				if ( i==0 )
					current_data = current_data + document.myForm.elements[newData[i]].value; 
				else
					current_data = current_data + "#" + document.myForm.elements[newData[i]].value;
			}
	        document.cookie="TheDataMaster="+document.cookie.substring(countbegin, countend)+"["+current_data+"]";
			
		}
		return true;
	}
	
	
	function resetDataMaster() 
	{
		index = document.cookie.indexOf("TheDataMaster");
		document.cookie="TheDataMaster=.";
	}
	
	// add function Master From Array
	function addDataMasterFromArray(newData) 
	{
		if (newData == null) 
		{
			rc = alert('The data master is empty !!');
			return false;
		}
		else
		{
			index = document.cookie.indexOf("TheDataMaster");
			countbegin = (document.cookie.indexOf("=", index) + 1);
        	countend = document.cookie.indexOf(";", index);
	        if (countend == -1) 
			{
        	    countend = document.cookie.length;
        	}
			current_data = "";
			for (i=0; i<newData.length; i++)
			{
				if ( i==0 )
					current_data = current_data + newData[i]; 
				else
					current_data = current_data + "#" + newData[i];
			}
	        document.cookie="TheDataMaster="+document.cookie.substring(countbegin, countend)+"["+current_data+"]";
			
		}
		return true;
	}
	
	// add function Detail From Array
	function addDataDetailFromArray(newData) 
	{
		if (newData == null) 
		{
			rc = alert('The data is empty !!');
			return false;
		}
		else
		{
			index = document.cookie.indexOf("TheData");
			countbegin = (document.cookie.indexOf("=", index) + 1);
        	countend = document.cookie.indexOf(";", index);
	        if (countend == -1) 
			{
        	    countend = document.cookie.length;
        	}
			current_data = "";
			for (i=0; i<newData.length; i++)
			{
				if ( i==0 )
					current_data = current_data + newData[i]; 
				else
					current_data = current_data + "#" + newData[i];
			}
	        document.cookie="TheData="+document.cookie.substring(countbegin, countend)+"["+current_data+"]";
			
		}
		return true;
	}
	
	
	// process temp for show option
	function addDataTemp(newData) 
	{
		if (newData == null) 
		{
			rc = alert('The data is empty !!');
			return false;
		}
		else
		{
			index = document.cookie.indexOf("TheDataTemp");
			countbegin = (document.cookie.indexOf("=", index) + 1);
        	countend = document.cookie.indexOf(";", index);
	        if (countend == -1) 
			{
        	    countend = document.cookie.length;
        	}
			current_data = "";
			for (i=0; i<newData.length; i++)
			{
				if ( i==0 )
				{
					if( newData[i].substring(0,4)=="OPT:" )
						current_data = current_data + eval("document.myForm."+newData[i].substring(4, newData[i].length)+".options[document.myForm."+newData[i].substring(4,newData[i].length)+".selectedIndex].text"); 
					else
						current_data = current_data + document.myForm.elements[newData[i]].value; 
				}
				else
				{
					if( newData[i].substring(0,4)=="OPT:" )
						current_data = current_data + "#" + eval("document.myForm."+newData[i].substring(4, newData[i].length)+".options[document.myForm."+newData[i].substring(4,newData[i].length)+".selectedIndex].text"); 
					else
						current_data = current_data + "#" + document.myForm.elements[newData[i]].value;
				}
			}
	        document.cookie="TheDataTemp="+document.cookie.substring(countbegin, countend)+"["+current_data+"]";
		}
		return true;
	}
	
	function showDataTemp(header_caption, colsAdd, valuesAdd) 
	{
		index = document.cookie.indexOf("TheData");
		index2 = document.cookie.indexOf("TheDataTemp");
		countbegin = (document.cookie.indexOf("=", index) + 1);
		countbegin2 = (document.cookie.indexOf("=", index2) + 1);
        countend = document.cookie.indexOf(";", index);
		countend2 = document.cookie.indexOf(";", index2);
        if (countend == -1) 
		{
           	countend = document.cookie.length;
        }
		 if (countend2 == -1) 
		{
           	countend2 = document.cookie.length;
        }
		fulllist = document.cookie.substring(countbegin, countend);
		fulllist2 = document.cookie.substring(countbegin2, countend2);
		
		//alert(document.cookie.substring(countbegin, countend)+" = "+fulllist.length+" karakter ("+fulllist.substring(0,2)+") begin="+countbegin+" end="+countend+" cookie="+document.cookie.substr(0,73));
		document.writeln('<table border=0 cellspacing=1 cellpadding=1 width="100%">');
		document.writeln('<tr align=center>');
		for( var i=0; i < header_caption.length; i++)
		{
			document.writeln('<td bgcolor="#E9E9E9"><b>'+header_caption[i]+'</b></td>');
		}
		if (colsAdd != null)
		{
			for( var i = 0; i < colsAdd.length; i++)
				document.writeln('<td bgcolor="#E9E9E9"><b>'+colsAdd[i]+'</b></td>');
		}
		document.writeln('<td bgcolor="#E9E9E9" width="45"><b>Action</b></td></tr>');
		datano = 0;
		for ( var i = 0; i <= fulllist2.length; i++) 
		{
			if (fulllist2.substring(i,i+1) == '[') 
			{
				datastart = i+1;
				datamiddle = datastart;
				thedata = new Array();
				k = 0;
			} 
			else if (fulllist2.substring(i,i+1) == ']') 
			{					
				dataend = i;
				thelastdata = fulllist2.substring(datamiddle, dataend);
				datano=datano+1;
				document.writeln('<tr>');
				for( var j=0; j<k; j++)	
				{
					document.writeln('<td bgcolor="#EFEFEF" align=center>'+thedata[j]+'</td>');
				}
				document.writeln('<td bgcolor="#EFEFEF" align=center>'+thelastdata+'</td>');
				if (valuesAdd != null)
				{
					document.writeln('<td bgcolor="#EFEFEF" align=right>'+valuesAdd[datano-1]+'</td>');
				}
				document.writeln('<td bgcolor="#EFEFEF" align=center width="45"><a href="javascript:removeData('+datano+'); removeDataTemp('+datano+');"><img src="images/default/delete.png" border=0></a></td></tr>');
			} 
			else if (fulllist2.substring(i,i+1) == '#')
			{
				thedata[k] = fulllist2.substring(datamiddle, i);
				datamiddle = i+1;
				k = k + 1;
			}
		}

		document.writeln('</table>');
	}
	
	function showDataMasterDetailTemp(header_caption, colsAdd, valuesAdd) 
	{
		index = document.cookie.indexOf("TheData");
		index2 = document.cookie.indexOf("TheDataTemp");
		countbegin = (document.cookie.indexOf("=", index) + 1);
		countbegin2 = (document.cookie.indexOf("=", index2) + 1);
        countend = document.cookie.indexOf(";", index);
		countend2 = document.cookie.indexOf(";", index2);
        if (countend == -1) 
		{
           	countend = document.cookie.length;
        }
		 if (countend2 == -1) 
		{
           	countend2 = document.cookie.length;
        }
		fulllist = document.cookie.substring(countbegin, countend);
		fulllist2 = document.cookie.substring(countbegin2, countend2);
		
		//alert(document.cookie.substring(countbegin, countend)+" = "+fulllist.length+" karakter ("+fulllist.substring(0,2)+") begin="+countbegin+" end="+countend+" cookie="+document.cookie.substr(0,73));
		document.writeln('<table border=0 cellspacing=1 cellpadding=1 width="100%">');
		document.writeln('<tr align=center>');
		for( var i=0; i < header_caption.length; i++)
		{
			document.writeln('<td bgcolor="#E9E9E9"><b>'+header_caption[i]+'</b></td>');
		}
		if (colsAdd != null)
		{
			for( var i = 0; i < colsAdd.length; i++)
				document.writeln('<td bgcolor="#E9E9E9"><b>'+colsAdd[i]+'</b></td>');
		}
		document.writeln('<td bgcolor="#E9E9E9" width="45"><b>Action</b></td></tr>');
		datano = 0;
		for ( var i = 0; i <= fulllist2.length; i++) 
		{
			if (fulllist2.substring(i,i+1) == '[') 
			{
				datastart = i+1;
				datamiddle = datastart;
				thedata = new Array();
				k = 0;
			} 
			else if (fulllist2.substring(i,i+1) == ']') 
			{					
				dataend = i;
				thelastdata = fulllist2.substring(datamiddle, dataend);
				datano=datano+1;
				document.writeln('<tr>');
				for( var j=0; j<k; j++)	
				{
					document.writeln('<td bgcolor="#EFEFEF" align=center>'+thedata[j]+'</td>');
				}
				document.writeln('<td bgcolor="#EFEFEF" align=center>'+thelastdata+'</td>');
				if (valuesAdd != null)
				{
					document.writeln('<td bgcolor="#EFEFEF" align=right>'+valuesAdd[datano-1]+'</td>');
				}
				document.writeln('<td bgcolor="#EFEFEF" align=center width="45"><a href="javascript:removeData('+datano+'); removeDataTemp('+datano+'); addDataMaster(name_master_list);"><img src="images/default/delete.png" border=0></a></td></tr>');
			} 
			else if (fulllist2.substring(i,i+1) == '#')
			{
				thedata[k] = fulllist2.substring(datamiddle, i);
				datamiddle = i+1;
				k = k + 1;
			}
		}

		document.writeln('</table>');
	}
	
	function resetDataTemp() 
	{
		index = document.cookie.indexOf("TheDataTemp");
		document.cookie="TheDataTemp=.";
	}
	
	function removeDataTemp(datano) {
		newDataList = null;
		datalist = 0;
		for (var i = 0; i <= fulllist2.length; i++) 
		{
			if (fulllist2.substring(i,i+1) == '[') 
			{
				datastart = i+1;
			} 
			else if (fulllist2.substring(i,i+1) == ']') 
			{
				dataend = i;
				thedata = fulllist.substring(datastart, dataend);
				datalist=datalist+1;
				if (datalist != datano) 
				{
					newDataList = newDataList+'['+fulllist2.substring(datastart, dataend)+']';
				}
			}
		}
		index = document.cookie.indexOf("TheDataTemp");
		document.cookie="TheDataTemp="+newDataList;
		history.go(0);
	}
	
	function addDataDetailTempFromArray(newData) 
	{
		if (newData == null) 
		{
			rc = alert('The data is empty !!');
			return false;
		}
		else
		{
			index = document.cookie.indexOf("TheDataTemp");
			countbegin = (document.cookie.indexOf("=", index) + 1);
        	countend = document.cookie.indexOf(";", index);
	        if (countend == -1) 
			{
        	    countend = document.cookie.length;
        	}
			current_data = "";
			for (i=0; i<newData.length; i++)
			{
				if ( i==0 )
					current_data = current_data + newData[i]; 
				else
					current_data = current_data + "#" + newData[i];
			}
	        document.cookie="TheDataTemp="+document.cookie.substring(countbegin, countend)+"["+current_data+"]";
			
		}
		return true;
	}
	
