﻿//New Matin CallBack Library v1.0040
function CallBack(WebServiceMethod,OnChange)
{
    var XML = CreateXmlRequest(OnChange);
    function CreateXmlRequest(OnChange)
    {
        var XmlRequest;
        if(document.all)
        {
            XmlRequest=new ActiveXObject('Microsoft.XMLHTTP');
        }
        else
        {
            XmlRequest= new XMLHttpRequest();
        }
        if(!XmlRequest)
            alert('Your browser is too old to see this pages!!!!!');
        else if(typeof(OnChange)=='function')
        {
            XmlRequest.onreadystatechange = OnChange ;
        }
        return XmlRequest;
    }
    function GetResult(NamesAndValues,WebServerURL)
    {
        if(this.XML)
        {
            try
            {
                if(WebServerURL)
                    this.XML.open("POST",WebServerURL+'/'+WebServiceMethod,true);
                else
                    this.XML.open("POST","Services/CommonService.asmx/"+WebServiceMethod,true);
                this.XML.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                this.XML.setRequestHeader("Connection", "close");
                this.XML.send(NamesAndValues);
                XMLDOM = CreateXmlDOM(XML);
            }
            catch(e)
            {
                ShowException(e,2);
            }
        }
    }
    function CreateXmlDOM()
    {
        var XmlDOM ;
        if(window.ActiveXObject)
        {
            XmlDOM=new window.ActiveXObject("Microsoft.XMLDOM")
            XmlDOM.load(XML.responseXML);
        }
        else
        {
            var parser=new DOMParser();
            XmlDOM=parser.parseFromString(XML.responseText,"text/xml");;
        }
        XmlDOM.async = false;
        return XmlDOM;
    }
    this.CreateXmlRequest = CreateXmlRequest;
    this.CreateXmlDOM = CreateXmlDOM;
    this.WebServiceMethod = WebServiceMethod;
    this.GetResult = GetResult;
    this.XML = XML;
}
//Global Pages Scripts
var lang = 1;        // 1: Persian, 0: English
var nativelang = 0;  // 1: Persian, 0: English
var isirikey = 
[
  0x0020, 0x0021, 0x061B, 0x066B, 0xFDFC, 0x066A, 0x060C, 0x06AF,
  0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
  0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7,
  0x06F8, 0x06F9, 0x003A, 0x06A9, 0x003E, 0x003D, 0x003C, 0x061F,
  0x066C, 0x0624, 0x200C, 0x0698, 0x06CC, 0x064D, 0x0625, 0x0623,
  0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x0654, 0x005D,
  0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0670, 0x064C,
  0x0653, 0x0650, 0x06A9, 0x062C, 0x067E, 0x0686, 0x00D7, 0x0640,
  0x0698, 0x0634, 0x0630, 0x0632, 0x06CC, 0x062B, 0x0628, 0x0644,
  0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x0626, 0x062F, 0x062E,
  0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
  0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E
];
function ConfirmDelete()
{
    return(confirm("Are you sure to delete this Item?"));
}
function PersianKeyDown(e,sender)
{
    if (window.event)
    {
        if(!e)
            e = window.event;
        if(!sender)
            sender=e.srcElement;
    }
    else
    {
        if(!sender)
            sender = e.target;
    }
    if (e.keyCode==119)
    {
        if (lang == 0)
            setPersian(sender,false);
        else
            setEnglish(sender,false);
        try 
        {
          e.preventDefault();
        } 
        catch (ex) 
        {
            //ShowException(ex,lang);
        }
        return false;
    }
    return true;
}
function PersianKeyPress(e,sender)
{
    var key,obj;
    if (window.event) {e = window.event;obj = e.srcElement;key = e.keyCode;} 
    else {obj = e.target;key = e.charCode;}
    if(!obj && sender)obj=sender;if (key >= 0x00FF){nativelang = 1;setPersian(sender,false);} 
    else if(nativelang == 1){nativelang = 0;setEnglish(sender,false);}
    if (key < 0x0020 || key >= 0x007F || e.metaKey)return true;
    if (lang == 1){if (key == 0x0020 && e.shiftKey)key = 0x200C;else key = isirikey[key - 0x0020];try{e.initKeyEvent("keypress", true, true, document.defaultView, false, false, true, false, 0, key, obj);}catch(err){try{e.keyCode = key;}catch(err){try{pnhMozStringInsert(obj, String.fromCharCode(key));e.preventDefault();}catch(err){obj.value += String.fromCharCode(key);e.preventDefault();}}}}
    return true;
}
function setPersian (obj, quiet){lang = 1;if (obj){obj.style.textAlign = "right";obj.style.direction = "rtl";obj.focus();}if (!quiet)window.defaultStatus = "Persian Keyboard (Press F8 to switch English)";}
function setEnglish (obj, quiet)
{
    lang = 0;if (obj){obj.style.textAlign = "left";obj.style.direction = "ltr";obj.focus();}
    if (!quiet)window.defaultStatus = "English Keyboard (Press F8 to switch Persian)";
}
function NumberKeyPress(e)
{
    var ckp;
    if (window.event){kcp = e.keyCode;} 
    else {kcp = e.charCode;}
	if (kcp >=48 && kcp<=57){/* Numbers */return true;}
	if (kcp >=40 && kcp<=42){return false;}
	else if(kcp==43){/* + */return true;}
	else if(kcp==44){return false;}
	else if(kcp==45){/* - */return true;}
	else if(kcp==46){/* . */return true;}
	else if(kcp==47){/* / */return true;}
	else if(kcp==32){/* SPACE */return false;}
	return false;
}
function ShowException(ex,Lang)
{
    if(Lang && Lang==1)alert('خطا در بازخواني اطلاعات'+'\n'+ex.message);
    else alert('Error Loading Page (Matin Script Error Handler).\n Error:'+ex.message)
    return false;
}
function OpenWindow(Path,Width,Height,modal)
{
    if(!Width)Width='600';
    if(!Height)Height='400';
    var OpenedWindow = null ;
    if(modal && document.all)
        OpenedWindow = window.showModalDialog( Path ,'DialogBox','dialogTop:50px;dialogLeft:200px;edge:sunken ;center: Yes; resizable: Yes; status: No;dialogWidth:'+Width+'px;dialogHeight:'+Height+'px;').focus();
    else
	    OpenedWindow = window.open( Path ,'DialogBox','scrollbars=yes,width='+Width+',height='+Height+'');
	OpenedWindow.document.oncontextmenu=function(){return false;};
	return OpenedWindow;
}
function NavigateTo(Path)
{
    if(document.location){document.location=Path;}
    else if(typeof(navigate)=="function"){navigate(Path);}
}
function CheckFrame(RootLocation)
{
    if(!RootLocation || RootLocation==null || RootLocation=='undefined')RootLocation='../Login.aspx';
    if(top.frames.length==0 || window.name=='')document.location=RootLocation;
}
function DatePickerCallBack(value,NextMethod)
{
    //if(value.length==0)window.alert("Invalid Date Selected.");
    if(arguments[1])
    {
        var spnDP=$('spn'+arguments[1].id);
        if(value.length==0)
        {
            spnDP.innerHTML='&nbsp;<img width="14" id="imgInvalid'+arguments[1].id+'" align="middle" alt="Invalid Date Selected." src="../App_Themes/General/Images/NotValid.gif" onerror="this.style.display=\'none\';" />';
            $(arguments[1].id).value='';
        }
        else if($(arguments[1].id) && $(arguments[1].id).value!='')
            spnDP.innerHTML='&nbsp;<img width="14" id="imgValid'+arguments[1].id+'" align="middle" alt="Valid Date." src="../App_Themes/General/Images/Valid.gif" onerror="this.style.display=\'none\';" />';
    }
}
function DoCallBack(value){}
function CatchError(sender)
{
    if(sender.src)
        sender.style.display="none";
    return false;   
}
function ValidateMe(SenderID)
{
    var imgInvalid=$('imgInvalid'+SenderID); 
    var sender=$(SenderID); 
    if(sender.value==''|| imgInvalid) return false;
    return true;
}
function GetPureText(text)
{
    var re = /(<([^>]+)>)/gi;
    return text.replace(re, "");
}
/*------------New Methods----------*/
function HideElement(ElementID)
{
    var Elm=$(ElementID);
    if(Elm){Elm.style.display='none';}
}
function ShowConfirm(strMessage,sender)
{
    if(sender==null)return;
    sender.disabled = true;
    var strContent='<table oncontextmenu="return false;" style="display:block;" id="tblShowAlert" cellspacing="0" cellpadding="0" class="MessageTable" border="0">';
    strContent+='<tr bgcolor="#3F7DAB" id="ShowAlertdragTR" class="Header drag-handle">';
    strContent+='<td colspan="2" align="left" width="350px" height="20" style="color:White;" class="Border" valign="middle">Message alert';
    strContent+='<img src="/App_Themes/General/Images/AlertClose.gif" style="position:absolute;right:5px;cursor:pointer;" alt="Close" onclick="HideElement(\'tblShowAlert\')$(\''+sender.id+'\').disabled=false;" />';
    strContent+='</td></tr>';
    strContent+='<tr height="40px">';
    strContent+='<td colspan="2">&nbsp;'+strMessage+'</td>';
    strContent+='</tr>';
    strContent+='<tr><td colspan="2" align="right">';
    strContent+='<input id="btnConfirmOK" type="button" onclick="HideElement(\'tblShowAlert\');'+sender.onaction+';$(\''+sender.id+'\').disabled=false;" value="Ok" style="width:60px;font-size:8pt;" />';
    strContent+='<input id="btnConfirmCancel" type="button" onclick="HideElement(\'tblShowAlert\');$(\''+sender.id+'\').disabled=false;" value="Cancel" style="width:60px;font-size:8pt;" />';
    strContent+='</tr>';
    strContent+='</table>';
    var dvExtraMessages=$('dvExtraMessages');
    if(dvExtraMessages)
        dvExtraMessages.innerHTML=strContent;
    else
    {
        dvExtraMessages=document.createElement('div');
        dvExtraMessages.id='dvExtraMessages';
        dvExtraMessages.innerHTML=strContent;
        document.getElementsByTagName('body')[0].appendChild(dvExtraMessages);
    }
    if(Drag && typeof(Drag.init)=='function')Drag.init($("ShowAlertdragTR"),150,300,$("tblShowAlert"),5,1000,5,1000);
    $('btnConfirmOK').focus();
    if(typeof(CollectGarbage)=='function')CollectGarbage();
}
function CheckCapsLock(e,TargetElementID,strMessage) 
{
    var myKeyCode=0;
    var myShiftKey=false;
    var myMsg = 'Caps Lock is On.To prevent entering your password incorrectly,you should press Caps Lock to turn it off.';;
    var TargetElement = $(TargetElementID);
    if(strMessage)
        myMsg = strMessage;
    if (document.all)
    {
        myKeyCode=e.keyCode;
        myShiftKey=e.shiftKey;
    }
    else if (document.layers)
    {
        myKeyCode=e.which;
        myShiftKey=( myKeyCode == 16 ) ? true : false;
    } 
    else if ( document.getElementById ) 
    {
        myKeyCode=e.which;
        myShiftKey=( myKeyCode == 16 ) ? true : false;
    }
    if (( myKeyCode >= 65 && myKeyCode <= 90 ) && !myShiftKey ) 
    {
        if(TargetElement) TargetElement.innerText = myMsg;
    } 
    else if ( ( myKeyCode >= 97 && myKeyCode <= 122 ) && myShiftKey ) 
    {
        if(TargetElement) TargetElement.innerText = myMsg;
    }
    else if(TargetElement.innerText==myMsg)
    {
        TargetElement.innerText='';
    }
}
var Try = 
{
  these: function() 
  {
    var returnValue;
    for (var i = 0, length = arguments.length; i < length; i++) 
    {
      var lambda = arguments[i];
      try
      {
        returnValue = lambda();
        break;
      } 
      catch(e){}
    }
    return returnValue;
  }
}
function $(id)
{
    return document.getElementById(id);
}
function isValidNumber(number)
{
    var nonDigit = /\D+/;
    if(nonDigit.test(number) || number == '0' || number == "") 
    {
        return false;
    }
    return true;
}
function FadeIn(ElementID,Opacity,Step)
{
	SetOpacity(ElementID, Opacity/20);
	Opacity +=1;
	if(Opacity<=20)
	{
		setTimeout("FadeIn('"+ElementID+"',"+Opacity+","+Step+")",(typeof(Step)=='number' ? Step : 1));
	}
}
function FadeOut(ElementID,Opacity,Step)
{
	SetOpacity(ElementID, Opacity/20);
	Opacity -=1;
	if(Opacity >= 0)
	{
		setTimeout("FadeOut('"+ElementID+"', "+Opacity+","+Step+")",(typeof(Step)=='number' ? Step : 1));
	}
}
function SetOpacity(ElementID, value)
{
    var targetobject = $(ElementID);
	if (targetobject.filters)
	{
		if ( targetobject.filters[0] && typeof(targetobject.filters[0].opacity)=="number") //IE6
			targetobject.filters[0].opacity=value*100;
		else
			targetobject.style.filter="alpha(opacity="+value*100+")";
	}
	else if (typeof(targetobject.style.MozOpacity)!="undefined")
		targetobject.style.MozOpacity=value;
	else if (typeof(targetobject.style.opacity)!="undefined")
		targetobject.style.opacity=value;
}
function DoFader(ElementID,Step,Count)
{
    FadeOut(ElementID,20,Step);
    setTimeout("FadeIn('"+ElementID+"',1,"+Step+");",(Step*20));
    if(Count)
    {
        Count -=1;
        if(Count>0)
            setTimeout('DoFader("'+ElementID+'",'+Step+','+Count+');',(Step*20)*2);
    }
    else
        setTimeout('DoFader("'+ElementID+'",'+Step+',null);',(Step*20)*2);
}
