
//check browser
IE5 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 5.")!=-1)) ? true : false;
IE6 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 6.")!=-1)) ? true : false;
NS6 = (!document.layers) && (navigator.userAgent.indexOf('Netscape')!=-1)?true:false;
IE5plus = IE5 || IE6;

if ((IE5plus )|| (IE6))
{
	//document.write("<p>You are using a Internet Explorer</p>");
}	

if (NS6)
{
	//document.write("<p>You are using Netscape</p>");
}
//////////////////////////////////////////////
  // BOI, followed by one or more digits, followed by EOI.
// /^[a-z][a-z_0-9\.]+@[a-z-0-9\.]+\.[a-z]{3}/i
var reInteger = /^\d+$/
var reFloat = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/
var defaultEmptyOK = false
var reEmail = /\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi
var reWhitespace = /^\s+$/
var reDate = /^([1-9]|[0-2][0-9]|[3][0-1])\/([0-9]|[0-1][0-2])\/[1|2][0-9]{3}$/
var numb = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz ';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ -_';
var reURL=/^(([h]{1})+([t]{2})+([p]{1})+([:])+([\/\/])+([w]{3})+([a-z-0-9\.])+(\.[a-z]{3}))$/;
var eSessionWindow;
///////////////////////

function closeEsession()
{
	if(eSessionWindow != null )
	//if(eSessionWindow instanceof window)
	eSessionWindow.close();
	//else{alert('it is null');}
	//{if(!eSessionWindow.closed )( window(eSessionWindow) ).colse();}
}

/**/


// Check whether string s is empty.

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

///Check numbers are name
function isValid(parm,val) 
{
  if (parm == "") 
  	return true;
  for (i=0; i<parm.length; i++) 
  {
    if (val.indexOf(parm.charAt(i),0) > -1) 
		return false;
  }
  return true;
}
function isName(parm)
{
	return isValid(parm,numb);
}
////////////////////////
/////////////////////////////////////

function isFloat (s)
{   if (isEmpty(s)) 
       if (isFloat.arguments.length == 1) return defaultEmptyOK;
       else return (isFloat.arguments[1] == true);
    return reFloat.test(s)
}

/////////////////////////////////////

function isInteger (s)

{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);
    return reInteger.test(s)
}

////////////////////////////////////
function isEmail (s)

{   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
    else {
       return reEmail.test(s)
    }
}
////////////////////////////////
function isWhitespace (s)

{   // Is s empty?
    return (isEmpty(s) || reWhitespace.test(s));
}


function replaceSingleQuota(s)

{   // replaec single quota
	
    //if(!isEmpty(s) || !reWhitespace.test(s))
    //{
    	s = s.replace(/'/g, "&#39;"); 
		return s;
    //}
}
////////////////////////////////
function checkString (Str,  emptyOK)
{   // Next line is needed on NN3 to avoid "undefined is not a number" error
    // in equality comparison below.
    if (checkString.arguments.length == 2) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(Str))) return true;
   
    if (isWhitespace(Str)) 
		{		
		return false;}
	 else return true;
}
/////////////////////////////////////

function isDate (s)

{   if (isEmpty(s)) 
       if (isFloat.arguments.length == 1) return defaultEmptyOK;
       else return (isFloat.arguments[1] == true);
    return reDate.test(s)
}

//alert(isDate('20/11/2999'))

/////////////////////////////////////
	var reTime = /^([0][0-9]|[1][0-2])[:]([0-5][0-9])[ ](([a|p][m])|([A|P][M]))$/
	function isTime(x)
	{
		return (reTime.test(x));
	}        
//////////////////////////////
function isURL(x)
{
	return (reURL.test(x));
}	

/////////////////////////////////////
function remove()
{
	go=confirm (" Are you sure ? ");
	
	if(go==true)
	{
		//alert ("yes")
		return true
		//window.close()
	}
	else
	{
		//alert ("no")
		return false
	}
}
/////////////////////////////////////
// Expand Scrollbar Function
function expand(d)
{
	if(d.style.overflowY=='visible') div1.style.overflowY='scroll'
	else div1.style.overflowY='visible';
}
/////////////////////////////////////
// Expand Scrollbar Function
function expand2(d)
{
	if(d.style.overflowY=='visible') div2.style.overflowY='scroll'
	else div2.style.overflowY='visible';
}
/////////////////////////////////////
// Expand Scrollbar Function
 function expand3(d)
{
	if(d.style.overflowY=='visible') div3.style.overflowY='scroll'
	else div3.style.overflowY='visible';
}
/////////////////////////////////////
//OnmouseOver
function changeTROver1(x)
{
	x.style.fontWeight = "bold";
}

function changeTROut1(x)
{
	x.style.fontWeight = "normal";
}
function changeTROver(x)
{
	x.style.backgroundColor='#C5C6E4';
}

function changeTROut(x)
{
	x.style.backgroundColor='#F0F0EE';
}

//////////////////////////////////////
//Change from Unicode
////////////////////////////////
////////////////////////////////
function alertuni(x)
{
	separator =";&#";
	stringToSplit = x;
	if(stringToSplit.substring(0,2)=="&#")
	{
		//stringToSplit+="&#32;";
		for ( i=0;i<20;i++)
			stringToSplit = stringToSplit.replace(/\s+/,"&#32;");
		
		stringToSplit = stringToSplit.substring(2,stringToSplit.length-1);
		arrayOfStrings = stringToSplit.split(separator);
		s2="";
		
		for(counter=0;counter<arrayOfStrings.length;counter++)
		{		
			s2+=String.fromCharCode(arrayOfStrings[counter]);
		}
		
		alert(s2);
	}
	else
	{
		alert(stringToSplit);
	}
}

