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 = 2;

function setZIndex(Obj){
	Obj.css('z-index', zIndex);
	zIndex = zIndex + 1;
}

function confirm2Path(Q,url){
	var bool = confirm(Q);
	
	if(bool)
		window.location = url;
}

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;
    }
} 

function createUploader(type){            
    var uploader = new qq.FileUploader({
        element: document.getElementById('file-uploader'),
        action: 'ajax/php.php?type='+type,
        allowedExtensions: ['csv'],
        onComplete: function(id, fileName, responseJSON){
            if(responseJSON.success){
                if(responseJSON.type == 'ecolutioncombi50_nen5128'){
                    var inputs = new Array();
                    //inputs[0] = 'wooneenheden';
                    inputs[16] = '1|agverw';
                    inputs[17] = '1|averlies';
                    inputs[4] = '1|verwarmen';
                    inputs[5] = '1|hulpenergie';
                    inputs[6] = '1|warmtapwater';
                    inputs[7] = '1|ventilatoren';
                    inputs[14] = '1|totaal';
                    inputs[21] = '1|epc';
                    inputs[145] = '1|kwaliteitsverklaring';
                    
                    $('#kwaliteitsverklaring_warmtapwater_chk').attr('checked','checked');
                    checkboxAndAble(true,'kwaliteitsverklaring','');
                    checkboxAndAble(false,'cw_klasse','3');
                    
                    for(var i in inputs){
                        if(inputs[i] && responseJSON.inputfields[i]){
                            dat = inputs[i].split("|");
                            $('#'+dat[1]).val(responseJSON.inputfields[i][dat[0]]);
                        }
                    }

                    $('#ACTION').val('calc');
                   // $('#RekentoolForm').submit();

                }
                if(responseJSON.type == 'ecolutioncombi50_iso82'){
                    var inputs = new Array();
                    inputs[16] = '1|agverw';
                    inputs[17] = '1|averlies';
                    inputs[4] = '1|verwarmen';
                    inputs[5] = '1|hulpenergie';
                    inputs[6] = '1|warmtapwater';
                    inputs[14] = '1|totaal';
                    
                    for(var i in inputs){
                        if(inputs[i] && responseJSON.inputfields[i]){
                            dat = inputs[i].split("|");
                            $('#'+dat[1]).val(responseJSON.inputfields[i][dat[0]]);
                        }
                    }

                    $('#ACTION').val('calc');
                   //$('#RekentoolForm').submit();
                }

                if(responseJSON.type == 'ecolutionsolo_5128s'){
                    var inputs = new Array();
                    inputs[16] = '1|agverw';
                    inputs[17] = '1|averlies';
                    inputs[4] = '1|verwarmen';
                    inputs[5] = '1|hulpenergie';
                    inputs[7] = '1|ventilatoren';
                    inputs[14] = '1|totaal';
                    inputs[21] = '1|epc';
                    
                    for(var i in inputs){
                        if(inputs[i] && responseJSON.inputfields[i]){
                            dat = inputs[i].split("|");
                            $('#'+dat[1]).val(responseJSON.inputfields[i][dat[0]]);
                        }
                    }

                    $('#ACTION').val('calc');
                    //$('#RekentoolForm').submit();
                }
                // Nog in te vullen velden
                $('#wooneenheden').parent().parent().addClass('attention');
                $('#aanvoertemperatuur').parent().parent().addClass('attention');
                $('#rendement').parent().parent().addClass('attention');
                $('#kwaliteitsverklaring_hulpenergie_chk').parent().parent().addClass('attention');
                $('#toestelafhankelijke_constante_a').parent().parent().addClass('attention');

                $('#kwaliteitsverklaring_label').addClass('attention');

                $('#ei').parent().parent().addClass('attention');
                //$(document).animate({'scrollTop':0});//scrollTop(0);
                $('html,body').animate({scrollTop: 0}, 800);
                $('.uploaded').remove();
                $('.left-content div.kader:first').before('<div class="uploaded">Uploaden geslaagd, controleer de invoergegevens van het grijze invoerveld, en vul waar nodig de geel gemarkeerde invoervelden aan.</div>')
                
            }
        },
        debug: false,
        template: '<div class="qq-uploader">' + 
                    '<div class="qq-upload-drop-area"><span>Drop files here to upload</span></div>' +
                    '<div class="qq-upload-button">Upload .CSV</div>' +
                    '<ul class="qq-upload-list"></ul>' + 
                 '</div>',
        multiple: false
    });           
}

function html_entity_decode(str){
    try {
        var tarea=document.createElement('textarea');
        tarea.innerHTML = str; return tarea.value;
        tarea.parentNode.removeChild(tarea);
    }
    catch(e) {
        //for IE add <div id="htmlconverter" style="display:none;"></div> to the page
        document.getElementById("htmlconverter").innerHTML = '<textarea id="innerConverter">' + str + '</textarea>';
        var content = document.getElementById("innerConverter").value;
        document.getElementById("htmlconverter").innerHTML = "";
        return content;
    }
}
