
function noSpaces(str) {
	return str.replace(/\s*/g, '')
}

function singleSpaces(str) {
	str = str.replace(/\s+/g, ' ')
	str = str.replace(/^\s*/, '')
	str = str.replace(/\s*$/, '')
	return str
}

function validateDateValue(value){
	var dateArray = value.split(/\//)
	if(dateArray.length == 3){
		var theDate=new Date(dateArray[2],dateArray[0] - 1,dateArray[1])
		if(dateArray[2].length == 4 && (dateArray[1]==theDate.getDate()) && (dateArray[0] - 1 == theDate.getMonth()) && (dateArray[2]==theDate.getFullYear())) {
			var myDate = ''
			if(theDate.getMonth() + 1 < 10 ){
				myDate += '0' + (theDate.getMonth() + 1)
			}else{
				myDate += (theDate.getMonth() + 1)
			}
			myDate += '/'
			if(theDate.getDate() < 10){
				myDate += '0' + theDate.getDate() 
			}else{
				myDate += theDate.getDate() 
			}
			myDate += '/' + theDate.getFullYear()
			var today=new Date();
			var InputDate=new Date(dateArray[2]+"/"+dateArray[0]+"/"+dateArray[1]);
			var one_day=1000*60*60*24;
			var result = Math.ceil((InputDate.getTime()-today.getTime())/(one_day));
 			if(result > 0){ return false; }
			return myDate
		}
	}
	return false
}
function validateDate(field){
	var dateArray = field.value.split(/\//)
	if(dateArray.length == 3){
		var theDate=new Date(dateArray[2],dateArray[0] - 1,dateArray[1])
		if(dateArray[2].length == 4 && (dateArray[1]==theDate.getDate()) && (dateArray[0] - 1 == theDate.getMonth()) && (dateArray[2]==theDate.getFullYear())) {
			var myDate = ''
			if(theDate.getMonth() + 1 < 10 ){
				myDate += '0' + (theDate.getMonth() + 1)
			}else{
				myDate += (theDate.getMonth() + 1)
			}
			myDate += '/'
			if(theDate.getDate() < 10){
				myDate += '0' + theDate.getDate() 
			}else{
				myDate += theDate.getDate() 
			}
			myDate += '/' + theDate.getFullYear()
				return myDate
		}
	}
	return false
}
function validateFutureDate(field){
	var dateArray = field.value.split(/\//)
	if(dateArray.length == 3){
		var theDate=new Date(dateArray[2],dateArray[0] - 1,dateArray[1])
		if(dateArray[2].length == 4 && (dateArray[1]==theDate.getDate()) && (dateArray[0] - 1 == theDate.getMonth()) && (dateArray[2]==theDate.getFullYear())) {
			var myDate = ''
			if(theDate.getMonth() + 1 < 10 ){
				myDate += '0' + (theDate.getMonth() + 1)
			}else{
				myDate += (theDate.getMonth() + 1)
			}
			myDate += '/'
			if(theDate.getDate() < 10){
				myDate += '0' + theDate.getDate() 
			}else{
				myDate += theDate.getDate() 
			}
			myDate += '/' + theDate.getFullYear()
			var today=new Date();
			var InputDate=new Date(dateArray[2]+"/"+dateArray[0]+"/"+dateArray[1]);
			var one_day=1000*60*60*24;
			var result = Math.ceil((InputDate.getTime()-today.getTime())/(one_day));
 			if(result <= 0){ return false; }
				return myDate
		}
	}
	return false
}

function validateFutureDateValue(datevalue){
	var dateArray = datevalue.split(/\//)
	if(dateArray.length == 3){
		var theDate=new Date(dateArray[2],dateArray[0] - 1,dateArray[1])
		if(dateArray[2].length == 4 && (dateArray[1]==theDate.getDate()) && (dateArray[0] - 1 == theDate.getMonth()) && (dateArray[2]==theDate.getFullYear())) {
			var myDate = ''
			if(theDate.getMonth() + 1 < 10 ){
				myDate += '0' + (theDate.getMonth() + 1)
			}else{
				myDate += (theDate.getMonth() + 1)
			}
			myDate += '/'
			if(theDate.getDate() < 10){
				myDate += '0' + theDate.getDate() 
			}else{
				myDate += theDate.getDate() 
			}
			myDate += '/' + theDate.getFullYear()
			var today=new Date();
			var InputDate=new Date(dateArray[2]+"/"+dateArray[0]+"/"+dateArray[1]);
			var one_day=1000*60*60*24;
			var result = Math.ceil((InputDate.getTime()-today.getTime())/(one_day));
 			if(result <= 0){ return false; }
				return myDate
		}
	}
	return false
}

/*
param : time
0=past date
1=today date
2=future date
*/

function validateDateByTime(datevalue,time){
	var dateArray = datevalue.split(/\//)
	if(dateArray.length == 3){
		var theDate=new Date(dateArray[2],dateArray[0] - 1,dateArray[1])
		if(dateArray[2].length == 4 && (dateArray[1]==theDate.getDate()) && (dateArray[0] - 1 == theDate.getMonth()) && (dateArray[2]==theDate.getFullYear())) {
			var myDate = ''
			if(theDate.getMonth() + 1 < 10 ){
				myDate += '0' + (theDate.getMonth() + 1)
			}else{
				myDate += (theDate.getMonth() + 1)
			}
			myDate += '/'
			if(theDate.getDate() < 10){
				myDate += '0' + theDate.getDate() 
			}else{
				myDate += theDate.getDate() 
			}
			myDate += '/' + theDate.getFullYear()
			var today=new Date();
			var InputDate=new Date(dateArray[2]+"/"+dateArray[0]+"/"+dateArray[1]);
			var one_day=1000*60*60*24;
			var result = Math.ceil((InputDate.getTime()-today.getTime())/(one_day));
			switch(time){
				case 0:
					if(result < 0){ return myDate; }	   
					break;
				case 1:
					if(result == 0){ return myDate; }	   
					break;
				case 2:
					if(result > 0){ return myDate; }	   
					break;
			}
 			return false;
		}
	}
	return false
}

function validateFutureDateTimeValue(datetimevalue){
	var datevalue = datetimevalue.split(/ /)
	var dateArray = datevalue[0].split(/\//)
	if(dateArray.length == 3){
		var theDate=new Date(dateArray[2],dateArray[0] - 1,dateArray[1])
		if(dateArray[2].length == 4 && (dateArray[1]==theDate.getDate()) && (dateArray[0] - 1 == theDate.getMonth()) && (dateArray[2]==theDate.getFullYear())) {
			var myDate = ''
			if(theDate.getMonth() + 1 < 10 ){
				myDate += '0' + (theDate.getMonth() + 1)
			}else{
				myDate += (theDate.getMonth() + 1)
			}
			myDate += '/'
			if(theDate.getDate() < 10){
				myDate += '0' + theDate.getDate() 
			}else{
				myDate += theDate.getDate() 
			}
			myDate += '/' + theDate.getFullYear()
			var today=new Date();
			var InputDate=new Date(dateArray[2]+"/"+dateArray[0]+"/"+dateArray[1]+" "+datevalue[1]);
			var one_day=1000*60*60*24;
			var result = Math.ceil((InputDate.getTime()-today.getTime())/(one_day));
 			if(result < 0){ return false; }
				return myDate
		}
	}
	return false
}

function checkPositiveInt(number){
	return /^[0-9]+?$/.test(number) && number > 0
}

function checkPositiveIntAllowZero(number){
	return /^[0-9]+?$/.test(number)
}

function checkPositiveFloat(number){
	return /^[0-9]+(\.[0-9]{1,2})?$/.test(number) && number > 0
}
function checkPositiveFloatWhole(number){
	return /^[0-9]+(\.[0-9]{1,2})?$/.test(number)
}
function checkNumber(number){
	return /^[-]?[0-9]+(\.[0-9]{1,2})?$/.test(number)
}
function isValidEmail(email){
	return /^^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*$/.test(email)
}

function convertToDollar(val) {
	if(val == '0.00' || val == '0') return '0.00'
	var str,pos,rnd=0;
	if (val < .995) rnd = 1; 
	str = escape (val*1.0 + 0.005001 + rnd); 
	pos = str.indexOf (".");
	if (pos > 0) str = str.substring (rnd, pos + 3);
	return str;
}

function checkAndFormatCurrencyasPositive(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(!checkPositiveFloatWhole(num)){
		return false;
	}
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function compareDates(date1,dateformat1,date2,dateformat2)
{
	var fromArray = date1.split(/\//);
	var toArray   = date2.split(/\//);

	var fromDate = new Date(fromArray[2]+"/"+fromArray[0]+"/"+fromArray[1]);
	var toDate   = new Date(toArray[2]+"/"+toArray[0]+"/"+toArray[1]);

	if(fromDate.getTime() > toDate.getTime()){
		return 1;
	}else{
		return 0;
	}
} 

function delConfirm(confirmMess) {
	var answer = confirm(confirmMess)
	if (answer){
		return true;
	}
	else{
		return false;
	}
}

// Following functions are added for VMW-3295 where tree collpse expand function were expected. 

function getItem(id) {
	var itm = false;
	if(document.getElementById(id))
		itm = document.getElementById(id);
	else if(document.all)
			itm = document.all[id];
	else if(document.layers)
			itm = document.layers[id];
	return itm;
}

function toggleAll(dowhat) {
	var plusimg = 'https://www.vimo.com/images/plus_9x9.gif';
	var minusimg = 'https://www.vimo.com/images/minus_9x9.gif';
	var tags = document.getElementsByTagName('tbody');
	var btn = document.getElementById('toggleAll');
	tagimg = 'imgTbody';
	if(!tags)
		return false;
	
	for(var i = 0; i < tags.length; i++) {
		imagevar = tagimg+i;
		itm = getItem(imagevar);
		
		if(itm){
			imageobj = document.getElementById(imagevar);
			if(imageobj.src == plusimg)
				imageobj.src = minusimg;
			else
				imageobj.src = plusimg;	
		}	
		if(tags[i].className == 'collapse_obj')	{
			if(btn.value == 'Collapse All'){
				tags[i].style.display = 'none';
			}else{
				tags[i].style.display = '';
			}
		}
	
	}
	if(btn.value == 'Collapse All'){
		btn.value = 'Expand All';
	}else{
		btn.value = 'Collapse All';
	}
	return false;
}

function toggleImage(id){
	var plusimg = 'https://www.vimo.com/images/plus_9x9.gif';
	var minusimg = 'https://www.vimo.com/images/minus_9x9.gif';
	imageobj = document.getElementById(id);
	if(imageobj.src == plusimg)
		imageobj.src = minusimg;
	else
		imageobj.src = plusimg;	
	return false;
}

function toggleItem(id){
	var plusimg = 'https://www.vimo.com/images/plus_9x9.gif';
	var minusimg = 'https://www.vimo.com/images/minus_9x9.gif';
	
	itm = getItem(id);
	
	if(!itm)
	return false;

	if(itm.style.display == 'none'){
	itm.style.display = '';
	imageobj = document.getElementById('img'+id);
	if(imageobj.src == plusimg)
			imageobj.src = minusimg;
		else
			imageobj.src = plusimg;	
	}else{
		itm.style.display = 'none';
		imageobj = document.getElementById('img'+id);
		if(imageobj.src == plusimg)
				imageobj.src = minusimg;
			else
				imageobj.src = plusimg;	
	}
	return false;
}
function shiftbox(element,nextelement){
  	if(element.getAttribute('maxlength')){
	  	maxlength = parseInt(element.getAttribute('maxlength'));
	  	if(element.value.length == maxlength){
	  	    nextelement = document.getElementById(nextelement);
	  	    nextelement.focus();
	  	}
  	}
  	else{
  		nextelement = document.getElementById(nextelement);
	  	nextelement.focus();
  	}
}

function getDatesdiff(date1,date2)
{
	var date1Array = date1.split(/\//);
	var date2Array = date2.split(/\//);
	
	var date1Obj = new Date(date1Array[2]+"/"+date1Array[0]+"/"+date1Array[1]);
	var date2Obj = new Date(date2Array[2]+"/"+date2Array[0]+"/"+date2Array[1]);

	var one_day=1000*60*60*24;
	var days = (date1Obj.getTime() - date2Obj.getTime())/one_day;
	
	return days;
} 

function validateInputNumber(e,field)
{
		var code;
		var fieldId=document.getElementById(field);
		if (e.keyCode)
		{
			code = e.keyCode;
		}
		else if (e.which)
		{
			code = e.which;
		}
		if ((code >=48 && code <= 57)||(code >=37 && code <= 40)||code==8||code==46){
			return true;
		}
		else
		{
			alert('Only numeric value allowed');
			fieldId.focus();
			return false;
		}
}

function addslashes(str) {
    return (str+'').replace(/([\\"'])/g, "\\$1").replace(/\0/g, "\\0");   
}

function stripslashes(str) {
    return (str+'').replace(/([\\\"\'])/g, "$1").replace(/\\0/g, "\0");   
}


function setElementAttribute(element, attribute, value){	
	 element.setAttribute(attribute, value);
}

function disableButton(childpage){
	var classattr = (navigator.appName == "Microsoft Internet Explorer") ? 'className' : 'class';

	if(childpage){
		setElementAttribute(opener.$('getplanBtn'),'onclick','');	
		setElementAttribute(opener.$('getplanBtn'),classattr,'btn1 gryout');

		setElementAttribute(opener.$('updateleadBtn'),'onclick','');
		setElementAttribute(opener.$('updateleadBtn'),classattr,'btn1 gryout');
	
		setElementAttribute(opener.$('financialInfoBtn'),'href','#');
		setElementAttribute(opener.$('financialInfoBtn'),classattr,'btn1 gryout');
		
		if(opener.$('showplanBtn') != null){
			setElementAttribute(opener.$('showplanBtn'),'onclick','');
			setElementAttribute(opener.$('showplanBtn'),classattr,'btn1 gryout');
		}
	}else{
		setElementAttribute($('getplanBtn'),'onclick','');	
		setElementAttribute($('getplanBtn'),classattr,'btn1 gryout');

		setElementAttribute($('updateleadBtn'),'onclick','');
		setElementAttribute($('updateleadBtn'),classattr,'btn1 gryout');
	
		setElementAttribute($('financialInfoBtn'),'href','#');
		setElementAttribute($('financialInfoBtn'),classattr,'btn1 gryout');
		
		if($('showplanBtn') != null){
			setElementAttribute($('showplanBtn'),'onclick','');
			setElementAttribute($('showplanBtn'),classattr,'btn1 gryout');
		}
	}
}	