//*******************************************************************************
//'* Purpose  : Commonly used Javascript Functions.
//'* Auth     : Paresh Bhurke
//'* Date     : 03-Sep-2004
//'* Author   : Paresh A Bhurke
//'* History      Auth        Date	Description
//'  --------     --------    ------- ---------------------------------------------
//'
//'*******************************************************************************
// Start
function alltrim(strLine)
{	var trimstr = ""
	trimstr = rtrim(ltrim(strLine))
	return trimstr
}

function ltrim(strLine)
{var trimstr = ""
	var blkflg = 0
	var len    = strLine.length
	for (var i=0; i<=len-1; i++)
	{if(strLine.charAt(i) != " " )
		{{
				trimstr= strLine.substring(i,len)
				blkflg = 1
				break }}}
	return trimstr
}	

function rtrim(strLine)
{var trimstr = ""
	var blkflg = 0
	var len    = strLine.length-1
	var i = len
	while (strLine.charAt(i) == " ") {i=i-1 }
	trimstr = strLine.substring(0,i+1)
	return trimstr
}

function isblank(objfld)
{
	if(alltrim(objfld.value)==""){
		var objType = objfld.type
		if(objType!='hidden'){
			objfld.focus()
		}
		return true
	}
	else{
		return false}
}

function ispositive(strLineval)
{
	var strLine1 = ltrim(rtrim(strLineval))
	if (isnumeric(strLine1)) {
	   return(strLine1>0?true:false)
	}
	else {
	    return false
	}
}

function ispositiveGTZero(strLineval)
{
	var strLine1 = ltrim(rtrim(strLineval))
	if (isnumeric(strLine1)) {
	   return(strLine1>=0?true:false)
	}
	else {
	    return false
	}
}

function ContainOnlyAlphabets(strValue)
{
          strValue = strValue.toUpperCase();
          for (i=0;i<strValue.length;i++)
          {
               if (strValue.charAt(i)<"A" || strValue.charAt(i) > "Z")
               {
                    return false;
               }
          }
          return true;
}

function isnegative(objfldval)
{
   if (isnumeric(objfldval)) 
   {
      return(objfldval<0?true:false)
   }
   else 
   {
	   return false
   }
}

function isinteger(objfldval)
{
    if (isnumeric(objfldval)) {
		return ((objfldval+"").indexOf(".")>=0?false:true) 
		}
	else
	{
	return false
	}
}

function isnumeric(objfldval) 
{
   return (isNaN(objfldval)?false:true)
}

function isreal(strLineval)
{
    if (isnumeric(strLineval)) {
		return (strLineval.indexOf(".")<0?false:true) 
		}
	else
	{return false
	}
}

function contains(strLine,strLine2)
{
	return (strLine.indexOf(strLine2)>=0?true:false)
}

function upper(strLine)
{
	return (strLine.toUpperCase())
}

function lower(strLine)
{
	return (strLine.toLowerCase())
}
function isEmail(strObject)
{
	EStr = alltrim(strObject.value);
	
	/*EArray = EStr.split(",")

	for (var i = 0; i < EArray.length; i++) 	
	{
		if(EArray[i].indexOf("@")==-1 || EArray[i].indexOf(".")== -1)
			{
				strObject.focus();
				return false
			}
	}
	return true*/
	if(EStr.length>0)
	{
		var chkEmail = false;				
		//var RegExp = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
		//var RegExp = /^([0-9a-zA-Z_-]([-.\w]*[0-9a-zA-Z_-])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
		var RegExp = /^(?:[A-Za-z0-9-_]+\.)*[A-Za-z0-9-_]+@(?:[A-Za-z0-9-_]+\.)+[A-Za-z]{2,6}$/;
		//var sEmail = strObject.value.match(/^([0-9a-zA-Z_-]([-.\w]*[0-9a-zA-Z_-])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/gi);		
		
	  if(RegExp.test(EStr))
		{
			chkEmail = true;
		} else {					
			chkEmail = false;
		}
		return chkEmail;
	}			
	return false;
}

