/* KeyCode Constances*/
var   kc_backspace=8
	, kc_tab =	9
	, kc_enter=	13
	, kc_shift=	16
	, kc_ctrl =	17
	, kc_alt  =	18
	, kc_pause	=	19
	, kc_capslock =	20
	, kc_escape =	27
	, kc_pageup  =	33
	, kc_pagedown =	34
	, kc_end 	 =	35
	, kc_home   =	36
	, kc_left   =	37
	, kc_up 	 =	38
	, kc_right   =	39
	, kc_down   =	40
	, kc_insert	=	45
	, kc_delete =	46
	, kc_s		=	83;
	
// Other constant	
var ajax_load = "<img src=../images/loader.gif style='opacity: 0.70;filter: alpha(opacity=70);' align=center >";
var ajax_load_big = "<img src=../images/ajax-loader_big.gif style='opacity: 0.70;filter: alpha(opacity=70);' align=center >";
var ajax_load_small = "<img src=../images/ajax_loader_small.gif style='opacity: 0.70;filter: alpha(opacity=70);' align=center >";

	





(function ($) {

		$.fn.vAlign = function() {

			return this.each(function(i){
				var h = $(this).height();
				var oh = $(this).outerHeight();
				var mt = (h + (oh - h)) / 2;
				$(this).css("margin-top", "-" + mt + "px");
				$(this).css("top", "50%");
				$(this).css("position", "absolute");
			});

		};

})(jQuery);

 

(function ($) {
	$.fn.hAlign = function() {

		return this.each(function(i){

			var w = $(this).width();

			var ow = $(this).outerWidth();

			var ml = (w + (ow - w)) / 2;

			$(this).css("margin-left", "-" + ml + "px");
			$(this).css("left", "50%");
			$(this).css("position", "absolute");
		});
};
})(jQuery);



//*************************************************************************
// Date Key Input
//*************************************************************************

function DateInput(ObjName,ObjValue,ObjStyle) {
    var MainNode = 'MainNode_'+ObjName ; 
    var ddName = 'dd_'+ObjName ; 
    var mmName = 'mm_'+ObjName ; 
    var yyyyName = 'yyyy_'+ObjName ; 
	var input = document.createElement('input');
	input.type='hidden';
	//input.type='text';
	input.style.display='';
	input.id = ObjName ;
	input.name= ObjName ;
	input.value=ObjValue ; 
	$('#'+MainNode).append(input);
	
	$('#'+ObjName).change(function () {
		$('#dd_'+ObjName).val($(this).val().substr(8));
		$('#mm_'+ObjName).val($(this).val().substr(5,2));
		$('#yyyy_'+ObjName).val($(this).val().substr(0,4));
	});
	
	
	var dd=CreateTextInput(MainNode ,ddName ,ObjValue.substr(8),'width:1em;Border:none;') ;
	dd.onkeypress=function() { 
							var key = window.event.keyCode ; 
							if  (key<48 || key>57) {
							    return false; 
							}
							return true;
						};
	dd.onkeydown=function() {							
	                        var key = window.event.keyCode ; 
	                        if (key==kc_enter ){	
								window.event.keyCode=9;  
							}
							return true;
						};	
	dd.onchange = function(){objOnChange(ObjName);} 
	dd.setAttribute('maxLength', '2');
	$('#'+MainNode).append('/') ;
	
	var mm=CreateTextInput(MainNode ,'mm_'+ObjName,ObjValue.substr(5,2),'width:1em;Border:none;') ;  
	mm.onkeypress=function() { 
							var key = window.event.keyCode ; 
							if  (key<48 || key>57) {
							    return false; 
							}
							return true;
						};
	mm.onkeydown=function() {							
	                        var key = window.event.keyCode ; 
	                        if (key==kc_enter ){	
								window.event.keyCode=9;  
							}
							return true;
						};	

	mm.onchange = function(){objOnChange(ObjName); } 
    mm.setAttribute('maxLength', '2');
	$('#'+MainNode).append('/') ;
	
	var yyyy=CreateTextInput(MainNode ,'yyyy_'+ObjName,ObjValue.substr(0,4),'width:2em;Border:none;') ;  
	
	yyyy.onkeypress=function() { 
							var key = window.event.keyCode ; 
							if  (key<48 || key>57) {
							    return false; 
							}
							return true;
						};
	yyyy.onkeydown=function() {							
	                        var key = window.event.keyCode ; 
	                        if (key==kc_enter ){	
								window.event.keyCode=9;  
							}
							return true;
						};	
 					
	yyyy.setAttribute('maxLength', '4');
	
	yyyy.onchange = function(){objOnChange(ObjName);} 
	$('#'+MainNode).append(' ') ;
	
	
    //$('#'+MainNode).css('background','white') ;
    SetMainNodeStyle(MainNode,ObjStyle) ; 
   
}
function SetMainNodeStyle(MainNode, style) {
    if (style!='') {
        $('#'+MainNode).css("cssText",style);
        //$('#dd').css("background",$('#'+MainNode).css("background"));
        //$('#mm').css("background",$('#'+MainNode).css("background"));
        //$('#yyyy').css("background",$('#'+MainNode).css("background"));
        $('#dd').cssText = style;
        $('#mm').cssText = style;
        $('#yyyy').cssText =style;
    }
}

