﻿/*****************************************************************************************************************/
    /* Nav Changes - Start */
    var IsIE = (navigator.appName == "Microsoft Internet Explorer");
    var tableBlock = (IsIE) ? "block" : "table" ;
    var tableRowBlock = (IsIE) ? "block" : "table-row" ;
    /* Nav Changes - End */
/*****************************************************************************************************************/
    function isInt (str)
    {
	    var i = parseInt (str);
        
	    if (isNaN (i)) return false;
	    return true;
    }
/*****************************************************************************************************************/
    function isInteger(s)
    {
	    var i;
        for (i = 0; i < s.length; i++)
        {
            // Check that current character is number.
            var c = s.charAt(i);
            if (((c < "0") || (c > "9"))) return false;
        }
        // All characters are numbers.
        return true;
    }
/*****************************************************************************************************************/
    function stripCharsInBag(s, bag)
    {
	    var i;
        var returnString = "";
        // Search through string's characters one by one.
        // If character is not in bag, append to returnString.
        for (i = 0; i < s.length; i++)
        {
            var c = s.charAt(i);
            if (bag.indexOf(c) == -1) returnString += c;
        }
        return returnString;
    }
/*****************************************************************************************************************/
    function daysInFebruary (year)
    {
	    // February has 29 days in any year evenly divisible by four,
        // EXCEPT for centurial years which are not also divisible by 400.
        return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
    }
/*****************************************************************************************************************/
    function DaysArray(n)
    {
	    for (var i = 1; i <= n; i++)
	    {
		    this[i] = 31;
		    if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		    if (i==2) {this[i] = 29}
       }
       return this
    }
/*****************************************************************************************************************/
    function isDate(dtStr)
    {
	    var daysInMonth = DaysArray(12);
	    var pos1=dtStr.indexOf(dtCh);
	    var pos2=dtStr.indexOf(dtCh,pos1+1);
	    var strDay=dtStr.substring(0,pos1);
	    var strMonth=dtStr.substring(pos1+1,pos2);
	    var strYear=dtStr.substring(pos2+1);
	    
	    strYr = strYear;
	    if (strDay.charAt(0)=="0" && strDay.length>1) strDay = strDay.substring(1);
	    if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth = strMonth.substring(1);
	    for (var i = 1; i <= 3; i++)
	    {
		    if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	    }
	    
	    month   = parseInt(strMonth);
	    day     = parseInt(strDay);
	    year    = parseInt(strYr);
	    
	    if (pos1==-1 || pos2==-1)
	    {
		    alert("The date format should be : dd/mm/yyyy");
		    return false;
	    }
	    if (strMonth.length<1 || month<1 || month>12)
	    {
		    alert("Please enter a valid month");
		    return false;
	    }
	    if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
	    {
		    alert("Please enter a valid day");
		    return false;
	    }
	    if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
	    {
		    alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
		    return false;
	    }
	    if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
	    {
		    alert("Please enter a valid date");
		    return false;
	    }
        return true;
    }
/*****************************************************************************************************************/
/* Misc Functions - Start */
/*****************************************************************************************************************/
    function ReturnToParent()
    {
	    try
	    {
		    window.parent.focus();
	    }
	    catch(e){}
	    finally
	    {
		    window.close();
	    }
    }
/*****************************************************************************************************************/
    String.prototype.fixChars = changeProblemChars
    function changeProblemChars()
    {
	    var w_apostrophe = /\'/g;
	    var retVal = this.toString()
	    if (retVal=="") return ""
	    retVal = retVal.replace(w_apostrophe,"\`")
	    return retVal
    }
/*****************************************************************************************************************/
    String.prototype.RemoveFinalChar = _RemoveFinalChar;
    function _RemoveFinalChar()
    {
	    return this.toString().substr(0,this.toString().length-1);
    }
/*****************************************************************************************************************/
    String.prototype.RemoveString = function(strToRemove) 
    {
	    var retVal = this.toString();
	    if (retVal=="") return "";
	    retVal = retVal.replace(strToRemove,"");
	    return retVal;
    }
/*****************************************************************************************************************/
    String.prototype.IsNumeric = _IsNumeric  //  check for valid numeric strings
    function _IsNumeric()
    {
	    var strValidChars = "0123456789.-";
	    var strString = this.toString();
	    var strChar;
	    var blnResult = true;

	    if (strString.length == 0) return false;

	    //  test strString consists of valid characters listed above
	    for (i = 0; i < strString.length && blnResult == true; i++)
	    {
		    strChar = strString.charAt(i);
		    if (strValidChars.indexOf(strChar) == -1)
			    blnResult = false;
	    }
	    return blnResult;
    }
