/*
'*********************************************************************************
' Copyright © 2004 GE Assest Management. ALL RIGHTS RESERVED		
' Script						: valid.js
' Purpose						: This file is used for validating the date and decile sensitivity
' Called From					: Included in navigator.jsp (both de and ie).
' Pages Called					: None
'
' Date							Author				Changes
' --------------------------------------------------------------------------------
' 07/27/2004				Ramnath Rajagopalan.		Initial Version.
'*********************************************************************************
*/

var mydecSen = /^[0-9\,\-\/]+$/;	//	For My Decile Sensitivity
var regNums = /^\d+$/; // For checking if numeric
var invalidChars=['"','<','>','?','\\','"','\\','!','@','#','$','%','&','\'',';','(',')','+'];
function isNumeric(value){
	if(regNums.test(value))
		return true;
	else
		return false;
}
function isMyNumeric(value){
	//alert(value)
	var flag=false;
	var flag1=false;
	var valInsideArray;
	var valArray;
	for(var i=0;i<invalidChars.length;i++){
		for(var j=0;j<value.length;j++){
			if(value.charAt(j)==invalidChars[i]){
				flag=true
				break
			}	
		}
	}
	if(flag==true)
		return false
	else{
		if(mydecSen.test(value))
			flag1 = true;
		else
			flag1 = false;
		//alert(flag1)
		if(flag1==true){
			valArray=value.split(",")
			//alert("values after split with ','");
			//for(i=0;i<valArray.length;i++)
			//	alert(valArray[i])
			//alert(valArray.length)
			if(valArray.length==1){
				valInsideArray=value.split("-")
				//alert(valInsideArray.length)
				if(valInsideArray.length>2)
					return false
			}
			for(i=0;i<valArray.length;i++){		
				//alert(valArray[i].length)
				if(valArray[i].length>2){
					valInsideArray=valArray[i].split("-");
					if(!(isNumeric(valInsideArray[0])) || !(isNumeric(valInsideArray[1])) || (parseInt(valInsideArray[0]) <= 0)|| (parseInt(valInsideArray[1]) <= 0))
						return false
					else if(parseInt(valInsideArray[0]) > 10 || parseInt(valInsideArray[1]) > 10) 
						return false
					//alert("split after '-'");
					//for(j=0;j<valInsideArray.length;j++)
					//	alert(valInsideArray[j]);
					else if(parseInt(valInsideArray[0]) > parseInt(valInsideArray[1]))
					//{
						//alert("inside if")
						return false
					//}
				}
				else if(valArray[i].length == 2 && parseInt(valArray[i]) > 10)
					return false
				else if(!(isNumeric(valArray[i])) || (parseInt(valArray[i]) <= 0))
				//{
					//alert("not numeric and less than 0")
					return false
				//}
			}
			return true
		}
		return false
	}
}
function validateDate( strValue ) {
    var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/

    //check to see if in correct format
    if(!objRegExp.test(strValue)) {
		return false; //doesn't match pattern, bad date
    }
    else {
		var strSeparator = strValue.substring(2,3) //find date separator
		var arrayDate = strValue.split(strSeparator); //split date into month, day, year
		//create a lookup for months not equal to Feb.
		var arrayLookup = { '01' : 31,'03' : 31, '04' : 30,'05' : 31,'06' : 30,'07' : 31,
		                    '08' : 31,'09' : 30,'10' : 31,'11' : 30,'12' : 31}
		var intMonth = parseInt(arrayDate[0]);
		var intDay = parseInt(arrayDate[1]);
		var intYear = parseInt(arrayDate[2]);
		
		// ADB: What is this following code?
		//if (arrayDate[1]=="08"){ intDay=8;}
		//if (arrayDate[1]=="09"){ intDay=9;}
		
		//check if month value and day value agree
		if(arrayLookup[arrayDate[0]] != null) {
		    if(intDay <= arrayLookup[arrayDate[0]] && intDay > 0) {
		        return true; //found in lookup table, good date
		    }
		}

	    //check for February
        //Is the year is a leap year?
        var leapYear;
        if ((intYear % 400) == 0) {
            leapYear = true;
        }
        else if ((intYear % 100) == 0) {
			leapYear = false;
		}
		else if ((intYear % 4) == 0) {
		    leapYear = true;
		}
		else {
		    leapYear = false;
		}
        if (((leapYear == false) && (intDay <= 28)) || ((leapYear == true) && (intDay <= 29))) {
            return true; //Feb. had valid number of days
        }
    }
    
    return false; //any other values, bad date
}

function checkdate(Cdate,Cdate1)
{  
	ndate1 = Cdate.substring(6,10)+Cdate.substring(0,2)+Cdate.substring(3,5);
	ndate2 = Cdate1.substring(6,10)+Cdate1.substring(0,2)+Cdate1.substring(3,5);
       
        if(ndate1 > ndate2) {
		return 1;
	}
}


function trim(s) {
		  	while (s.substring(0,1) == ' ') {
			    s = s.substring(1,s.length);
			  }
			  while (s.substring(s.length-1,s.length) == ' ') {
    			s = s.substring(0,s.length-1);
  			}
			  return s;
			}

function isBlank(string) {
	if(trim(string) == '') {
		return true;
	}
	else {
		return false;
	}	
}