function CreateTextInput(MainNode, objID, objValue,objStyle) {
	var input = document.createElement('input',objID);
	input.type='text' ; 
	input.style.cssText=objStyle; 
	input.id=objID;
	input.value=objValue ; 
	$('#'+MainNode).append(input);
	return input ; 
}

function objOnChange(ObjName)  {
	var theDate = $('#'+ObjName) ; 
	var CheckDate ;
	var dd = $('#dd_'+ObjName);
	var mm= $('#mm_'+ObjName);
	var yyyy = $('#yyyy_'+ObjName);
	CheckDate = true;
	
	if (eval(dd.val())<1 || eval(dd.val())>31 || dd.val()=='') {
		dd.val('');
		CheckDate = false;
	}
	if (eval(mm.val())<1 || eval(mm.val())>12 || mm.val()=='') {
		mm.val('');
		CheckDate = false;
	}
	if (eval(yyyy.val())>30 && eval(yyyy.val())<99) {
		yyyy.val('13'+yyyy.val());
	}			
	if (eval(yyyy.val())<1300 || eval(yyyy.val())>1400 || yyyy.val()=='') {
		yyyy.val('');
		CheckDate = false;
	}
	if (CheckDate)  {
	    //if (eval(mm.val())<10) {mm.val() = '0'+mm.val(); }
	    //mm.val()  = eval(mm.val())<10 ? '0'+eval(mm.val()): eval(mm.val());
	    //dd.val()  = eval(dd.val())<10 ? '0'+eval(dd.val()): eval(dd.val());
		$('#'+ObjName).val( yyyy.val()
					+ '/' 
					+ PadDigits(mm.val(),2) 
					+ '/' 
					+ PadDigits(dd.val(),2)) ; 
						
	}else{
		theDate.val('');
	}
}
function PadDigits(n, totalDigits) 
{ 
    n = n.toString(); 
    var pd = ''; 
    if (totalDigits > n.length) 
    { 
        for (i=0; i < (totalDigits-n.length); i++) 
        { 
            pd += '0'; 
        } 
    } 
    return pd + n.toString(); 
} 

//*************************************************************************
// END Date Key Input
//*************************************************************************


function SamePosition(DestinationPos, elementPos) {
	var pos = DestinationPos.offset();  
	var width = DestinationPos.width();
	var height = DestinationPos.height();
	elementPos.css( { 
		"position": "absolute" ,
		"left": (pos.left ) + "px",
		"top": (pos.top) + "px", 
		"width": width +10+ "px", 
		"height": height+10 + "px" 
	} );
}

jQuery.fn.center = function () {
    this.css("position","absolute");
    this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
    this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
    return this;
}
// This file should be used if you want to debug