/*****************************************************************************************************************/
    String.prototype.IsEmail = function()
    {
	    var email = this.toString();
        
	    // a very simple email validation checking. 
	    // you can add more complex email checking if it helps 
        var splitted = email.match("^(.+)@(.+)$");
        if(splitted == null) return false;
        if(splitted[1] != null )
        {
            var regexp_user=/^\"?[\w-_\.]*\"?$/;
            if(splitted[1].match(regexp_user) == null) return false;
        }
        if(splitted[2] != null)
        {
          var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
          if(splitted[2].match(regexp_domain) == null)
          {
	        var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
	        if(splitted[2].match(regexp_ip) == null) return false;
          }// if
          return true;
        }
	    return false;
    }
/*****************************************************************************************************************/
//^[a-z]\w*([.\-]\w+)*@[a-z]\w*([.\-]\w+)*\.[a-z]{2,3}$
//^[w.-]+@[a-z0-9-]+(.[a-z0-9-]{1,})*(.[a-z]{2,3}){1,2}$
/*****************************************************************************************************************/
/* Misc Functions - End  */
/*****************************************************************************************************************/

/*****************************************************************************************************************/
/* Iframe Misc - Start */
/*****************************************************************************************************************/
    function checkSize(strParentId, intAddMargin)
    {
	    if (document.readyState != 'complete')
	    {
		    setTimeout("checkSize('" + strParentId + "', " + intAddMargin + ")",100);
		    return;
	    }
	    try
	    {
	        /*	
	        alert(window);
	        alert(window.parent);
	        alert(window.parent.document);
	        alert(window.parent.document.getElementById(strParentId));
	        */
		    window.parent.document.getElementById(strParentId).height = document.body.scrollHeight + intAddMargin;
	    }
	    catch(e){}
    }
/*****************************************************************************************************************/
/* Iframe Misc - End */
/*****************************************************************************************************************/

/*****************************************************************************************************************/
/* Ajax - Start */
/*****************************************************************************************************************/
    function GetAjaxValue(action, pars, ptrFunction)
    {
	    new Ajax.Request(
		    AjaxUrl,
		    {
			    method: 'post', 
			    parameters: "Action=" + action + "&" + pars, 
			    onComplete: ptrFunction
		    });
    }
/*****************************************************************************************************************/
/* Ajax - End */
/*****************************************************************************************************************/
    function GetXmlDomFromString(strXml)
    {
	    if (window.ActiveXObject)// code for IE
	    {
		    var doc=new ActiveXObject("Microsoft.XMLDOM");
		    doc.async="false";
		    doc.loadXML(strXml);
	    }
    	else // code for Mozilla, Firefox, Opera, etc.
	    {
		    var parser=new DOMParser();
		    var doc=parser.parseFromString(strXml,"text/xml");
	    }
	    return doc;
    }
/*****************************************************************************************************************/
    function addLoadEvent(func)
    {
        var oldonload = window.onload;
        if (typeof window.onload != 'function')
        {
            window.onload = func;
        }
        else
        {
            window.onload = function()
            {
                if (oldonload)
                {
                    oldonload();
                }
                func();
            }
        }
    }
/*****************************************************************************************************************/
/*
addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
addLoadEvent(function() {
  // more code to run on page load 
});
*/
/*****************************************************************************************************************/
/**********************************************************************************************************/
    function IsValidTZ(idnum)
    {
        while (idnum.length<9)
        {
            idnum="0"+idnum;
        }
        idnum1=idnum.substr(0,1)*1;
        idnum2=idnum.substr(1,1)*2;
        idnum3=idnum.substr(2,1)*1;
        idnum4=idnum.substr(3,1)*2;
        idnum5=idnum.substr(4,1)*1;
        idnum6=idnum.substr(5,1)*2;
        idnum7=idnum.substr(6,1)*1;
        idnum8=idnum.substr(7,1)*2;
        idnum9=idnum.substr(8,1)*1;
        
        if (idnum1>9) idnum1=(idnum1%10)+1;
        if (idnum2>9) idnum2=(idnum2%10)+1;
        if (idnum3>9) idnum3=(idnum3%10)+1;
        if (idnum4>9) idnum4=(idnum4%10)+1;
        if (idnum5>9) idnum5=(idnum5%10)+1;
        if (idnum6>9) idnum6=(idnum6%10)+1;
        if (idnum7>9) idnum7=(idnum7%10)+1;
        if (idnum8>9) idnum8=(idnum8%10)+1;
        if (idnum9>9) idnum9=(idnum9%10)+1;
        
        var sumval=idnum1+idnum2+idnum3+idnum4+idnum5+idnum6+idnum7+idnum8+idnum9;
        
        sumval=sumval%10
        if (sumval>0)
        {
            alert("תעודת הזהות שגוייה");
            return false;
        }
        return true;
    }
/**********************************************************************************************************/
//  Format currency from: 1568.67 to: 1,568.67
/**********************************************************************************************************/
    function formatCurr(Curr)
    {
        Curr = parseFloat(Curr);
        Curr = Curr.toFixed(2);
    	
        var re = /(-?\d+)(\d{3})/;
        while ( re.test(Curr) )
        {
	        Curr = Curr.replace(re, "$1,$2");
        }
    	return Curr;
    }
/**********************************************************************************************************/
/**********************************************************************************************************/
