/**
 * muntilan package
 * 
 * @author donna iwan setiawan
 * @version 1 
 * copyright - (c) 2007 - 2010 donna iwan setiawan
 * license - GPL version 3 or any later version <http://www.gnu.org/licenses/gpl-3.0.txt>
 */
doi.muntilanjs=new function(){var a={};return{limit:0,redrawSequenceNumber:function(f){if(doi.dom.isUndefined(f)){f="0"}var g=doi.dom.$("#muntilanjs-list-"+f+"-id");if(!g){return false}var e=a[f];if(!e.data.showSequenceNumber){return false}var c=g.childNodes[0].childNodes[0];var b=c.rows.length;for(var d=1;d<b;d++){c.childNodes[d].childNodes[0].innerHTML=d}},del:function(j,f){if(doi.dom.isUndefined(f)){f="0"}if(confirm("Are You sure You want to delete this record?")){var e=j.parentNode.parentNode;var c=e.parentNode;a[f].data.remove(e.rowIndex-1);c.removeChild(e);var b=c.rows.length;for(var d=1;d<b;d++){if(d%2==0){var g="row-alt"}else{var g="row"}c.rows[d].className=g}this.redrawSequenceNumber(f);var h=null;if(doi.widget.modalBox2&&doi.widget.modalBox2.visible()){h=doi.widget.modalBox2}else{if(doi.widget.modalBox1&&doi.widget.modalBox1.visible()){h=doi.widget.modalBox1}else{if(doi.widget.modalBox&&doi.widget.modalBox.visible()){h=doi.widget.modalBox}}}if(h){h.resize()}}return false},insert:function(t){var C=arguments[1]||[];if(doi.dom.isUndefined(t)){t="0"}var q=doi.dom.$("#muntilanjs-list-"+t+"-id");if(!q){return false}var b=q.childNodes[0].childNodes[0];if(this.limit>0&&b.rows.length>this.limit){alert("You are only allowed to insert maximum of "+this.limit+" data row(s).");return false}var p=a[t];if(p){var z={};for(var n=0;n<C.length;n++){if(p.unique.isUnique(n)){if(p.data.findByIndex(n,C[n])){alert("Duplicate data found. Could not insert data.");return false}}var l=p.data.getLabel(n);if(l){z[l]=C[n]}}p.data.push(z)}var x=b.rows.length-1;var B=document.createElement("tr");if(x%2==0){var A="row"}else{var A="row-alt"}B.className=A;doi.event.add(B,"mouseover",function(){this.className="row-hover"});doi.event.add(B,"mouseout",function(){this.className=A});b.appendChild(B);if(p.data.showSequenceNumber){var k=document.createElement("td");B.appendChild(k);k.setAttribute("align","right");k.innerHTML="&nbsp;"}var h=this.get(t).html;for(var w=0;w<h.length;w++){var k=document.createElement("td");B.appendChild(k);var s=p.data.getAlign(w);var g=p.data.getValign(w);k.setAttribute("align",s);k.setAttribute("valign",g);k.innerHTML=h[w];var u=w;if(p.data.showSequenceNumber){u++}if(b.firstChild&&b.firstChild.childNodes&&b.firstChild.childNodes[u]&&doi.dom.trim(b.firstChild.childNodes[u].innerHTML)==""){doi.dom.style(k,"display:none")}}var m=doi.dom.getElementsByTagName("td",B);var f=0;if(p.data.showSequenceNumber){f=1}for(var w=f;w<m.length;w++){var c=w-f;var e=doi.dom.getElementsByTagName("*",m[w]);var y=false;if(e){for(var u=0;u<e.length;u++){if(doi.dom.isDefined(e[u].value)&&e[u].nodeName!="OPTION"){if(doi.dom.isDefined(C[c])){y=true;e[u].value=C[c];if(e[u].getAttribute("title")=="statictext"){var o=document.createTextNode(C[c]);if(m[w].lastChild&&m[w].lastChild.nodeName=="#text"){m[w].replaceChild(o,m[w].lastChild)}else{m[w].appendChild(o)}}}}}}if(!y){if(doi.dom.isDefined(C[c])){m[w].innerHTML=C[c]}}}this.redrawSequenceNumber(t);var r=null;if(doi.widget.modalBox2&&doi.widget.modalBox2.visible()){r=doi.widget.modalBox2}else{if(doi.widget.modalBox1&&doi.widget.modalBox1.visible()){r=doi.widget.modalBox1}else{if(doi.widget.modalBox&&doi.widget.modalBox.visible()){r=doi.widget.modalBox}}}if(r){doi.widget.render({attribute:{zIndex:r.zIndex()+100}});r.resize()}else{doi.widget.render()}},row:function(e){while(e&&!doi.dom.isElement(e,"tr")){e=e.parentNode}if(!e){return false}var c=doi.dom.getElementsByTagName("*",e);var d=[];for(var b=0;b<c.length;b++){if(c[b].value){d.push(c[b].value)}}return d},edit:function(o,m){while(o&&!doi.dom.isElement(o,"tr")){o=o.parentNode}if(!o){return false}var k=arguments[2]||[];var t=a[m];if(t){var p={};var f=o.rowIndex-1;var r=t.data.getValue(f);t.data.del(f);for(var s=0;s<k.length;s++){if(t.unique.isUnique(s)){if(t.data.findByIndex(s,k[s])){alert("Duplicate data found. Could not insert data.");t.data[f]=r;return false}}var q=t.data.getLabel(s);if(q){p[q]=k[s]}}t.data[f]=p}var c=doi.dom.getElementsByTagName("td",o);var b=0;if(t.data.showSequenceNumber){b=1}for(var h=b;h<c.length;h++){var e=h-b;var n=doi.dom.getElementsByTagName("*",c[h]);var l=false;for(var g=0;g<n.length;g++){if(doi.dom.isDefined(n[g].value)){l=true;if(doi.dom.isDefined(k[e])){n[g].value=k[e]}}}if(!l){if(doi.dom.isDefined(k[e])){c[h].innerHTML=k[e]}}}},get:function(b){return a[b]},register:function(c){a[c]={html:[],element:null,data:[],unique:[]};var b=a[c];b.data.fields=[];b.data.byId={};b.data.showSequenceNumber=true;b.data.pushAll=function(d){for(var f in d){if(f=="byId"){this.byId=doi.dom.merge(this.byId,d[f]);continue}this.push(d[f])}};b.data.del=function(d){this[d]=null};b.data.remove=function(d){if(this.length-1<d){return}this.del(d);var f=d+1;for(var e=f;e<this.length;e++){this[d++]=this[e]}delete this[d]};b.data.find=function(d,f){for(var e=0;e<this.length;e++){if(this[e]&&this[e][d]&&this[e][d]==f){return true}}return false};b.data.getValue=function(d){if(this[d]){return new doi.dom.clone(this[d])}return null};b.data.getLabel=function(d){if(this.fields[d]&&this.fields[d]["label"]){return this.fields[d]["label"]}return false};b.data.getAlign=function(d){if(this.fields[d]&&this.fields[d]["align"]){return this.fields[d]["align"]}return"center"};b.data.getValign=function(d){if(this.fields[d]&&this.fields[d]["valign"]){return this.fields[d]["valign"]}return"middle"};b.data.findByIndex=function(d,e){if(this.fields[d]&&this.fields[d]["label"]){return this.find(this.fields[d]["label"],e)}return false};b.unique.data=b.data;b.unique.pushAll=function(e){for(var d in e){this.push(e[d])}};b.unique.isUnique=function(e){var d=this.data.getLabel(e);for(var f=0;f<this.length;f++){if(this[f]==d){return true}}return false};return b}}};