function IncludeJS(idList, BaseFolder)
{
    var pathtojsfiles = BaseFolder + 'js/' ; // need to be ajusted
    var arrID = idList.split(',');
    // set include to false if you do not want some modules to be included
    var modules = [
		{ id:1 ,  incfile:'jgrid/grid.locale-fa.js'}, // jqGrid translation
        { id:2 ,  incfile:'jgrid/grid.base.js'}, // jqGrid base
        { id:3 ,  incfile:'jgrid/grid.common.js'}, // jqGrid common for editing
        { id:4 ,  incfile:'jgrid/grid.formedit.js'}, // jqGrid Form editing
        { id:5 ,  incfile:'jgrid/grid.inlinedit.js'}, // jqGrid inline editing
        { id:6 ,  incfile:'jgrid/grid.celledit.js'}, // jqGrid cell editing
        { id:7 ,  incfile:'jgrid/grid.subgrid.js'}, //jqGrid subgrid
        { id:8 ,  incfile:'jgrid/grid.treegrid.js'}, //jqGrid treegrid
        { id:9 ,  incfile:'jgrid/grid.custom.js'}, //jqGrid custom 
        { id:10,  incfile:'jgrid/grid.postext.js'}, //jqGrid postext
        { id:11,  incfile:'jgrid/grid.tbltogrid.js'}, //jqGrid table to grid 
        { id:12,  incfile:'jgrid/grid.setcolumns.js'}, //jqGrid setcolumns
        { id:13,  incfile:'jgrid/grid.import.js'}, //jqGrid import
        { id:14,  incfile:'jgrid/jquery.fmatter.js'}, //jqGrid formater
        { id:15,  incfile:'jgrid/grid.grouping.js'}, //grouping
        { id:16,  incfile:'jgrid/jqModal.js'}, //xmljson utils
        { id:17,  incfile:'jgrid/jqDnR.js'}, //xmljson utils
        { id:18,  incfile:'jgrid/JsonXml.js'}, //xmljson utils
        { id:19,  incfile:'jgrid/grid.jqueryui.js'}, //xmljson utils
        { id:20,  incfile:'jgrid/jquery.searchFilter.js'}, // search Plugin
		{ id:21,  incfile:'jgrid/jquery.layout.js'}, // 
		{ id:22,  incfile:'jgrid/ui.multiselect.js'}, // 
        { id:23,  incfile:'jgrid/jquery.jqGrid.min.js'}, // 
        { id:25,  incfile:'jgrid/jquery.tablednd.js'} // 
        
        
    ];
    var filename;
    for (var id=0; id<arrID.length ; id++) {
		for(var i=0;i<modules.length; i++)
		{
			if(modules[i].id == arrID[id] ) {
	        	
        		filename = pathtojsfiles+modules[i].incfile;
       			if(jQuery.browser.safari ) {
       				jQuery.ajax({url:filename,dataType:'script', async:false, cache: true});
       			} else {
					if (jQuery.browser.msie) {
        				document.write('<script type="text/javascript" src="'+filename+'"></script>');
					} else {
        				IncludeJavaScript(filename);
					}
				}
			}
		}
	}
	
    function IncludeJavaScript(jsFile)
    {
        var oHead = document.getElementsByTagName('head')[0];
        var oScript = document.createElement('script');
        oScript.type = 'text/javascript';
        oScript.charset = 'utf-8';
        oScript.src = jsFile;
        oHead.appendChild(oScript);        
    };
};


var IndexOfArray =  function(arr, obj) {
						for(var i = -1, j = arr.length; ++i < j;)
							if(arr[i] === obj.toString()) return i;
						return false;
					};

Array.prototype.max = function() {
    return eval(Math.max.apply(null, this));
};
Array.prototype.min = function() {
    return eval(Math.min.apply(null, this));
};
String.prototype.blank= function() {
    return /^\s*$/.test(this);
};
String.prototype.isJSON= function() {
    var str = this;
    if (str.blank()) return false;
    str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
};


// jqGrid Change Editing Row 
function jqChangeRow(list, NewRowID,CurrentRowIndex){ 
	var  Rows = list.getDataIDs() ;
	if(NewRowID &&  NewRowID !== Rows[CurrentRowIndex] ){ 
		for (var i=0;i<Rows.length;i++) {
			if (Rows[i]!=NewRowID) {
				list.jqGrid('saveRow',Rows[i],true,'clientArray');
			}
		}
		list.jqGrid('setSelection',NewRowID ,false)
			.jqGrid('editRow',NewRowID ,false);
		return IndexOfArray(Rows , NewRowID); 		
	} 
}	