//////////////////////////////////////
//Change from Unicode
function confirmuni(x)
{
	separator =";&#";
	separator2 ="; &#";
	s2="";
	stringToSplit = x;
	if(stringToSplit.substring(0,2)=="&#")
	{
		//stringToSplit+="&#32;";
		//stringToSplit = stringToSplit.replace(/[\s]{1}/,"&#32;");
		for ( i=0;i<20;i++)
			stringToSplit = stringToSplit.replace(/\s+/,"&#32;");
		
		//alert(stringToSplit);
		stringToSplit = stringToSplit.substring(2,stringToSplit.length-1);
		arrayOfStrings = stringToSplit.split(separator);		
		//alert(arrayOfStrings);
		for(counter=0;counter<arrayOfStrings.length;counter++)
		{		
			s2+=String.fromCharCode(arrayOfStrings[counter]);
		}
		//for(i=0;i<10;i++)
		//	s2 = " "+s2;
		return confirm(s2);
	}
	else
	{
		return confirm(stringToSplit);
	}
}


//////The following  code is added by Yasser Talat on 20/09/2006

//Functions to check and uncheck checkboxes according to checking and unchecking a parent checkbox
var check_all=false;
    function checkAll(fields)
    {      
      if(fields!=null)
      {
        if(!check_all)
        {
          if(!fields.length>0)
          {
            fields.checked = true;
          }
          for (var i = 0; i < fields.length; i++) 
          {
            fields[i].checked=true;
          }
          check_all=true;
        }else
        {
          if(!fields.length>0)
          {
            fields.checked = false;
          }
          for (var i = 0; i < fields.length; i++) 
          {
            fields[i].checked=false;
          }
          check_all=false;
        }
      }
    }
    function uncheckParent(parent,fields)
    {      
      var allchecked = false;
      if(check_all)
      {        
        parent.checked=false;
        check_all = false;
      }else
      {
        if(fields!=null)
        {
          if(!fields.length>0)
          {
            if(!fields.checked)
            {
              allchecked = false;
            }else
            {
              allchecked = true;
            }
          }
          for (var i = 0; i < fields.length; i++) 
          {
            if(!fields[i].checked)
            {
              allchecked = false;
              break;
            }else
            {
              allchecked = true;
            }
            
          }
          if(allchecked)
          {
            parent.checked=true;
            check_all = true;
          }else
          {
            parent.checked=false;
            check_all = false;
          }
        }
      }
    }
    
    function testCheckall(parent,fields)
    {
      var i=0
      if(fields != null)
      {
              if (!fields.length > 0)
              {
                      if(fields.checked)
                      {
                              parent.checked = "checked";
                      }
                      else
                      {
                              parent.checked = false;
                      }
              
              }else
              {
                      for (counter = 0;  counter < fields.length ; counter++)
                      {
                              if ((fields[counter].checked))
                              {
                                      i = i+1;
                              }                              
                      }
                      if(i == (fields.length))
                      {
                              parent.checked = "checked";
                              check_all = true;
                      }
                      else
                      {
                              parent.checked = false;
                      }
              }
      }
    }
//////////////////////////////////End of checking functions//////////////////////////////////////////

//A function to open a popup window
function MM_openBrWindow(theURL,winName,features) { //v2.0
  theURL =theURL+params;
  window.open(theURL,winName,features);
}
///////////////////////////////////////////////////////////////////////////

//Java Script Date Format (from dd/MM/yyyy to MM/dd/yyyy and vice versa)
function formatDate(date)
{
	var s = '';
    	s += date.substr(3,2)+"/";
    	s += date.substr(0,2)+"/";
    	s += date.substr(6);
    	return s;
}

////////////////////////////////////////////////////////////////////////
// Date Check Functions

// A function to compare two String Dates in the format (MM/dd/yyyy)
//Returns 0 in case dateStr1 = dateStr2
// >0 in case dateStr1 > dateStr2
// <0 in case dateStr1< dateStr2
function compareDateMonthDay(dateStr1,dateStr2)
{
  date1 = new Date(dateStr1);
  date2 = new Date(dateStr2); 
  return compareDate(date1,date2);  
}

// A function to compare two String Dates in the format (dd/MM/yyyy)
//Returns 0 in case dateStr1 = dateStr2
// >0 in case dateStr1 > dateStr2
// <0 in case dateStr1< dateStr2
function compareDateDayMonth(dateStr1,dateStr2)
{  
  date1 = new Date(formatDate(dateStr1));
  date2 = new Date(formatDate(dateStr2));   
  return compareDate(date1,date2);
}
// A function to compare two javascript Date objects 
//Returns 0 in case date1 = date2
// >0 in case date1 > date2
// <0 in case date1< date2
function compareDate(date1,date2)
{  
  if(date1 == date2)
    return '0';
  else if(date1 > date2)
    return '1';
  else if(date1 < date2)
    return '-1';
}
//////////////////////////////////////////////////////////////////////////