
function TransactionPanel(){}
TransactionPanel.prototype.transactionId=0;TransactionPanel.prototype.TransactionPanel=function(options){this.mainPane=options.panel.wrapAll('<div style="display: none;"></div>').parent();if(!toBool(options.noWait)){this.waitPane=$('<div style="display: none; height: 100px;" class="waiting">&nbsp;</div>');this.waitMessage=$('<span class="instructions"></span>');this.waitPane.append(this.waitMessage);this.mainPane.after(this.waitPane);}
if(typeof options.submit!="undefined"){this.donePane=$('<div style="display: none;" align="center"></div>');this.mainPane.after(this.donePane);this.doneForm=$('<form></form>');this.donePane.append(this.doneForm);this.doneForm.append("<br><br>");this.statusSpan=$('<span class="ack_status" align="center"></span>');this.doneForm.append(this.statusSpan);this.doneForm.append("<br><br>");this.doneForm.append('<input type="submit" value="OK">');this.doneForm.submit(options.submit);}}
TransactionPanel.prototype.hideAll=function(){if(typeof this.waitPane!="undefined")
this.waitPane.hide();if(typeof this.donePane!="undefined")
this.donePane.hide();this.mainPane.hide();}
TransactionPanel.prototype.showMain=function(){this.hideAll();this.mainPane.show();modalSetFocus(this.mainPane);}
TransactionPanel.prototype.done=function(){this.transactionId++;}
TransactionPanel.prototype.showResult=function(msg){this.hideAll();this.statusSpan.html(msg);this.donePane.show();}
TransactionPanel.prototype.showWaiting=function(message){this.hideAll();this.waitPane.show();if(typeof message!='undefined')
this.setWaitMessage(message);}
TransactionPanel.prototype.getShowMain=function(){var localTransaction=++this.transactionId;var that=this;return function(){if(that.transactionId==localTransaction)
that.showMain();}}
TransactionPanel.prototype.getShowResult=function(){var localTransaction=++this.transactionId;var that=this;return function(msg){if(that.transactionId==localTransaction)
that.showResult(msg);}}
TransactionPanel.prototype.setWaitMessage=function(message){this.waitMessage.html(message);}
function TransactionDialog(selector){var that=this;function ready(){that.TransactionPanel({panel:$(selector),submit:submit});}
function submit(e){e.preventDefault();$.modal.close();}
this.close=function(){that.done();$.modal.close();}
ready();}
TransactionDialog.prototype=new TransactionPanel();$.fn.RESTSubmit=function(options){var defaults={validate:function(){},transform:function(subtree){return subtree;}};var opts=$.extend(defaults,options);var tree=this.readForm();var status=opts.validate(tree);if(typeof status!="undefined"){if(typeof options.status=="undefined")
$('.formError',this).html(status);else
$('#'+options.status).html(status);return false;}
opts.obj=options.obj=opts.transform(tree);if(typeof opts.url=="undefined")
return true;return RESTPost(opts.obj,opts);}
$.fn.readForm=function(){var node=this[0];if(!/form/i.test(node.nodeName))
return;var fields=[];var elements=node.elements;for(var i=0;i<elements.length;i++){var element=elements[i];if(undefToBlank(element.name)=="")
continue;var result={name:element.name}
if(/checkbox/i.test(element.type)){fields.push({name:element.name,value:new String(element.checked)});}else if(/select|textarea/i.test(element.nodeName)||/text|hidden|password/i.test(element.type)){var val=$(element).val();if(val==null){fields.push({name:element.name,value:""});}if(val.constructor==Array){if(val.length==0){fields.push({name:element.name,value:""});}else{for(var j in val)
fields.push({name:element.name,value:val[j]});}}else{fields.push({name:element.name,value:val});}}}
var tree={};for(i in fields){tree[fields[i].name]=jQuery.trim(fields[i].value);}
return tree;}
$.fn.loadForm=function(json){var formElements=$("[name]",this);this.resetForm();for(var i=0;i<formElements.length;i++){var formElement=$(formElements[i]);var fieldName=formElement.attr("name");if(typeof json[fieldName]!='undefined'){var fieldType=formElement.attr("type");if(fieldType=="checkbox")
formElement.attr("checked",toBool(json[fieldName]));else
formElement.val(json[fieldName]);}}}
function validateEmailID(str){if($.trim(str).length==0)
return false;newStr=str.replace(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b/,'');return(newStr.length==0);}
function validatePhoneNo(str){var objRegExp=/^([0-9 ( ) + -]*)$/;if(str.match(objRegExp)){var digitCounter=0;for(i=0;i<str.length;i++){if(str.charAt(i)>='0'&&str.charAt(i)<='9'){digitCounter+=1;}}
if(digitCounter>=10)
return true;}
return false;}
function removeUnchecked(tree,field){var check=field+"Checkbox";if(!toBool(tree[check]))
delete tree[field];delete tree[check];}
function showConfirmStatus(fSuccess,targetId){function hideConfirmStatus(){$(targetId).hide();}
if(fSuccess){$(targetId).show();setTimeout(hideConfirmStatus,3000);}}
function setUrlField(formAnchor,tree,protocol){var fieldName=formAnchor.attr("name");if(typeof tree[fieldName]=='undefined'){formAnchor.text("");formAnchor.attr("href","");}else{var url="";if(tree[fieldName].search(/^[a-z]*:/i)==-1)
url=protocol;url+=tree[fieldName];formAnchor.attr("href",url);formAnchor.text(tree[fieldName]);}}
function ConfirmDialog(){var dialogOption;function ready(){$('#confirmYes').click(onYes);$('#confirmNo').click(onNo);}
function onNo(){if(typeof dialogOption.onNo!='undefined')
dialogOption.onNo();$.modal.close();}
function onYes(){if(typeof dialogOption.onYes!='undefined')
dialogOption.onYes();$.modal.close();}
this.show=function(_dialogOption){dialogOption=_dialogOption;$('#confirmMessage').html(dialogOption.message);$('#confirmDialog').modal({containerId:"modalConfirm",persist:true});}
ready();}
var confirmDialog;$("document").ready(function(){confirmDialog=new ConfirmDialog();});function DynamicFrame(){}
DynamicFrame.prototype.open=function(opts){var iframe=$("<iframe>");iframe.attr("height",opts.height);iframe.attr("width",opts.width);iframe.attr("src",opts.src);iframe.modal({persist:true,containerId:opts.containterId});}
function disableItem(selector,flag){$(selector).attr('disabled',flag);$(selector).addClass('disabledItem');if(!flag)
$(selector).removeClass('disabledItem');}