//custom alert function  
$.Alert = function(Prompt, Title, arg) {
				var args;
				
			args = jQuery.extend(args, arg, {
										modal: true,
										autoOpen: false,
										minHeight: 150, 
										minWidth: 150, 
										hide: 'puff', 
										show: 'puff', 
										resizable: false,
										minimized: false,
										overlay: { backgroundColor: "#000", opacity:0 },
										zIndex: 1000,
										buttons: {"OK": function() {$('#AlertWindow').dialog('close');}},
										close: function(event, ui) {
													$(this).dialog('destroy');
													$(this).remove() ; 
										}
									}
					);
		
		if(!Title) {
			Title='&#1575;&#1582;&#1591;&#1575;&#1585;';
			
		}
		if ($('#AlertWindow').length == 0) {
			$('body').append('<div id="AlertWindow" title="'+Title+'" dir=rtl >' 
								+ Prompt  
							+ '</div>') ;
			
		}
		$('#AlertWindow').dialog(args);
		$('#AlertWindow').dialog('open');
		//$('#AlertWindow').addClass("ui-state-error");
		
	};
//custom confirm function
$.Confirm = function (Prompt, Title, Buttons ) {
				var options={
								modal: true,
								autoOpen: false,
								minHeight: 150, 
								minWidth: 150, 
								hide: 'puff', 
								show: 'puff', 
								resizable: false,
								minimized: false,
								overlay: { backgroundColor: "#000", opacity:0 },
								zIndex: 1000,
								close: function(event, ui) {
											$(this).dialog('destroy');
											$(this).remove() ; 
								}
							};
					
}

function FindEventTarget(e) {
	var targ;
	if (!e) e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	
	return targ.id;			
}

function DialogBox(parent, divname, Msg, Title, options) {
	$.extend(true, options, {
							minimized: false,
							modal: true,
							resizable: false,							
							autoOpen: false,
							hide: 'puff', 
							show: 'puff',
							styleClass: 'ui-state-error',
	                        iconClass: 'ui-icon-alert',							
							close: function(event, ui) {
								$('#'+divname).dialog('destroy');
								$('#'+divname).remove() ; 
							}   		
							
					  }
	);
	$('#'+parent).append ("<div class='' id=\'"+divname +"\'  title=\'" + Title + "\' style=\'text-align: right;\' dir=rtl >" +  Msg + "</div>");
	$('#'+divname).dialog(options);
	//$('#'+divname).dialog( "option", "dialogClass", 'alert' );
	
}

function OpenWindow(parent, divname, title, sourcePath, options) {
	if ($('#'+divname).length ==0) {
		jQuery.extend(true, 
					  options, 
					  {
						resizable: true,
						autoOpen: false,
						open: function(ui) {
						},
						close: function(event, ui) {
							$('#'+divname).dialog('destroy');
							$('#'+divname).remove() ; 
							CloseMinimizedButton('MIN_'+divname);
						}   		
							
					  }); 
		$('#'+parent).append ("<div class='' id=\'"+divname +"\'  title=\'" + title + "\' style=\'text-align: right;\' dir=rtl ></div>");
		$('#'+divname).dialog(options);
		$('#'+divname).dialog('open');
		$('#'+divname).html(ajax_load)
					 .load(sourcePath); 

		OpenMinimizeButton(title, divname) ;	
	}
}

function SaveGrid(Grid, PathName, CurrentIndex, ResultPannel, DeletedIDs) {
    var i;
	for (i=0; i<=Grid.getDataIDs().length; i++) {
		Grid.jqGrid('saveRow',Grid.getDataIDs()[i],true,'clientArray');
		Grid.restoreRow(Grid.getDataIDs()[i]);
	}
	
	var  RowsOfID = Grid.getDataIDs() ;
	
	var postData = new Array();
	var ret ; 
	for (i=0;i<RowsOfID.length;i++) {
		ret=Grid.jqGrid('getRowData',RowsOfID[i]);
		postData.push(JSON.stringify(ret)) ;
	}
	
	var queryString = "action=save&data=[" + escape(postData.join(',')) + "]"+"&delid="+DeletedIDs.join(",")+"" ; 
	ResultPannel.html(ajax_load)
				.load(PathName,queryString)
				.show() ;
				/*.fadeIn(100)
				.fadeOut(4000) ; 		*/


}
function InitStatusMsg(PageName, Msg) {
	var M = '<div id="ST_'+PageName+'" class=STATUSMSG dir=RTL >' +  Msg.replace(/\|/g,'&nbsp;&nbsp;---&nbsp;&nbsp;') + '</div>' ;
	var S = $('#STATUS_BOARD');
	$(M).css("z-index",1);
	if ($('#ST_'+PageName).length==0) {
		S.append(M);
	}
	SelectStatusMsg(PageName);
}
function ShowStatusMsg(PageName) {
	$('#ST_'+PageName).focus;
}
function RemoveStatusMsg(PageName) {
	$('#ST_'+PageName).remove();
}
function SelectStatusMsg(PageName) {	
	$(document).find('.STATUSMSG').css({"display": 'none'});
	$('#ST_'+PageName).css({"display": ''});
}

