/******************************************************
Start--Adding trim power to JavaScript String Object!!!
******************************************************/
String.prototype.trim = function(t) {
	var chars = t || "\\s";
	var str_ltrim="";
	var str_rtrim="";
	str_ltrim=this.replace(new RegExp("^[" + chars + "]+", "g"), "");
	str_rtrim=str_ltrim.replace(new RegExp("[" + chars + "]+$", "g"), "");
	return str_rtrim;	
};

String.prototype.stripHTML = function()
{
        // What a tag looks like
        var matchTag = /<(?:.|\s)*?>/g;
        // Replace the tag
        return this.replace(matchTag, '');
};

String.prototype.stripNBSP = function()
{
        // What a tag looks like
        var matchTag = /&nbsp;/g;
        // Replace the tag
        return this.replace(matchTag, "");
};



function navigate(page) {
        window.location.href=page;
      }
      
function setFocus(id) {
    var fld = document.getElementById(id);
    fld.focus();
  }       
function update_tab(type)
{

   var ret=validate_tab();
   if(ret)
   { 
   
    if(type=='c'){
        document.updatetab.saveclose.value=1;
        document.forms['updatetab'].submit();
   }
   else if(type=='n'){
       document.forms['updatetab'].submit();
   }
    else if(type=='p'){
        document.updatetab.prevt.value=1;
        document.forms['updatetab'].submit();
   }
   }
 
}
function entsub(e) {
        var keynum
        var keychar
        var numcheck
        
    
        if(window.event) // IE
        {
            keynum = e.keyCode
        }
        else if(e.which) // Netscape/Firefox/Opera
        {
            keynum = e.which
        }
        if(keynum==13){
            update_tab('n');
        }
    }
    
   
/****************************************************
End--Adding trim power to JavaScript String Object!!!
****************************************************/

/******************************************************/
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
} 
/***************************************************/
function isblank(strval)
{
   	var len = strval.length;
	for (var i = 0; i < len; i++)
	{
      if (strval.charAt(i) != " ")
      {
	     return false;				// If there is any non-space character, isblank() returns false
      }
   }
   return true;
}



function checkLength(strval,maxlength,minlength)
{
	if((strval.length < minlength) || (strval.length > maxlength))
	{
		return false;
	}
	return true; 
}

function validEmail(Paddress) {
	var Vre;
		var Vret;
		Vre = /^[a-zA-Z0-9_\-\.]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,4}$/;
		Vret = Paddress.search(Vre);
		if(Vret == 0)
			{return true}
		else
			{return false}

}

function isnumeric(strval) {
	var bool = isNaN(strval);
	return (!bool);
}

function checkPositive(strval)
{
   
	if(parseFloat(strval) < '0'){
	
		return false;
	}
	return true;
}

function checkDecimal(strval){
   strval1 = strval.split(".");
    if((strval1.length)>1){
    
        return false;
    }
    return true;
}

function isDate(day, mon, year)
{  
	dtcorrect = true;
	if (isblank(day) || isblank(mon) || isblank(year) )
	{
	   dtcorrect = false;
	}

	if ((year % 4) == 0)
	{
		if (mon == '02')
		{
			if (day > 29)
			{
				dtcorrect = false;
			}
		}
	}
	else
	{
		if (mon == '02')
		{
			if (day > 28)
			{
				dtcorrect = false;
			}
		}
	}
	switch (mon)
	{
		case '04':
		case '06':
		case '09':
		case '11': if (day > 30)
					{
						dtcorrect = false;
					}
	}
	return dtcorrect;
}

function validate_phone(val)
{      
		var Vre;
		var Vret;

		//Vre = /^[0-9\(\)\-\s]+$/; /// \ - ()
        //Vre = /^[0-9\\\/\(\)\-\s]+$/; /// \ - ()
        Vre = /^[a-zA-Z0-9\(\)\-\s]+$/; 

		if(!Vre.test(val))
		{
			 return true;
		}
		else
		{
			 return false;
		}
}


function validate_password(val)
{      
        var Vre;
        var Vret;

        Vre = /^[a-zA-Z0-9]+$/; 

        if(!Vre.test(val))
        {
             return true;
        }
        else
        {
             return false;
        }
}
/*
function validate_tele(val) {
		var Vre;
		var Vret;
		Vre = /^[a-zA-Z0-9\()\-\,\s]+$/;
		if(!Vre.test(val))
			{return true}
		else
			{return false}
}*/

