function str2int(str){
	int = parseFloat(str);
	return (!is_numeric(int))? 0 : int;
}

function is_numeric(str){
	return (typeof(str)=='number' || !isNaN(str*1));
}

function getCompleteWidth(Obj){
	return Obj.width() + getWidthMargins(Obj) + getWidthBorders(Obj);
}

function getCompleteHeight(Obj){
	return Obj.height() + getHeightMargins(Obj) + getHeightBorders(Obj);
}

function getWidthMargins(Obj){
	return str2int(Obj.css('margin-left')) + 
		str2int(Obj.css('margin-right')) + 
		str2int(Obj.css('padding-left')) + 
		str2int(Obj.css('padding-right'));
}

function getHeightMargins(Obj){
	return str2int(Obj.css('margin-bottom')) + 
		str2int(Obj.css('margin-top')) + 
		str2int(Obj.css('padding-bottom')) + 
		str2int(Obj.css('padding-top'));
}


function getWidthBorders(Obj){
	return str2int(Obj.css('border-left-width')) + 
		str2int(Obj.css('border-right-width'));
}

function getHeightBorders(Obj){
	return str2int(Obj.css('border-bottom-width')) + 
		str2int(Obj.css('border-top-width'));
}

function is_valid_email(str){
	return str.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
}

function isIE(){
	var data=navigator.appVersion;
	
	if(data.indexOf('MSIE') > -1)
		return parseFloat(data)
	
	return false;
}

function preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.p) d.p=new Array();
	var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

// Function to set src on given image element
function setImage (id, img) {
	document.getElementById(id).src=img;
	return true;
}

var zIndex = 50;

function setZIndex(Obj){
	Obj.css('z-index', zIndex);
	zIndex = zIndex + 1;
}

function is_valid_date(p_strValue, p_strLanguageFormat)
{
    var l_objRegExp;
    var l_intDay;
    var l_intMonth;
    var l_intYear;
    var l_intDaysInMonth;
    var l_Valid;
    var l_objDate;

    l_Valid = true;
    l_objRegExp = new RegExp("^(\\d{1,2})[/-](\\d{1,2})[/-](\\d{4})$");
    if (!l_objRegExp.test(p_strValue))
    {

            l_objRegExp = new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$");
            if (!l_objRegExp.test(p_strValue))
            {
                    return '##FIELDNAME## is een incorrecte datum';
            }
            else
            {
                    return true;
            }
                    }
    else
    {
		
            l_objRegExp.exec(p_strValue);
            switch (p_strLanguageFormat)
            {
                    case "English":
                    {
                            l_intDay = new Number(RegExp.$2);
                            l_intMonth = new Number(RegExp.$1);
                            break;
                    }
                    case "Dutch":
                    {
                            l_intDay = new Number(RegExp.$1);
                            l_intMonth = new Number(RegExp.$2);
                            break;
                    }
            }
            l_intYear =  new Number(RegExp.$3);
            l_intYear += ((l_intYear < 100)?((l_intYear >= 50)?1900:2000):0);
            l_intDaysInMonth = new Array (31,0,31,30,31,30,31,31,30,31,30,31);
            l_intDaysInMonth[1]= ((l_intYear%4==0)&&((l_intYear%100!=0)||(l_intYear%400==0)))?29:28;
            l_Valid = ((l_intMonth < 1) || (l_intMonth > 12) || 
					  (l_intDay < 1) || (l_intDay > l_intDaysInMonth[l_intMonth - 1]) || 
					  (l_intYear < 0))?false:true;
			if (l_Valid)
            {
                    l_objDate = new Date(l_intYear, (l_intMonth - 1), l_intDay);
                    l_Valid = isNaN(l_objDate)?false:true;
            }
            if (l_Valid == false)
            {
                    l_Valid = "##FIELDNAME## is geen correcte datum (";
                    if (p_strLanguageFormat == "English")
                    {
                            l_Valid += "MM-DD-YYYY";
                    }
                    else
                    {
                            l_Valid += "DD-MM-JJJJ";
                    }
                    l_Valid += ")";
            }       
            return l_Valid;
    }
} 