function SaveForm(Parent, frm, path, loading, AfterSubmitFunction, ReturnData) {
    /*
    alert($('#'+frm).attr('action'));
    return false;
    */

    var ld = '<div id=RESULTPANEL></div>'
    if ($('#RESULTPANEL').length != 0) {
        $('#RESULTPANEL').remove();
    }
    $('#' + Parent).prev().append(ld);
    $('#RESULTPANEL').html('<div >' + loading + '</div>');
    $('#' + Parent).prev().vAlign().hAlign();
    $('#RESULTPANEL').find('div').vAlign().hAlign();

    var _path = $('#' + frm).attr('action')
    jQuery.ajax({
        url: _path,
        type: 'POST',
        data: set_form_poststr(frm),
        success: function (data) {
                    var Msg = data;
                    if (data.search(/ERROR/ig) == -1) {
                        // the response was ok 
                        ReturnData  = data 
                        $('#RESULTPANEL').find('div')
                        .html(Msg)
                        .show();

                        $('#RESULTPANEL').find('div')
                        .hAlign()
                        .vAlign();

                        $('#RESULTPANEL').fadeOut(2000);

                    } else {
                        //the response is not fine so show the error msg
                        $('#RESULTPANEL').html(Msg)
                                        .show()
                                        .fadeIn(400);

                        $('#RESULTPANEL').css('height', 'auto');
                        $('#RESULTPANEL').click(function (event, ui) {
                            $(this).fadeOut(900);
                        });

                    }
                    if (typeof AfterSubmitFunction == 'function') {
                        AfterSubmitFunction();
                    }
            }
    });
}

function set_form_poststr(frmName) {
    var flds, i, j, str = '', mSel = '';
    var frm = document.getElementById(frmName);
    for (i = 0; i < frm.elements.length; i++) {
    flds = frm.elements[i];
    if (flds.type == 'select-multiple') {
    mSel = '';
    for (j = 0; j < flds.length; j++) {
    if (flds.options[j].selected) {
    if (mSel != '') { mSel += ','; }
    mSel += escape(flds[j].value);
    }
    }
    if (str != '') { str += '&'; }
    str += flds.name + '=' + mSel;
    } else if (flds.type == 'checkbox') {
    if (flds.checked) {
    if (str != '') { str += '&'; }
    str += flds.name + '=' + escape(flds.value);
    }
    } else if (flds.type == 'radio') {
    if (flds.checked) {
    if (str != '') { str += '&'; }
    str += flds.name + '=' + escape(flds.value);
    }
    } else {
    if (str != '') { str += '&'; }
    if (flds.name == 'pg') { flds.name = 'curpage'; }
    str += flds.name + '=' + escape(flds.value);
    }
    }
    return str.replace('sex=', 'Z=');
    }

    function FormAjustStyle(frmID, objcss ) {
    var  NormalColor = '#DDDDDD', 
    FocusColor  = '#EEEEEE';
    if(objcss) {$('#'+frmID).find(':input:not(button)').css(objcss);}

    $('#'+frmID).find(':input:not(button),,select,not(checkbox)')
    .css('border','none');

    $('#' + frmID).find(':input:not(button)').css('background', NormalColor);

				
    $('#'+frmID).find(':input:not(button)').focus(function() {
    $(this).css('background',FocusColor);
			   
    });	
    $('#'+frmID).find(':input:not(button)').blur(function() {
    $(this).css('background',NormalColor);
			   
    });

    $('#' + frmID).keypress(function (event) {
    if (event.keyCode == '13') {
    event.preventDefault();
    event.keyCode = 9;
    }
    });


	
    }


    function DeleteForm(Parent, path, queryString, loading, AfterSubmitFunction) {
    var ld = '<div id=RESULTPANEL></div>'
    var ResultPanel = 'RESULTPANEL' ; 
    if($('#'+ ResultPanel ).length!=0) {
    $('#'+ ResultPanel ).remove();
    }
    $('#'+Parent).prev().append(ld) ; 
    $('#'+ ResultPanel ).html('<div >'+loading+'</div>');
    $('#'+Parent).prev().vAlign().hAlign();
    $('#'+ ResultPanel ).find('div').vAlign().hAlign();
	
    /*	$('#'+ ResultPanel ).html(loading)
    .load(path,queryString)
    .show() 
    .fadeOut(2000);	*/
	$('#'+ ResultPanel ).html(loading);				
	jQuery.ajax ({
		url: path, 
		type: 'POST',
		data: queryString,
		success:function(data){
					AfterSubmitFunction();
					
					$('#'+ ResultPanel ).html(data);
					if (data.search(/ERROR/ig)==-1) {
						$('#'+ ResultPanel ).fadeOut(2000) ; 
					}else{
						$('#'+ ResultPanel ).click(function(event){
							$(this).fadeOut(2000);
						});
					}
						
				}
	});
	
}

