﻿
var Images = {"plzWait":"/YUI/Public/Images/wait22.gif" 
                , "imgDelete":"/YUI/Public/Images/delete16.gif"
                , "imgEdit":"/YUI/Public/Images/edit16.gif"
                , "ServerError" : "/YUI/Public/Images/ServerError40.gif"
                , "Refresh" : "/YUI/Public/Images/reload16.gif"
                , "New" : "/YUI/Public/Images/new16.gif"
                , "List" : "/YUI/Public/Images/List.gif"
                
                               
                }
var frmWait = null;
LoadImages() ;


function $get(objName)
{
  return  YAHOO.util.Dom.get(objName)
}
//__________________________________________________________

function addEvent(objName , event , handler)
{
 removeEvent(objName , event)
 if (typeof(objName)== "string")
   YAHOO.util.Event.addListener($get(objName), event, handler );
 else
   YAHOO.util.Event.addListener(objName, event, handler );
    
    
}
//__________________________________________________________

function removeEvent(objName , event )
{
 if (typeof(objName)== "string")
   YAHOO.util.Event.removeListener($get(objName), event, null );
 else
   YAHOO.util.Event.removeListener(objName, event, null );
}

//__________________________________________________________
function ShowWaitDialog()
{
    if (frmWait == null )
    {
        frmWait =  new YAHOO.widget.Dialog("frmWait_121321",
           {width:"20em",fixedcenter:true,close:false,draggable:false,modal:true,visible:false,constraintoviewport : true});
	    frmWait.setBody("<img src='./YUI/Public/Images/wait22.gif' alt='' /> <div style='font-family: Tahoma; font-size: 8pt'> لطفا چند لحظه صبر كنيد</div>")
        frmWait.render(document.body);
     }   
	frmWait.show()
	//alert("");
}
//__________________________________________________________

function HideWaitDialog()
{
		frmWait.hide()
		frmWait.hide()
		
}
//__________________________________________________________

function LoadImages()
{
   var img = new Image();
   img.src=Images.plzWait;
   img.src=Images.imgDelete;
   img.src=Images.imgEdit ;
   img.src=Images.ServerError ;
   img.src=Images.Refresh ;
   img.src=Images.New ;
   img.src=Images.List ;
  
  
}
//__________________________________________________________
function Connect(PageUrl , Params  ,OnSuccess , OnFailure )
{

   var handleSuccess = function(o){
       HideWaitDialog();
       //---------- Server Error ---------------
       if (o.responseText == 'ServerError')
        {
              var frmServerError = null ;
              var handleBack = function() {frmServerError.hide()}
              frmServerError = new YAHOO.widget.Dialog("frmServerError_2113215",
                {width:"30em",fixedcenter:true,close:false,draggable:true,modal:true,visible:false,constraintoviewport : true
                 ,buttons : [ { text:"بازگشت", handler:handleBack , isDefault:true } ]
		         });
	          frmServerError.setBody("<img src = '" + Images.ServerError + "'/><div dir='rtl' style='font-family: Tahoma; font-size: 8pt'>هنگام انجام عمليات در سرور خطايي رخ داده </div>");
              frmServerError.render(document.body);
	          frmServerError.show();
        }
        else
        {
           if (OnSuccess!=null )
                OnSuccess(o);
        }
   };
   
   var handleFailure = function(o){
      HideWaitDialog();
      var frmConnFail = null ;
      var handleRetry = function() {frmConnFail.hide(); Connect(PageUrl , Params  ,OnSuccess , OnFailure )}
      var handleCancel = function(){frmConnFail.hide(); if (OnFailure!=null )OnFailure(o); }
      
      frmConnFail = new YAHOO.widget.Dialog("frmConnFail_323233",
        {width:"30em",fixedcenter:true,close:false,draggable:true,modal:true,visible:false,constraintoviewport : true
         ,buttons : [ { text:"ارتباط مجدد", handler:handleRetry , isDefault:true },
					  { text:"انصراف" , handler:handleCancel } ]
		 });
	  frmConnFail.setBody("<div dir='rtl' style='font-family: Tahoma; font-size: 8pt'>ارتباط با بانك قطع شده</div>");
      frmConnFail.render(document.body);
	  frmConnFail.show();

   };
   
   var callback =
   {
        success:handleSuccess
       ,failure:handleFailure
   };
   ShowWaitDialog();
    
   var request = YAHOO.util.Connect.asyncRequest('POST', PageUrl , callback,GetPOSTParm(Params));
}
//__________________________________________________________
function GetPOSTParm(input)
{
    if (input == null )
        return null ;
    else
        {
            var result = "";
            var i = 0 ;
            for( i =0 ; i<input.length ; i = i + 2)
                result = result + input[i] + "=" + encodeURIComponent(input[i+1]) + "&"
            return result
        }
}
//__________________________________________________________

