
﻿
function ShowError(e,callback){if(callback==undefined)
infoPanel.CreateError('Error Details<br> Code: <b>'+e.Code+'</b>.<br>Message: <b>'+e.ErrorMessage+'</b>','Error on Page');else
callback(e);}
function UpdateNulls(data){return data;}
function jForm(containerID,requestKey){var jF=this;jF.containerID='form';jF.requestKey='object';jF.Files=[];jF.FormObject={};jF.FormObjectValues=Array();jF.Load=function(){var jinput;var inputs=$("#"+jF.containerID+" input");for(var i=0,f=0;i<inputs.length;i++){input=$(inputs[i]);if(input.attr("type")=="text"||input.attr("type")=="hidden"){jF.AddField(input.attr("name"),input.val(),input.attr("valueType"));}
else if(input.attr("type")=="checkbox"){var inputVal=input.attr("checked")=="checked"?1:0;jF.AddField(input.attr("name"),inputVal);}
else if(input.attr("type")=="file"){jF.Files[f]={id:input.attr("id"),name:input.attr("name"),value:input.val()};f++;}}
var selectOptions=$('#'+jF.containerID+' select option:selected');for(i=0;i<selectOptions.length;i++){option=$(selectOptions[i]);parentSelect=option.parent();jF.AddField(parentSelect.attr('name'),option.val(),option.parent().attr("valueType"));}
var textareas=$('#'+jF.containerID+' textarea');for(i=0;i<textareas.length;i++){var textarea=$(textareas[i]);jF.AddField(textarea.attr('name'),textarea.val());}
return jF;};jF.AddField=function(name,value,valueType){var typedValue=value;if(valueType!=undefined){if(valueType=="int"){typedValue=parseInt(value);}
else if(valueType=="decimal"||valueType=="float"){typedValue=parseFloat(value);}}
jF.FormObject[name]=typedValue;};jF.Eval=function(){return jF.FormObject;};jF.toString=function(){return JSON.stringify(jF.FormObject);};jF.UploadFiles=function(handler,params,callback,errorCallback){if(jF.Files.length>0){for(var i=0;i<jF.Files.length;i++){var file=jF.Files[i];if(file.value!=''){UploadFile(handler,params,file.id,function(data){if(jF.FormObject!=undefined&&ResponseOk(data)&&!WasErrors(data)){callback(data);}
else{errorCallback(data);}});}}}};if(containerID!=undefined){jF.containerID=containerID;jF.Load();}
else{throw"Exception: Pager options ID isn't set.";}}
function UpdateRecordFieldEx(handler,params,callback){GetJson(handler,params,function(data){if(ResponseOk(data)&&!WasErrors(data)&&data.results==true){if(callback!=undefined)callback(data);return true;}else if(ResponseOk(data)&&WasErrors(data)){infoPanel.CreateError('Error Details<br> Code: '+data.error.Code+'.<br>Message: '+data.error.errorMessage,'Error on Page');}else{infoPanel.CreateError('Db Record update fails','Error on Page');}});}
function UpdateRecordField(handler,method,tbx,callback){var field=tbx.attr('name');var newValue=tbx.val();if(newValue==tbx.attr("oldValue"))return true;var params={action:method,Id:JSON.stringify(activeRow.attr('rowId')),field:field,value:newValue};UpdateRecordFieldEx(handler,params,callback);}
function BeginEditRecordField(){$(this).attr("oldValue",$(this).val());activeRow=$(this).parent().parent();}
function jFilterItem(){this.Field="";this.SecondField="";this.Value="";this.Type=0;this.Mode=1;}
function jFilter(filterId){var jF=this;jF.filterId='';jF.UrlHash='';jF.Items=Array();jF._fromUrl=function()
{}
jF._toUrl=function()
{}
jF.Load=function(){jF._load();return jF;}
jF._load=function(){var formFields=$("#"+jF.filterId+" input");jF.Items=new Array();var item,formField;var formFieldsInput=$('#'+jF.filterId+'  input[jFilter=1]');for(var i=0;i<formFieldsInput.length;i++){formField=formFieldsInput.get(i);jFormField=$(formField);if(jFormField.attr("type")=="text"){if(formField.value!=''){item=new jFilterItem();item.Value=formField.value;item.Field=jFormField.attr("filterField");item.SecondField=jFormField.attr("filterSecondField");item.Type=jFormField.attr("filterType");item.Mode=jFormField.attr("filterMode");jF.Items.push(item);jF.Url+=item.Field+'='+item.Value+'&';}}
else if(jFormField.attr("type")=="checkbox"){if(formField.checked==true){item=new jFilterItem();item.Value=((jFormField.attr("filterValue")!=undefined)?jFormField.attr("filterValue"):formField.value);item.Field=jFormField.attr("filterField");item.SecondField=jFormField.attr("filterSecondField");item.Type=jFormField.attr("filterType");item.Mode=jFormField.attr("filterMode");jF.Items.push(item);jF.UrlHash+='&'+item.Field+'='+item.Value;}}}
var parentSelect;var formFieldsSelectOptions=$('#filters select[jFilter="1"] option:selected');for(var k=0;k<formFieldsSelectOptions.length;k++){var kk=i+k;formField=formFieldsSelectOptions.get(k);if(formField.value!=''){item=new jFilterItem();item.Value=formField.value;parentSelect=$(formField).parent();item.Field=parentSelect.attr("filterField");item.Type=parentSelect.attr("filterType");item.Mode=parentSelect.attr("filterMode");jF.Items.push(item);jF.Url+=item.Field+'='+item.Value+';';}}
return jF;};jF.ToString=function(){return JSON.stringify(jF.Items);};if(filterId!=undefined){jF.filterId=filterId;jF.Load();}
else{throw"Exception: Pager options ID isn't set.";}}
function jPager(optionsID){var jP=this;jP.optionsID='';jP.UrlHash='';jP.offsetPath='#offset';jP.limitPath='#limit';jP.totalPath='#total';jP.options={Offset:0,Limit:0,Total:0};jP._fromUrl=function(){var url=window.location.hash;var pPart=jH.getUrlPart(url,'p=');var page=1;if(pPart!=''){page=parseInt(pPart.substring(2));}
jP.SetPage(page);}
jP._toUrl=function(page){var url=window.location.hash;var pPart=jH.getUrlPart(url,'p=');if(pPart==''){if(url=='')url='p='+page;else url=url+'/p='+page;}else{url=url.replace(pPart,'p='+page);}
window.location.hash=url;}
jP.Load=function(){jP._load();jP._fromUrl();return jP;};jP._load=function(){var po=$("#"+jP.optionsID);jP.options.Offset=$(jP.offsetPath,po).val();jP.options.Limit=$(jP.limitPath,po).val();jP.options.Total=$(jP.totalPath,po).val();};jP.Set=function(){var po=$("#"+jP.optionsID);$(jP.offsetPath,po).val(jP.options.Offset);$(jP.limitPath,po).val(jP.options.Limit);$(jP.totalPath,po).val(jP.options.Total);return jP;};jP.SetPage=function(page){if(jP.options.Limit<1)jP._load();jP.options.Offset=(page-1)*jP.options.Limit;$("#"+optionsID+" "+jP.offsetPath).val(jP.options.Offset);jP._toUrl(page);};jP.Bind=function(options){jP._bind(options);jP.Set();jP._fromUrl();return jP;};jP._bind=function(options){jP.options.Offset=options.Offset;jP.options.Limit=options.Limit;jP.options.Total=options.Total;};jP.Get=function(){return JSON.stringify(jP.options);};jP.Render=function(pagerPath){var output='';var from=jP.options.Offset;var per_page=jP.options.Limit;var count=jP.options.Total;var count_pages,from_page,to_page,curr_page;if(per_page>0){count_pages=Math.ceil(count/per_page);curr_page=(from/per_page)+1;if(curr_page>=3)from_page=curr_page-3;else from_page=1;}else{count_pages=1;from_page=1;}
if(curr_page<1)curr_page=1;if(from_page<1)from_page=1;to_page=curr_page+3;if(to_page>count_pages)to_page=count_pages;if(curr_page>1)output=output+'<span class="ctrls" page="'+(curr_page-1)+'">&larr;prev</span>';if(from_page>2){output=output+'<span class="ctrls" page="1">1</span>';output=output+'<span class="ctrls" page="'+(from_page-1)+'">...</span>';}
if(jP.options.Limit<count){for(var p=from_page;p<=to_page;p++){var css_class='ctrls';if(p==curr_page)css_class=css_class+' current';output=output+'<span <span class="'+css_class+'" page="'+p+'">'+p+'</span>';}}
if((count_pages-to_page)>2){output=output+'<span class="ctrls" page="'+(to_page+1)+'">...</span>';output=output+'<span class="ctrls" page="'+count_pages+'">'+count_pages+'</span>';}
if(curr_page<count_pages)output=output+'<span class="ctrls" page="'+(curr_page+1)+'">next&rarr;</span>';output=output+'<span class="total">( Total: '+count+' results)</span>';var pager=$(pagerPath);if(pager!=undefined)
pager.html(output);else
document.write(output);return jP;};if(optionsID!=undefined){jP.optionsID=optionsID;}
else{throw"Exception: Pager options ID isn't set.";}}
function jSorting(optionsID){var jS=this;jS.options={Field:'',Direction:0};jS.DefaultSortField='Name';jS.optionsID='';jS.ToString=function(){return JSON.stringify(jS.options);};jS._fromUrl=function(){var url=window.location.hash;var sPart=jH.getUrlPart(url,'s=');var field="";var dir=0;var sort='';if(sPart!=''){sort=sPart.substring(3,sPart.lastIndexOf(']'));var sp=sort.split('|');if(sp.length==2){field=sp[0];dir=(sp[1]=='Asc')?0:1;}}
jS.SetField(field);jS.SetDir(dir);}
jS._toUrl=function(field,direction){var url=window.location.hash;var sPart=jH.getUrlPart(url,'s=');if(field=='')field=jS.DefaultSortField;var dir=(direction==0?'Asc':'Desc')
if(sPart==''){if(url=='')url='s=['+field+'|'+dir+']';else{url=url+'/'+'s=['+field+'|'+dir+']';}}else{url=url.replace(sPart,'s=['+field+'|'+dir+']');}
window.location.hash=url;}
jS.Load=function(){jS._load();jS._fromUrl();return jS;};jS._load=function(){var sortOptions=$("#"+jS.optionsID);jS.options.Field=$("#field",sortOptions).val();jS.options.Direction=$("#dir",sortOptions).val();};jS.FromUrl=function(){return jS;}
jS.Bind=function(object){jS._bind(object);jS._fromUrl();return jS;};jS._bind=function(object){if(object!=undefined){if(object.Field!=undefined)jS.options.Field=object.Field;if(object.Direction!=undefined)jS.options.Direction=object.Direction;}};jS.Get=function(){jS.Load();return jS.ToString();};jS.SetField=function(field){jS.options.Field=field;return jS;};jS.SetDir=function(dir){jS.options.Direction=dir;return jS;};jS.Save=function(){var so=$("#"+jS.optionsID);$("#field",so).val(jS.options.Field);$("#dir",so).val(jS.options.Direction);jS._toUrl(jS.options.Field,jS.options.Direction);return jS;};if(optionsID!=undefined){jS.optionsID=optionsID;jS.Load();}
else{throw"Exception: Sorting options ID isn't set.";}}
function ShowPanel(panelID,callback){if(_blur==undefined)
_blur=$("#Blur");_blur.show();var panel=$("#"+panelID);var pageSize=jH.getPageSize();panel.css({position:'fixed',top:(pageSize.height-panel.height())/2,left:(pageSize.width-panel.width())/2});panel.fadeIn(350);if(callback!=undefined)callback();}
function ShowPanelTop(panelID,top){if(_blur==undefined)
_blur=$("#Blur");_blur.show();var panel=$("#"+panelID);var pageSize=jH.getPageSize();panel.css({position:'fixed',top:top,left:(pageSize.width-panel.width())/2});panel.fadeIn(350);}
function ShowContextPanel(panelID,target,callback){var panel=$("#"+panelID);var pageSize=jH.getPageSize();var pos=target.position();panel.css({position:'absolute',top:pos.top+target.height()+5,left:pos.left});panel.fadeIn(350);if(callback!=undefined)callback();}
function ClosePanel(panelID,callback){if(_blur==undefined)
_blur=$("#Blur");if(callback!=undefined)callback();_blur.hide();$("#"+panelID).hide();}
var infoPanel=new InfoPanel();function InfoPanel(){var panel=this;panel.op={};panel.CreateOptions=function(){return{CssClass:"panel hidden",PanelBorder:false,OkCssClass:"btn blue",CancelCssClass:"btn blue",TitleCssClass:"",PanelId:"info-panel",Title:"Information",BodyHtml:"",UseOk:true,UseCancel:false,OkText:"Ok",CancelText:"Cancel",okCallback:function(){},cancelCallback:function(){},initCallback:function(){}};};panel.html="";panel.New=function(){panel.html='';$("#"+panel.op.PanelId).remove();panel.op=panel.CreateOptions();return panel;};panel.CreateError=function(body,title,okCallback,cancelCallback){panel.New();panel.op.TitleCssClass="red-bg";return panel.Render(title,body,okCallback,cancelCallback).Open();};panel.Create=function(body,title,okCallback,cancelCallback){return panel.New().Render(title,body,okCallback,cancelCallback).Open();};panel.CreateContext=function(body,title,target,okCallback,cancelCallback){panel.New();panel.op.UseOk=false;panel.op.UseCancel=false;panel.op.PanelBorder=true;return panel.Render(title,body,okCallback,cancelCallback).OpenContext(target);};panel.Render=function(title,body,okCallback,cancelCallback){if(title!=undefined)panel.op.Title=title;panel.op.BodyHtml=body;panel.op.okCallback=okCallback;panel.op.cancelCallback=cancelCallback;panel.html="<div id="+panel.op.PanelId+" class='"+panel.op.CssClass+(panel.op.PanelBorder?" border":"")+"'>";if(panel.op.Title!='')panel.html+="<h1 class='"+panel.op.TitleCssClass+"'>"+panel.op.Title+"</h1>";panel.html+="<div class='cetner'>"+panel.op.BodyHtml;if(panel.op.UseOk||panel.op.UseCancel)panel.html+='<br><br>';if(panel.op.UseOk)
panel.html+="<span class='"+panel.op.OkCssClass+"' onclick='infoPanel.OkClick();'>"+panel.op.OkText+"</span> ";if(panel.op.UseCancel)
panel.html+="<span class='"+panel.op.CancelCssClass+"' onclick='infoPanel.CancelClick();'>"+panel.op.CancelText+"</span> ";if(panel.op.UseOk||panel.op.UseCancel)panel.html+='<br><br>';panel.html+="</div></div>";$(document.body).append(panel.html);if(panel.op.initCallback!=undefined)panel.op.initCallback();return panel;};panel.Open=function(){_loading.hide();ShowPanel(panel.op.PanelId);return panel;};panel.OpenContext=function(target){_loading.hide();ShowContextPanel(panel.op.PanelId,target);return panel;};panel.Close=function(){ClosePanel(panel.op.PanelId);$("$"+panel.op.PanelId).remove();return panel;};panel.OkClick=function(){if(panel.op.okCallback!=undefined)
panel.op.okCallback();panel.Close();_loading.hide();return panel;};panel.CancelClick=function(){if(panel.op.cancelCallback!=undefined)
panel.op.cancelCallback();panel.Close();_loading.hide();return panel;};panel.toString=function(){return panel.html;};panel.CreateOptions();}
var _blur,_loading;$(document).ready(function(){_blur=$("#Blur");_loading=$("#Loading");var pageSize=jH.getPageSize();_loading.css({position:'fixed',top:(pageSize.height-_loading.height())/2,left:(pageSize.width-_loading.width())/2});});function ShowLoading(){if(_blur==undefined)
_blur=$("#Blur");_blur.show();_loading.show();}
function HideLoading(){if(_loading==undefined)
_loading=$("#Blur");_blur.hide();_loading.hide();}
function createCookie(name,value,days){var expires="";if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));expires="; expires="+date.toGMTString();}
document.cookie=name+"="+value+expires+"; path=/";}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split('; ');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;}
function eraseCookie(name){createCookie(name,"",-1);}
var jH={Incr:function(i,j){return(i+j+1);},Decr:function(i){return i-1;},IncrOffset:function(i,o){return i+o+1;},Slug:function(from_id,to_id){var s=$('#'+from_id).val();s=s.replace(/\s+/g,"-");s=s.replace(/-+/g,"-");s=s.replace(/-+$/g,"");s=s.replace(/^-+$/g,"");$('#'+to_id).val(s.toLowerCase());},CapStr:function(str){var tempArray=str.split(' ');for(var i=0;i<tempArray.length;i++){tempArray[i]=tempArray[i].charAt(0).toUpperCase()+tempArray[i].substring(1);}
return tempArray.join(' ');},RemoveStr:function(s,t){i=s.indexOf(t);r="";if(i==-1)return s;r+=s.substring(0,i)+_jH.RemoveStr(s.substring(i+t.length),t);return r;},getPageSize:function(){var d=document,w=window,iebody=d.compatMode&&d.compatMode!='BackCompat'?d.documentElement:d.body;var b=d.body;var xScroll=(w.innerWidth&&w.scrollMaxX)?w.innerWidth+w.scrollMaxX:Math.max(b.scrollWidth,b.offsetWidth),yScroll=(w.innerHeight&&window.scrollMaxY)?w.innerHeight+w.scrollMaxY:Math.max(b.scrollHeight,b.offsetHeight),pageWidth=jQuery.browser.msie?iebody.scrollWidth:(d.documentElement.clientWidth||self.innerWidth),pageHeight=jQuery.browser.msie?Math.max(iebody.scrollHeight,iebody.clientHeight):(d.documentElement.clientHeight||self.innerHeight);var width=jQuery.browser.msie?iebody.clientWidth:(d.documentElement.clientWidth||self.innerWidth),height=jQuery.browser.msie?iebody.clientHeight:self.innerHeight;return{pageWidth:Math.max(pageWidth,xScroll),pageHeight:Math.max(pageHeight,yScroll),width:width,height:height,scrollLeft:jQuery.browser.msie?iebody.scrollLeft:pageXOffset,scrollTop:jQuery.browser.msie?iebody.scrollTop:pageYOffset}},copy:function(t){if(typeof t=='undefined'){t='';}
var d=document;if(window.clipboardData){window.clipboardData.setData('Text',t);}
else{var f='flashcopier';if(!d.getElementById(f)){var dd=d.createElement('div');dd.id=f;d.body.appendChild(dd);}
d.getElementById(f).innerHTML='';var i='<embed src="copy.swf" FlashVars="clipboard='+encodeURIComponent(t)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';d.getElementById(f).innerHTML=i;}},getUrlPart:function(url,partStart){url=url.replace('#','');var parts=new Array();parts=url.split('/');for(var i=0;i<parts.length;i++){var p=parts[i];if(p.indexOf(partStart)==0)return p;}
return'';}};var _intTimeDelayCounter=0;var _timeout;var lastKeyPressCode;function AutoCompleteRun(e,delay,callback){switch(e.keyCode){case 17:break;case 16:break;case 32:break;case 37:break;case 38:break;case 39:break;case 40:break;case 188:break;case 9:break;case 13:default:TimeoutInvoke(delay,callback);break;}}
function TimeoutInvoke(delay,callback){_intTimeDelayCounter++;var _intChecker=_intTimeDelayCounter;if(_timeout)clearTimeout(_timeout);_timeout=setTimeout(function(){if(_intTimeDelayCounter==_intChecker)callback();},delay);}