function ShortcutDefine (Target, ShortcutOp) {
	var Key, Caption, Function
	var StatusMsg='' ; 
	for (var i=0 ; i<ShortcutOp.length; i++) {
		Key =ShortcutOp[i].Key ;	
		Caption=ShortcutOp[i].Caption ;
		Function=ShortcutOp[i].Function ;
		
		shortcut.add(Key ,Function,{'target':Target});		
		StatusMsg = (StatusMsg=='') ? '' : StatusMsg + ' -- ';
		StatusMsg = StatusMsg  
				   + Key  
				   + '=' 
				   + Caption ;
	}
	InitStatusMsg (Target,StatusMsg );
}

function RandomNumber(numLow, numHigh) {
	var adjustedHigh = (parseFloat(numHigh) - parseFloat(numLow)) + 1;
    var numRand = Math.floor(Math.random()*adjustedHigh) + parseFloat(numLow);
	return numRand 
}

function ViewFile (FilePath) {
	var win=window.open(FilePath);
}

/**************************************************/


function ReadDataForm(postURL, frm, action, rec, AfterSuccessFunction) {
	$('#legend_img_'+frm).css('visibility','visible');
	jQuery.ajax({
	    url: postURL,
	    type: 'GET',
	    data: 'action=' + action + '&rec=' + rec,
	    success: function (data) {
	        SetFields(frm, data);
	        $('#legend_img_' + frm).css('visibility', 'hidden');
	        if (typeof AfterSuccessFunction == 'function') {
	            AfterSuccessFunction();
	        }
	    }
	});
} 


function SetFields(frm, data) {
	var arrR=[] ; 
	var Rs=''
	var Selector = '';
	var jData = JSON.parse('{' + data.replace(/\r?\n|\r/g, "<crlf>") + '}'); //JSON.parse(myDate) ;
	for (var R in jData.record[0]) {
		Selector = '#'+frm + ' :input[name="'+R+'"]'
		//Rs += $('#'+frm + ' :input[name='+R+']').attr('id') + '\n';
		if (jQuery.isArray(jData.record[0][R])) {
			arrR = jData.record[0][R];
			for (j=0; j<arrR.length; j++) {
				$('form#'+frm + ' '+'input:checkbox[value="' + arrR[j] +'"]').attr('checked','checked');
			}
		}else{
		
			
			switch ($(Selector).attr('type')) {
				case 'select':
					$(Selector).val(jData.record[0][R]);
					$(Selector).trigger('change');
					break;
				case 'checkbox':
					$(Selector).attr('checked',(jData.record[0][R] ==1 )? true: false);
					break;
				case 'radio':
				//	$('form#'+frm + ' '+'input:radio[name="'+R+'"][value="' + jData.record[0][R] +'"]').attr('checked','checked');
					$(Selector+'[value="' + jData.record[0][R] +'"]').attr('checked','checked');
					break;
				case 'text':
				case 'textarea':
				    $(Selector).val(jData.record[0][R].replace(/<crlf>/g, '\n\r'));
				    break;
				case 'hidden':
					$(Selector).val(jData.record[0][R]) ; 
					$(Selector).trigger('change');
					break;
				default:
					$(Selector).val(jData.record[0][R]) ; 
					break;
					
			}
			
		}
		
	}
	
}
// START for textarea maxlength plug-in!!
jQuery.fn.limitMaxlength = function (options) {

    var settings = jQuery.extend({
        attribute: "maxlength",
        onLimit: function () { },
        onEdit: function () { }
    }, options);

    // Event handler to limit the textarea
    var onEdit = function () {
        var textarea = jQuery(this);
        var maxlength = parseInt(textarea.attr(settings.attribute));

        if (textarea.val().length > maxlength) {
            textarea.val(textarea.val().substr(0, maxlength));

            // Call the onlimit handler within the scope of the textarea
            jQuery.proxy(settings.onLimit, this)();
        }

        // Call the onEdit handler within the scope of the textarea
        jQuery.proxy(settings.onEdit, this)(maxlength - textarea.val().length, maxlength);
    }

    this.each(onEdit);

    return this.keyup(onEdit)
						.keydown(onEdit)
						.focus(onEdit)
						.live('input paste', onEdit);
}