function isValidMobile(mobile)
{
	var telNumber = alltrim(mobile);
	var regex = /^(\+|00)[0-9]{8,15}$/;
	return regex.test(telNumber);	
}

function CountSelectedItemsInList(listobj){
	if(listobj!=null){
		var i
		var mulselect = 0
		for(i=0;i<listobj.length;i++){
			if(listobj.options[i].selected==true){
				mulselect = mulselect+1
			}
		}
		return mulselect
	}	
}

function CountSelectedItemsInList(listobj){
	if(listobj!=null){
		var i
		var mulselect = 0
		for(i=0;i<listobj.length;i++){
			if(listobj.options[i].selected==true){
				mulselect = mulselect+1
			}
		}
		return mulselect
	}	
}

// End



function ShowLayer(sShowElement, aElements)
{

	for (var i = 0; i < aElements.length; i++)
	{
		
		var dispStatus = document.getElementById(aElements[i]).style.display
		var obj
		if (sShowElement == aElements[i])
		{	
				obj = document.getElementById(aElements[i])
				obj.style.display = "";
		}
		else
		{
			document.getElementById(aElements[i]).style.display = "none";
			//this is to reset the other panel elements selected indexes if any
			if (document.getElementById(aElements[i]).hasChildNodes())
			document.getElementById(aElements[i]).firstChild.selectedIndex=0;

		}
	}
}

//Function for value Trimming

function trim(strTrim){

	 while(strTrim.charAt(0) == " " || strTrim.charAt(eval(strTrim.length-1)) == " "){
	 if(strTrim.charAt(0) == " "){
			strTrim = strTrim.slice(1,strTrim.length)
			}
	 if(strTrim.charAt(eval(strTrim.length-1)) == " "){
			strTrim = strTrim.slice(0,eval(strTrim.length-1))
			}
	 }
	 return strTrim
}

//Function for Quote display

function quote(fieldvalue){

		if(fieldvalue.match(squote) != null) return 0
		else return 1
}	

var whitespace = " \t\n\r";

function isEmpty(s)
{   
	return ((s == null) || (s.length == 0))
}
				
	
function isWhitespace (s)
{   
	var i;
	if (isEmpty(s)) return true;
	for (i = 0; i < s.length; i++)
	{   
		// Check that current character isn't whitespace.
		var c = s.charAt(i);
		if (whitespace.indexOf(c) == -1) return false;
	}
	// All characters are whitespace.
	return true;
}

		
//End
		

        function TrapEnterKey(btn, event)
        {
			if (document.all)
			{
		        if (event.keyCode == 13)
		        {
			        event.returnValue=false;
			        event.cancel = true;
					document.getElementById(btn).click();
				}
			}
			else if (document.getElementById)
			{
				if (event.which == 13)
				{
					event.returnValue=false;
					event.cancel = true;
					document.getElementById(btn).click();
				}
			}
			else if(document.layers)
			{
		        if(event.which == 13)
		        {
			        event.returnValue=false;
				    event.cancel = true;
					document.getElementById(btn).click();
				}
			}
        }

