function trim(str, chars){
	return ltrim(rtrim(str, chars), chars);
}

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 ShowHide(v, id){
	if(v==0){
		document.getElementById(id).style.display = 'none';
	}else{
		document.getElementById(id).style.display = '';
	}
}

function submitenter(myfield,e){
	//example: onKeyPress="return SubmitEnterLogin(this,event)"
	var keycode;
	if(window.event) keycode = window.event.keyCode;
	else if(e) keycode = e.which;
	else return true;

	if(keycode == 13){
	   myfield.form.submit();
	   return false;
	}else{
	   return true;
	}
}

function explode(delimiter, string, limit){
	var emptyArray = { 0: '' };
    
	// third argument is not required
	if(arguments.length < 2 || typeof arguments[0] == 'undefined' || typeof arguments[1] == 'undefined') return null;
	if(delimiter === '' || delimiter === false || delimiter === null) return false;
    if(typeof delimiter == 'function' || typeof delimiter == 'object' || typeof string == 'function' || typeof string == 'object') return emptyArray;
    if(delimiter === true) delimiter = '1';
	
	if(!limit){
		return string.toString().split(delimiter.toString());
	}else{
		// support for limit argument
		var splitted = string.toString().split(delimiter.toString());
		var partA = splitted.splice(0, limit - 1);
		var partB = splitted.join(delimiter.toString());
		partA.push(partB);
		return partA;
	}
}

function ValidateEmail(str){
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(reg.test(trim(str)) == false) return false;
	return true;
}

function ValidateMultiEmail(str){
	var arrEmail = new Array();
	arrEmail = explode(',', str);
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	for(var j=0; j<arrEmail.length; j++){
		if(reg.test(trim(arrEmail[j])) == false) return false;
	}
	return true;
}

function ValidateInteger(str){
   var reg = /^\d+$/;
   if(reg.test(str) == false) return false;
   return true;
}

function ValidateIntegerNegative(str){
	str = Math.abs(str);
	var reg = /^\d+$/;
	if(reg.test(str) == false) return false;
	return true;
}

function ValidatePrice(str){
   var reg = /^\d+(\.\d{0,2})?$/;
   if(reg.test(str) == false) return false;
   return true;
}

function TextCounter(field,cntfield,maxlimit){
	if(field.value.length > maxlimit) field.value = field.value.substring(0, maxlimit);
	else cntfield.innerHTML = maxlimit - field.value.length;
}

var dates = {
	convert:function(d) {
		return (
			d.constructor === Date ? d : 
			d.constructor === Array ? new Date(d[0],d[1],d[2]) : 
			d.constructor === Number ? new Date(d) :
			d.constructor === String ? new Date(d) :            
			typeof d === 'object' ? new Date(d.year,d.month,d.date) :            
			NaN        
		);    
	},    
	compare:function(a,b) {        
		return (            
			isFinite(a=this.convert(a).valueOf()) 
			&& isFinite(b=this.convert(b).valueOf()) ? (a>b)-(a<b) :            
			NaN        
		);    
	},    
	inRange:function(d,start,end) {        
		return (            
			isFinite(d=this.convert(d).valueOf()) &&            
				isFinite(start=this.convert(start).valueOf()) &&            
					isFinite(end=this.convert(end).valueOf()) ?            
					start <= d && d <= end :            
					NaN        
				);    
			}
}

function Compare2(a, b, aH, aM, bH, bM){
	var aString = new String(a);
	var bString = new String(b);
    var aParts = aString.split('-');
	var bParts = bString.split('-');
        
	aYear = parseInt(aParts[2],10);
	aMonth = parseInt(aParts[1],10);
	aDay = parseInt(aParts[0],10);
	bYear = parseInt(bParts[2],10);
	bMonth = parseInt(bParts[1],10);
	bDay = parseInt(bParts[0],10);
	a = dates.convert(aMonth+'/'+aDay+'/'+aYear+' '+aH+':'+aM+':00');
	b = dates.convert(bMonth+'/'+bDay+'/'+bYear+' '+bH+':'+bM+':00');
	var dateCompare = dates.compare(a, b);
	return dateCompare;
}

function ConstructDateTime(dte, h, m){
	var dteString = new String(dte);
	var dteParts = dteString.split('-');
	
	dteYear = parseInt(dteParts[2],10);
	dteMonth = parseInt(dteParts[1],10);
	dteDay = parseInt(dteParts[0],10);
	
	var strDate = dteYear+'-'+dteMonth+'-'+dteDay+' '+h+':'+m+':00';
	return strDate;
}

function Resize(imageid, per, width, height){
	img = document.getElementById(imageid);
	img.width = width*per/100;
	img.height = height*per/100;
}