function unformatNumber(obj)
{
	var result = '' ;
	for (i = 0 ; i < obj.value.length ; i++ )
	{
		if (obj.value.charAt(i) != ',')
			result += obj.value.charAt(i)
	}
	obj.select();
	if (obj.document)
		obj.document.selection.clear()
		
	obj.value = result 
}
//_________________________________________________________
function formatNumber(input){
	var arr;
	var value = input.value;
	var result = '';
	var g = 0;
	value = value.replace(/-/,'')
	arr = value.split(/\./)
	if (arr != null )
	{
		for (i = arr[0].length-1 ; i >= 0 ; i--){
			if (g == 3 ){
				result = arr[0].charAt(i) + ',' + result
				g=1;
			}else{
				result =  arr[0].charAt(i)+result 
				g +=1
			}//if
		}//for
		
		if (arr.length>1)
			result = result + '.' + arr[1];
		
	}//if
	
	if (input.value!= '' && input.value!= null && input.value.charAt(0) == '-')
		input.value = '-' +  result;
	else
		input.value =  result;
}
//_________________________________________________________
function txtNum_onblur(obj , e, isFloat , min  , max )
{
	var strValue
	if (isFloat)
	{
		strValue = parseFloat(obj.value).toString()
		floatValue = parseFloat(obj.value)
	 	if ( strValue == 'NaN' || (strValue != obj.value && (strValue + '.') != obj.value  ) )
			if (strValue == 'NaN') obj.value = '';
			else obj.value = strValue 
				
		else
			{
				if ( (max != null) && (floatValue > max) ) obj.value = max.toString();
				else if ( (min != null) && (floatValue < min) ) obj.value = Math.min(Math.max(min,0),max).toString();
			}
	}
	else
	{
	 	strValue= parseInt(obj.value).toString()
		intValue = parseInt(obj.value)
	 	if (strValue == 'NaN' || strValue != obj.value )
			if (strValue == 'NaN') obj.value = '';
			else obj.value = strValue 
		else
			{
				if ( (max != null) && (intValue > max) ) obj.value = max.toString();
				else if ( (min != null) && (intValue < min) ) obj.value = Math.min(Math.max(min,0),max).toString();
			}
		
	}
	
}
//_________________________________________________________
function txtNum_onpaste (obj, e, isFloat , min  , max )
{

	if (typeof window.clipboardData != 'undefined' )
	{
		var str  ;
		str = window.clipboardData.getData("Text");	
		if (parseFloat(str).toString() == 'NaN')
			event.returnValue = false
	}else
	{
		event.returnValue = false
	}

	txtNum_onblur(obj, e, isFloat , min  , max)

}
//_________________________________________________________
function txtNum_onkeypress(obj , e, isFloat , min  , max) {

      var val;
      if(typeof e.which != 'undefined')
            val = e.which;
      else 
            val = e.keyCode;

      switch (val) {
      
            case 0:  //navigation keys in Mozilla
            case 8:  //backspace
           // case 13: //enter
            case 48: //0
            case 49: //1
            case 50: //2
            case 51: //3
            case 52: //4
            case 53: //5
            case 54: //6
            case 55: //7
            case 56: //8
            case 57: //9
                  return true;
            case 46: //. (period)
            if (isFloat ){
            	if (obj.value.indexOf('.')>=0 )
            		return false
            	else
            		return true
            	break;
            	}else 
            		return false 
            		
            case 45://-
            	
	            if (obj.value.indexOf('-') < 0 ){
	            	var newValue = "-" + obj.value
	            	
	            	if (isFloat){
	            		if ( (min != null) && ( parseFloat(newValue ) < min) )
	            			return false
	            	}else{
	            		if ( (min != null) && parseInt(newValue ) < min )
	            			return false
					}
		            obj.value = newValue ;
	            }else{
	            	var newValue = obj.value.replace(/-/ , '')
	            	if (isFloat){
	            		if ( (max!= null) && (parseFloat(newValue) > max) )
	            			return false
	            	}else{
	            		if ( (max!= null) && (parseInt(  newValue ) > max) )
	            			return false
					}
	            	obj.value = newValue 
	            }
	            return false;

            default:
                  return false;
      }
}
//_________________________________________________________

function txtNum_onscroll(obj, e, isFloat , min  , max)
{
	txtNum_onblur(obj, e, isFloat , min  , max)
}
//_________________________________________________________

function ClearTextBox(arrTextBoxes)
{

    if (arrTextBoxes != null )
        for (i = 0 ; i<arrTextBoxes.lenght ; i++ ){
            $get(arrTextBoxes[i]).value = "";
            }
}
//_________________________________________________________
function FillComboBox(cmb , arr , displayField , valueField)
{
    try{
         cmb.innerHTML=""
         if (YAHOO.lang.isArray(arr))
            for (i = 0 ; i < arr.length ; i++ )
                cmb.options.add(new Option(arr[i][displayField],arr[i][valueField]))
	     else
                cmb.options.add(new Option(arr[displayField],arr[valueField]))
     }catch(e)
     {alert(e)}
}

//_________________________________________________________
function SearchInComboBox(cmb , Value)
{
    for (i = 0 ; i < cmb.options.length ; i++)
    {
        if (cmb.options[i].value == Value )
        {
            cmb.selectedIndex = i ;

            return i;
        }   
    }
    
    return -1 ; 
}
//_________________________________________________________

function OpenUrl(url , width , height)
{
    window.open(url,"Values","height=" + height + ",width=" + width + ",status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes");
}
//_________________________________________________________
function TextBoxKeyDown(btn, event) {
    if (document.all) {
        if (event.keyCode == 13) {
            event.returnValue = false;
            event.cancel = true;
            btn.click();
            return false;
        }
    }
    else if (document.getElementById) {
        if (event.which == 13) {
            event.returnValue = false;
            event.cancel = true;
            btn.click();
            return false;
        }
    }
    else if (document.layers) {
        if (event.which == 13) {
            event.returnValue = false;
            event.cancel = true;
            btn.click();
            return false;
        }
    }
}