//****************************************************************************************
//* Function:	 fnCheckEmail 
//* Description: Returns true if the input string is a represents a valid email otherwise false.
//*				 e.g. abc@yahoo.co.in 
//* Added by pravin for EmailProfile Pages
//*****************************************************************************************
function fnCheckEmail(sField) 
{
	EStr = alltrim(sField);
	var RegExp = /^([0-9a-zA-Z_-]([-.\w]*[0-9a-zA-Z_-])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
	/*var rx = new RegExp("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
	var matches = rx.exec(value);
	var succ = (matches != null && value == matches[0]);    
	alert(succ);
	return succ;*/
	
	if(EStr.length>0)
	{
		var chkEmail = false;
		if(RegExp.test(EStr))
		{
			chkEmail = true;
		} 
		else 
		{					
			chkEmail = false;
		}
		return chkEmail;
	}
	return false;
}			

function textCounter(field,maxlimit,displayfield, evt) {
	if (evt.shiftKey) 
	{ //alert(evt.keyCode);
		if ((evt.keyCode <33 || evt.keyCode>40) && (field.value.length >=maxlimit))
			{
			displayfield.innerHTML = field.value.length+" / "+maxlimit;
			return false;
			}
		displayfield.innerHTML = field.value.length+" / "+maxlimit;
		return true;
	}
	var allowKey = false;
	if ((field.value.length > 0) && (field.value.length <maxlimit))
		allowKey = true;
	else {
			var keyCode = document.layers ? evt.which : evt.keyCode;
			if ((keyCode <= 40  && keyCode !=13 && keyCode !=32) || keyCode==46)
				allowKey = true;
			else {
				field.value = field.value.substring(0,maxlimit);
				allowKey = field.value.length < maxlimit;
			}
		}
	displayfield.innerHTML = field.value.length+" / "+maxlimit;
	return allowKey;
}	


function isDate(dateStr, monthName) 
			{
				var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
				var matchArray = dateStr.match(datePat); 

				if (matchArray == null) {
					alert(Message8072); 
					return false;
				}

				month = matchArray[3]; 
				day = matchArray[1];
				year = matchArray[5];

				if (year <1900)
				{
					alert(Message8108); 
					return false;		
				}
				
				if (month < 1 || month > 12) { 
					alert(Message8073); 
					return false;
				}

				if (day < 1 || day > 31) {
					alert(Message8074); 
					return false;
				}

				if ((month==4 || month==6 || month==9 || month==11) && day==31) {
					alert("Month "+monthName+". doesn't have 31 days!") 
					return false;
				}

				if (month == 2) { 
					var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
					if (day > 29 || (day==29 && !isleap)) {
						alert("February " + year + " doesn't have " + day + " days!");  
						return false;
					}
				}
				return true; 
			}

 

function CompareDates(FromDateValue, ToDateValue, CompareOperator) {

    if (FromDateValue.indexOf("-") > -1) {
        FromDateValue = getUSDate(FromDateValue);
    }
    // if passed date is in DD-MMM-YYYY format then change it to mm/dd/yyyy using getUSDate()
    if (ToDateValue.indexOf("-") > -1) {
        ToDateValue = getUSDate(ToDateValue);
    }

    var blnFlag = true
    eval("blnFlag=Date.parse(FromDateValue) " + CompareOperator + " Date.parse(ToDateValue)")
    if (blnFlag == true) {
        return true;
    }
    else {
        if (FromDateValue == "" || ToDateValue == "") {
            return false
        }
        else {
            return false
        }
    }
    return false
}


function getUSDate(strDate) {
    strDateArray = strDate.split("-");
    if (strDateArray.length == 3) {
        strDay = strDateArray[0];
        strMonth = strDateArray[1];
        strYear = strDateArray[2];
        var intMonth = getIntegerMonth(strMonth)
        return intMonth + "/" + strDay + "/" + strYear
    }
    else {
        return strDate
    }

}



function getIntegerMonth(strMonth) {
    var intMonth

    var strMonthArray = new Array(12);
    strMonthArray[0] = "Jan";
    strMonthArray[1] = "Feb";
    strMonthArray[2] = "Mar";
    strMonthArray[3] = "Apr";
    strMonthArray[4] = "May";
    strMonthArray[5] = "Jun";
    strMonthArray[6] = "Jul";
    strMonthArray[7] = "Aug";
    strMonthArray[8] = "Sep";
    strMonthArray[9] = "Oct";
    strMonthArray[10] = "Nov";
    strMonthArray[11] = "Dec";

    for (i = 0; i < 12; i++) {
        if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
            intMonth = i + 1;
            strMonth = strMonthArray[i];
            i = 12;
        }
    }
    if (isNaN(intMonth)) {
        err = 3;
        return false;
    }

    return intMonth
}

