function MultiBox () { this.columns = new Array(); this.hiddenCols = new Array(); this.htmlTbl = ""; this.trClass = ""; this.idExt = ""; this.add_newRow = add_newRow; } function add_newRow() { var tmpCol = ""; var funcs = new Array(); var funcsId = new Array(); var objTbl = document.getElementById(this.htmlTbl); var objBody = objTbl.getElementsByTagName("TBODY")[0]; var objRow = document.createElement("TR"); if (this.columns.length>0) { for (var col=0; col1 && fnVars[7]==1) ? fnVars[5] : ""; funcsId[col] = (fnVars[5].length>1 && fnVars[7]==1) ? fnVars[1] + "_" + this.idExt : ""; } //if there are hidden fields then add it to the end of the columns var ColumnCnt = (this.columns.length-1); for (var col=0; col0) { //run the functions like selection of the select box for (var col=0; col1) { eval(funcs[col].replace(/(this)/g,funcsId[col])); } } } } function ddownBox(fnVars, objRow, objCls, rowspanVal) { var objMain = document.getElementById(fnVars[1]); var objTd = document.createElement("TD"); var objSelect = document.createElement("SELECT"); objSelect.name = fnVars[2]; objSelect.className = fnVars[3]; objSelect.id = fnVars[1] + "_" + objCls.idExt; if (fnVars[5].length>0) { objSelect.onchange = function SelChange() {eval(fnVars[5])}; } for(i=0; i< objMain.length; i++){ objSelect.options[i] = new Option(objMain[i].text, objMain[i].value); } objSelect.selectedIndex = objMain.selectedIndex; if (rowspanVal>0) { objTd.rowSpan = rowspanVal; } objTd.appendChild(objSelect); objRow.appendChild(objTd); } function dateBox(fnVars, objRow, objCls, rowspanVal) { var objMain = document.getElementById(fnVars[1]); var objTd = document.createElement("TD"); var objdtId = fnVars[1] + "_" + objCls.idExt; var Sizes = fnVars[4].split("|"); if (rowspanVal>0) { objTd.rowSpan = rowspanVal; } objTd.innerHTML = ""; objRow.appendChild(objTd); } function textBox(fnVars, objRow, objCls, rowspanVal) { var objMain = document.getElementById(fnVars[1]); var objTd = document.createElement("TD"); var objText = document.createElement("INPUT"); var Sizes = fnVars[4].split("|"); objText.type = "text"; objText.className = fnVars[3]; objText.size = Sizes[0]; objText.maxlength = Sizes[1]; objText.name = fnVars[2]; objText.id = fnVars[1] + "_" + objCls.idExt; objText.value = objMain.value; if (fnVars[5].length>0) { objText.onblur = function Blr() {eval(fnVars[5])}; } objTd.vAlign="top"; objTd.appendChild(objText); if(rowspanVal>0) { objTd.rowSpan = rowspanVal; } objRow.appendChild(objTd); objMain.value = ''; } function textAreaBox(fnVars, objRow, objCls, rowspanVal) { var objMain = document.getElementById(fnVars[1]); var objTd = document.createElement("TD"); var objText = document.createElement("TEXTAREA"); var Sizes = fnVars[4].split("|"); //here i need to replace ### with \r\n var strVal = objMain.value; var intIndexOfMatch = strVal.indexOf( "###" ); while (intIndexOfMatch != -1){ strVal = strVal.replace( "###", "\r\n"); intIndexOfMatch = strVal.indexOf( "###" ); } objText.className = fnVars[3]; objText.rows = Sizes[0]; objText.cols = Sizes[1]; objText.name = fnVars[2]; objText.id = fnVars[1] + "_" + objCls.idExt; objText.value = strVal; objTd.appendChild(objText); if (rowspanVal>0) { objTd.rowSpan = rowspanVal; } objTd.vAlign="top"; objRow.appendChild(objTd); objMain.value = ''; } function hiddenBox(fnVars, objRow, ColCnt, objCls) { var objMain = document.getElementById(fnVars[1]); var objTd = objRow.getElementsByTagName("TD")[ColCnt]; var objText = document.createElement("INPUT"); objText.type = "hidden"; objText.className = fnVars[3]; objText.name = fnVars[2]; objText.id = fnVars[1] + "_" + objCls.idExt; objText.value = (fnVars[6].length>1) ? fnVars[6] : objMain.value; objTd.appendChild(objText); } function buttonBox(fnVars, objRow, objCls, rowspanVal) { var objMain = document.getElementById(fnVars[1]); var objTd = document.createElement("TD"); var objText = document.createElement("INPUT"); objText.type = "button"; objText.className = fnVars[3]; objText.name = fnVars[2]; objText.value = fnVars[6]; objText.id = fnVars[1] + "_" + objCls.idExt; if (fnVars[5].length>0) { objText.onclick = function Clk() {eval(fnVars[5])}; } objTd.appendChild(objText); if (rowspanVal>0) { objTd.rowSpan = rowspanVal; } objTd.vAlign="top"; objRow.appendChild(objTd); } //get total rows function TotalRowsTable(tblName) { var objTbl = document.getElementById(tblName); var objBody = objTbl.getElementsByTagName("TBODY")[0]; var totalRows = objBody.childNodes.length; return (totalRows); } function blankTd(fnVars, objRow, objCls) { var objMain = document.getElementById(fnVars[1]); var objTd = document.createElement("TD"); objTd.innerHTML = fnVars[6]; objTd.className = fnVars[3]; objRow.appendChild(objTd); } //EDIT BELOW THIS LINE function delRow(btnObj){ var rowNode = btnObj.parentNode.parentNode; rowNode.parentNode.removeChild(rowNode); } function delRec(AddId, varid) { var agree=confirm("Are you sure you want to delete the record?"); if (AddId) { if (agree){ del_record(document.getElementById('Addhid_' + AddId).value); delRow(varid); }else{ return false ; } } } function EditRec(AddId) { var variant_name= document.getElementById('variant_name_' + AddId); var variant_price= document.getElementById('variant_price_' + AddId); if(variant_name.value == ''){ alert("Variant name field cannot be left empty"); return false; } if(variant_price.value == ''){ alert("Variant price field cannot be left empty"); return false; } if(isNaN(variant_price.value)){ alert("Variant price field should be numeric"); return false; } if (AddId) { edit_record(variant_name.value, variant_price.value, document.getElementById('Addhid_' + AddId).value); alert("The data has been updated."); } } //{Boxtype}{main id}{sub id array}{class name}{size and maxlength}{javascript function}{value} function CreateLinksEnRow(addRowDb, variant_name, variant_price, main_product_id) { var linkenTbl = new MultiBox(); var dt = new Date(); linkenTbl.htmlTbl = "linkenTbl"; var totRows = TotalRowsTable('linkenTbl'); linkenTbl.idExt = dt.getTime() + dt.getSeconds(); if (addRowDb==1) { if(variant_name == ''){ alert("Variant name field cannot be left empty"); return false; } if(variant_price == ''){ alert("Variant price field cannot be left empty"); return false; } if(isNaN(variant_price)){ alert("Variant price field should be numeric"); return false; } //add saveVariantInfo(variant_name, variant_price, main_product_id, linkenTbl.idExt); } linkenTbl.columns[0] = "{textBox}{variant_name}{variant_name[]}{textbox}{15|255}{ }{ }{0}"; linkenTbl.columns[1] = "{textBox}{variant_price}{variant_price[]}{textbox}{10|255}{ }{ }{0}"; linkenTbl.columns[2] = "{buttonBox}{btnedit}{btnedit[]}{Btn}{ }{EditRec(" + linkenTbl.idExt + ");}{Edit}{0}"; linkenTbl.columns[3] = "{buttonBox}{btndel}{btndel[]}{Btn}{ }{delRec(" + linkenTbl.idExt + ", this);}{Delete}{0}"; linkenTbl.hiddenCols[0] = "{hiddenBox}{Addhid}{Addhid[]}{ }{ }{ }{ }{0}"; linkenTbl.hiddenCols[1] = "{hiddenBox}{AddtmpId}{AddtmpId[]}{ }{ }{ }{" + linkenTbl.idExt + "}{0}"; linkenTbl.add_newRow(); } function saveVariantInfo(variant_name, variant_price, main_product_id, HiddenId){ xmlhttp1 = init_ajax(); try { xmlhttp1.open("POST", "save_variantinfo.php"); xmlhttp1.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlhttp1.onreadystatechange = function() { if (xmlhttp1.readyState == 4 && xmlhttp1.status == 200) { var data = xmlhttp1.responseText; document.getElementById('Addhid_' + HiddenId).value = data; } } xmlhttp1.send("x=" + dt.getTime() + dt.getSeconds() + "&variant_name=" + variant_name + "&variant_price=" + variant_price + "&main_product_id=" + main_product_id +"&action=new_record"); }catch (errv) { alert(errv); } } function del_record(main_id) { xmlhttp1 = init_ajax(); xmlhttp1.open("POST", "save_variantinfo.php?&x=" + dt.getTime() + dt.getSeconds() + '&id=' + main_id +'&action=delete' ); xmlhttp1.onreadystatechange = function() { if (xmlhttp1.readyState == 4 && xmlhttp1.status == 200) { var data = xmlhttp1.responseText; document.getElementById('Addhid_' + HiddenId).value = data; } } xmlhttp1.send(null); } function edit_record(variant_name, variant_price, main_id) { xmlhttp1 = init_ajax(); try { xmlhttp1.open("POST", "save_variantinfo.php"); xmlhttp1.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlhttp1.send("&x=" + dt.getTime() + dt.getSeconds() + "&id=" + main_id +"&variant_name=" + variant_name + "&variant_price=" + variant_price + "&action=edit"); }catch (errv) { alert(errv); } } function emptydata(){ document.getElementById('variant_name').value=""; document.getElementById('variant_price').value=""; document.getElementById('Addhid').value=0; } var dtCh= "/"; function isInteger(s){ var i; for (i = 0; i < s.length; i++){ // Check that current character is number. var c = s.charAt(i); if (((c < "0") || (c > "9"))) return false; } // All characters are numbers. return true; } var dt = new Date(); function init_ajax() { var xmlhttp=false; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); }else if (window.ActiveXObject){ xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); if (!xmlhttp){ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlhttp; }