function val_username_pwd(val) {
	var valid;
	valid = /^[a-zA-Z0-9]+$/;
	if (!valid.test(val)) {
		return true;
	} else {
		return false;
	}
}


function val_zip(val) {
    var valid;
  //  valid = /^[a-zA-Z0-9\s\/]+$/;
    valid = /^[a-zA-Z0-9 \s]+$/;
    if (!valid.test(val)) {
        return true;
    } else {
        return false;
    }
}


function validateZIP(field) {
var valid = "0123456789-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXZ";
var hyphencount = 0;
/*
if (field.length!=5 && field.length!=10) {
alert("Please enter your 5 digit or 5 digit+4 zip code.");
return false;
}
*/
for (var i=0; i < field.length; i++) {
temp = "" + field.substring(i, i+1);
if (temp == "-") hyphencount++;
if (valid.indexOf(temp) == "-1") {
//alert("Invalid characters in your zip code.  Please try again.");
return false;
}
/*
if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
return false;
   }*/
}
return true;
} 



function validFields(val) {
	var Vre;
		var Vret;
		Vre = /^[a-zA-Z0-9\-\+\(\)\%\_\s\/\\\.\,\<\>\?\;\:\&\*\^\$\#\@\!\|\=\[\]\{\}]+$/;  
		Vret = val.search(Vre);
		if(Vret == 0)
			{return true}
		else
			{return false}      
}

function isDate(day, mon, year)
{  
	dtcorrect = true;
	if (isblank(day) || isblank(mon) || isblank(year) )
	{
	   dtcorrect = false;
	}

	if ((year % 4) == 0)
	{
		if (parseInt(mon) == 2)
		{
			if (day > 29)
			{
				dtcorrect = false;
			}
		}
	}
	else
	{
		if (parseInt(mon) == 2)
		{
			if (day > 28)
			{
				dtcorrect = false;
			}
		}
	}
	switch (parseInt(mon))
	{
		case 4:
		case 6:
		case 9:
		case 11: if (day > 30)
					{
						dtcorrect = false;
					}
	}   
	return dtcorrect;
}

function CompareDates(day1,month1,year1,day2,month2,year2)

{
   
   var date1 = new Date(year1, month1-1, day1);
   var date2 = new Date(year2, month2-1, day2);
   
   if(date2 < date1)
   {
      return false;
   }
   else
   {
      return true;
   }
}

function validFoldername(val) {
	    var Vre;
		Vre = /^[a-zA-Z0-9 \-\_]+$/;     
		if(!Vre.test(val))
			{return true;}
		else
			{return false;}        
}
 function post_pdf(form_name) {
 
  document.forms[form_name].action="dompdf/generate_pdf.php";  
  document.forms[form_name].submit();
  
}

 function post_pdf_admin(form_name) {
  document.forms[form_name].action="../dompdf/generate_pdf.php";  
  document.forms[form_name].submit();
  
}
      function show1(id,header,bodytext) { 
          //alert(bodytext);
          var textid = parseInt(id);
          textid = textid-1;
          id = "th_"+id;
          var curleft = curtop = 0;
          var obj = document.getElementById(id);
          if (obj.offsetParent) {
                curleft = obj.offsetLeft
                curtop = obj.offsetTop
                while (obj = obj.offsetParent) {
                    curleft += obj.offsetLeft
                    curtop += obj.offsetTop
                }
          }
          
          var origheight = curtop;
          curtop =  curtop - 68;
          
          /*var popheight = $("#pop").height();
          var halfpopheight = popheight/2;
          var totheight = curtop+popheight;    
          var windowheight =  document.body.clientHeight;*/ 
          //alert(id);
        
          $("#pop").css("left",curleft+20);
          $("#pop").css("top",curtop);
          $("#popHeader1").html(header);
          $("#poptext1").html(bodytext);  
          $("#pop").css("display","block");  
          if(id=="th_3")
          {  
           $("#user_type").css("visibility","hidden"); 
          }
          
                 
      }
      
      function closeshow1(id) {
         
         id = "th_"+id;  
         $("#pop").css("display","none"); 
         $("#popHand").css("height",54);                             
         if(id=="th_3")
          { 
           $("#user_type").css("visibility","visible");  
          }
      }
      
      function showpop11() {
        
          $("#pop").css("display","block");
          header=document.getElementById('popHeader1').innerHTML;
          
          if(header=="<B>What are the different user types?</B><BR>")
          {
          
           $("#user_type").css("visibility","hidden");   
          }
      }
      function closepop11() {
          $("#pop").css("display","none");
          $("#user_type").css("visibility","visible");     
      }
          //***********************************************************
          
          
 function show(id,header,bodytext) { 
          var textid = parseInt(id);
          textid = textid-1;
          id = "th_"+id;
          
          var curleft = curtop = 0;
          var obj = document.getElementById(id);
          if (obj.offsetParent) {
                curleft = obj.offsetLeft
                curtop = obj.offsetTop
                while (obj = obj.offsetParent) {
                    curleft += obj.offsetLeft
                    curtop += obj.offsetTop
                }
          }
          
          var origheight = curtop;
          curtop =  curtop - 60;
          //alert(curtop + ' ' + bodytext);
          $("#popSmall").css("left",curleft-5);
          $("#popSmall").css("top",curtop);
          $("#popHeaderSmall").text(header);
          $("#poptext").html(bodytext);  
          $("#popSmall").css("display","block");  
      }
      
      function closeshow(id) {
         id = "th_"+id;  
         $("#popSmall").css("display","none"); 
         $("#popHand").css("height",54);                             
      }
        
     function showuser(id,header,bodytext) { 
           
             
          var textid = parseInt(id);
          textid = textid-1;
          id = "th_"+id;
          var curleft = curtop = 0;
          var obj = document.getElementById(id);
          if (obj.offsetParent) {
                curleft = obj.offsetLeft
                curtop = obj.offsetTop
                while (obj = obj.offsetParent) {
                    curleft += obj.offsetLeft
                    curtop += obj.offsetTop
                }
          }
          
          var origheight = curtop;
          curtop =  curtop - 68;
          $("#popSmall").css("left",curleft-5);
          $("#popSmall").css("top",curtop);
          $("#popHeaderSmall").html(header);
          $("#poptext").html(bodytext);  
          $("#popSmall").css("display","block");  
                 
      }
      
      function closeshowuser(id) {
         id = "th_"+id;  
         $("#popSmall").css("display","none"); 
         $("#popHand").css("height",54);                             
      }   
        
        
       function showpop() {
          $("#popSmall").css("display","block");
      }
        function closepop() {
          $("#popSmall").css("display","none");
      }   
      
function validate_ejamaat(val) {
        var Vre;
        var Vret;
        Vre = /^[0-9]+$/;
        if(!Vre.test(val))
            {return true}
        else
            {return false}
}

function textCounter( field, countfield, maxlimit ) {
  if ( field.value.length > maxlimit )
  {
    field.value = field.value.substring( 0, maxlimit );
    alert( 'Textarea value can only be '+maxlimit+' characters in length.' );
    return false;
  }
  else
  {
    countfield.value = maxlimit - field.value.length;
  }
}

function valid_name(val){
    var Vre;
    var Vret;

    Vre = /^[a-zA-Z \s]+$/; 

    if(!Vre.test(val)){
         return true;
    }else{
         return false;
    }
}

function valid_address(val){
    var Vre;
    var Vret;

    Vre = /^[a-zA-Z0-9 \s\,\/\-]+$/; 

    if(!Vre.test(val)){
         return true;
    }else{
         return false;
    }
}

function valid_name_alpha(val){
    var Vre;
    var Vret;

    Vre = /^[a-zA-Z\s\']+$/; 

    if(!Vre.test(val)){
         return true;
    }else{
         return false;
    }
}


function valid_height(val){
    var Vre;
    var Vret;

    Vre =  /^[0-9\'\\.\']+$/; 

    if(!Vre.test(val)){
         return true;
    }else{
         return false;
    }

}

function validate_add(val)
{      
    var Vre;
    var Vret;

    //Vre = /^[0-9\(\)\-\s]+$/; /// \ - ()
    //Vre = /^[0-9\\\/\(\)\-\s]+$/; /// \ - ()
    Vre = /^[a-zA-Z0-9\(\)\-\s\,\.\;\"\']+$/; 

    if(!Vre.test(val)){
         return true;
    }else{
         return false;
    }
}

function open_help(help_file, thickbox)
{  
    if (typeof(thickbox) == "undefined")
    {
        mywindow = window.open(help_file, "Help", "directories=0, titlebar=0 ,toolbar=0 ,scrollbars=1 ,menubar=0 ,resizable=0 ,location=0 ,width=1000 ,height=500")
        mywindow.moveTo(0,0);
    }
    else
    {
        mywindow = window.open(help_file, "_blank", "Help", "directories=0, titlebar=0 ,toolbar=0 ,scrollbars=1 ,menubar=0 ,resizable=0 ,location=0 ,width=1000 ,height=500")
        mywindow.moveTo(0,0);
    }
}

function textLimit(field, maxlen) {
            if (field.value.length > maxlen + 1)
                alert('Textarea value can only be '+maxlen+' characters in length. Your text has been truncated.');
            if (field.value.length > maxlen)
            field.value = field.value.substring(0, maxlen);
        }
/******************/
function is_valid_phone(phno)
{
    var illegalChars = /\([0-9]{3,3}\)[0-9]{3,3}-[0-9]{4,4}/; // format: (###)###-####.")
    if(phno==''){                
        //alert("The PHNO cannot be blank.");
        return false;
    }

    if (!illegalChars.test(phno)) {        
        return false;
    } else {
        //alert("O K");
        return true;
    }
    return false;
}
/*******************/ 
function alternate(id){ //For getting a easy ready lines
     if(document.getElementsByTagName){  
       var table = document.getElementById(id);  
       var rows = table.getElementsByTagName("tr");  
       for(i = 0; i < rows.length; i++){          
         if(i % 2 == 0){
           rows[i].className = "even";
         }else{
           rows[i].className = "odd";
         }      
       }
     }
    }
    
function openClose(objName){ //For opening and closing the help

    obj = document.getElementById(objName); 
    alert(obj);
    if(obj.style.display!="none"){
        obj.style.display="none";
    } else{
        obj.style.display="block";
    }
}
function change_row_color(row_id,clsname){
    //alert(row_id);
    n_class_name = clsname;
    //p_class_name = document.getElementById(row_id).className;
    document.getElementById(row_id).className = n_class_name;
    //alert(p_class_name);
}

function valid_phone(val)
{      
        var Vre;
        var Vret;

        //Vre = /^[0-9\(\)\-\s]+$/; /// \ - ()
        //Vre = /^[0-9\\\/\(\)\-\s]+$/; /// \ - ()
        Vre = /^[0-9\(\)\-\+\s]+$/; 

        if(!Vre.test(val))
        {
             return true;
        }
        else
        {
             return false;
        }
}    

function validateInt(val)
   {
      var o = val;
      switch (isInteger(o.value))
      {
         case true:
            return true
            break;
         case false:
            return false;
      }
   }

   function validateRange()
   {
      var s = document.frmInput.txtInput.value;
      var A = document.frmInput.txtA.value;
      var B = document.frmInput.txtB.value;

      switch (isIntegerInRange(s, A, B))
      {
         case true:
            alert(s + " is in range from " + A + " to " + B)
            break;
         case false:
            alert(s + " is not in range from " + A + " to " + B)
      }
   }

// isIntegerInRange (STRING s, INTEGER a, INTEGER b)
   function isIntegerInRange (s, a, b)
   {   if (isEmpty(s))
         if (isIntegerInRange.arguments.length == 1) return false;
         else return (isIntegerInRange.arguments[1] == true);

      // Catch non-integer strings to avoid creating a NaN below,
      // which isn't available on JavaScript 1.0 for Windows.
      if (!isInteger(s, false)) return false;

      // Now, explicitly change the type to integer via parseInt
      // so that the comparison code below will work both on
      // JavaScript 1.2 (which typechecks in equality comparisons)
      // and JavaScript 1.1 and before (which doesn't).
      var num = parseInt (s);
      return ((num >= a) && (num <= b));
   }

   function isInteger (s)
   {
      var i;

      if (isEmpty(s))
      if (isInteger.arguments.length == 1) return 0;
      else return (isInteger.arguments[1] == true);

      for (i = 0; i < s.length; i++)
      {
         var c = s.charAt(i);

         if (!isDigit(c)) return false;
      }

      return true;
   }

   function isEmpty(s)
   {
      return ((s == null) || (s.length == 0))
   }

   function isDigit (c)
   {
      return ((c >= "0") && (c <= "9"))
   }