function ArrayToExcel(arrXL) {
    try {
        var xls = new ActiveXObject("Excel.Application");
    } catch (e) {
        alert('Your browser doesn\'t allow to open Excel. Please check its security options.');
        return false
    }
    if (xls == null) {
        alert('error in loading Excel');
        return false;
    }
    xls.visible = true;
    var newBook = xls.workbooks.add;
    newBook.worksheets.add;
    newBook.worksheets(1).activate;
    for (r = 0; r < arrXL.length; r++) {
        for (c = 0; c < arrXL[r].length; c++) {
            newBook.worksheets(1).rows(r + 1).select;
            newBook.worksheets(1).cells(r + 1, c + 1).value = arrXL[r][c];
        }
    }
    newBook.worksheets(1).rows(1).select;
    newBook.worksheets(1).Columns.ReadingOrder = -5004;
    newBook.worksheets(1).Columns.AutoFit;
    xls = null;
    newBook = null;
    return true;
}

function CreateMDArray(row, col) {
    var arr = new Array(row);
    for (var i = 0; i < row; i++) {
        arr[i] = new Array(col);
    }
    return arr;
}


function SendSignal(UserType, UserID) {

    jQuery.ajax({
        url: '../office/ce_Online.asp',
        type: 'POST',
        data: 'action=signal&t=' + UserType + '&u=' + UserID
    });


    setTimeout('SendSignal("' + UserType + '","' + UserID + '");', 60000);
}

function getFunctionNames(ParentID) {
    var pattern = /function(.*?)\(/g;
    //var f = document.getElementById(ParentID).innerHTML;
    var f = $('#'+ParentID).html();
    var m = f.match(pattern);
    alert('m=' + m);
    for (i = 0; i < m.length; i++) {
        m[i] = m[i].replace(/function/g, '').replace(/\(/g, '');
    }
    return m;
}

function removeDOMfunctions(ParentID) {
    var f = getFunctionNames(ParentID);
    for (i = 0; i < f.length; i++)
        eval(f[i] + '=undefined');
}

function GetPairParam(objParent) {

    var p = '';
    $(objParent).find('input')
                 .each(function () {
                     if (p != '') { p += '&'; }
                     p += $(this).attr('id') + '=' + escape($(this).val());
                 });
    $(objParent).find('select')
                 .each(function () {
                     if (p != '') { p += '&'; }
                     p += $(this).attr('id') + '=' + escape($(this).val());
                 });
    $(objParent).find('textarea')
                 .each(function () {
                     if (p != '') { p += '&'; }
                     p += $(this).attr('id') + '=' + escape($(this).val());
                 });

    return p;
}

function BindHover(obj, NormalClass, HoverClass) {
    
    $(obj).hover(
		function () {
		    $(this).addClass(HoverClass);
		},
		function () {
			$(this).removeClass(HoverClass);
		}
	);

}

function basename(path, suffix) {
    // Returns the filename component of the path  
    // 
    // version: 1109.2015
    // discuss at: http://phpjs.org/functions/basename    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Ash Searle (http://hexmen.com/blog/)
    // +   improved by: Lincoln Ramsay
    // +   improved by: djmix
    // *     example 1: basename('/www/site/home.htm', '.htm');    // *     returns 1: 'home'
    // *     example 2: basename('ecra.php?p=1');
    // *     returns 2: 'ecra.php?p=1'
    var b = path.replace(/^.*[\/\\]/g, '');
    if (typeof (suffix) == 'string' && b.substr(b.length - suffix.length) == suffix) {
        b = b.substr(0, b.length - suffix.length);
    }

    return b;
}
