// JavaScript Document

function get_user_agent(){
	var useragent = navigator.userAgent;
	if (useragent.indexOf("MSIE") != -1) return "msie";
	if (useragent.indexOf("Firefox") != -1) return "firefox";
	return "";
}

function get_navigator_clientdim(){
    var res = new Array(0, 0);
    var useragent = get_user_agent();

	if (useragent == "msie"){
        res[0] = document.body.clientWidth;
		res[1] = document.body.clientHeight;
	}
	if (useragent == "firefox"){
		res[0] = window.innerWidth;
        res[1] = window.innerHeight;
	}

    return res;
}

function set_layer_content(layer, visible, content){
    layer.innerHTML = content;
    if(visible)
        layer.style.visibility = "visible";
    else
        layer.style.visibility = "hidden";
}


function char_counter(max, object, layer){
	var txt = object.value;
	if(txt.length > max) {
		txt = txt.substr(0,max);
		object.value = txt;
	}
	set_layer_content(layer,true,'caratteri ' + txt.length + ' di ' + max);
	return true;
}

//validate a date
function is_date(variable, separator){
    //Autodetecting yearlength
    yearlength = 0;
    if (variable.length == 8) yearlength = 2;
    if (variable.length == 10) yearlength = 4;
    if (yearlength == 0) return false;
    if(!((variable.charAt(2) == separator) && (variable.charAt(5) == separator))) return false;
    day = variable.substr(0,2);
    month = variable.substr(3,2);
    year = variable.substr(6,yearlength);
    if (yearlength == 2) year = "20" + year;
    switch(month){
        case '01':
                if (!((day >= 1) && (day <= 31))) return false;
                break;
        case '02':
                if (!(
                ((day >= 1) && (day <= 28) && (year % 4 != 0)) ||
                ((day >= 1) && (day <= 29) && (year % 4 == 0))
                )) return false;
                break;
        case '03':
                if (!((day >= 1) && (day <= 31))) return false;
                break;
        case '04':
                if (!((day >= 1) && (day <= 30))) return false;
                break;
        case '05':
                if (!((day >= 1) && (day <= 31))) return false;
                break;
        case '06':
                if (!((day >= 1) && (day <= 30))) return false;
                break;
        case '07':
                if (!((day >= 1) && (day <= 31))) return false;
                break;
        case '08':
                if (!((day >= 1) && (day <= 31))) return false;
                break;
        case '09':
                if (!((day >= 1) && (day <= 30))) return false;
                break;
        case '10':
                if (!((day >= 1) && (day <= 31))) return false;
                break;
        case '11':
                if (!((day >= 1) && (day <= 30))) return false;
                break;
        case '12':
                if (!((day >= 1) && (day <= 31))) return false;
                break;
        default:
            return false;
    }
    if (!((year >= 1900) && (year <= 2100))) return false;
    return true;
}

//deprecated
function get_type(variable){
    //checking if is null
    if (typeof(variable) == 'null') return 'null';
    //checking if is boolean
    if (typeof(variable) == 'boolean') return 'boolean';
    //checking if is integer
    variable_int = parseInt(variable);
    if (!(isNaN(variable_int) || (variable_int != variable))) return 'integer';
    //checking if is float
    variable_float = parseFloat(variable);
    if (!(isNaN(variable_float) || (variable_float != variable))) return 'float';
    //checkinf if is string
    if (typeof(variable) == 'string') return 'string';
    return 'undefined';
}

//gets variable type   
function get_var_type(variable){
    //checking if is null
    if (typeof(variable) == 'null') return 'null';
    //checking if is boolean
    if (typeof(variable) == 'boolean') return 'boolean';
    //checking if is integer
    variable_int = parseInt(variable);
    if (!(isNaN(variable_int) || (variable_int != variable))) return 'integer';
    //checking if is float
    variable_float = parseFloat(variable);
    if (!(isNaN(variable_float) || (variable_float != variable))) return 'float';
    //checkinf if is string
    if (typeof(variable) == 'string') return 'string';
    return 'undefined';
}

function back(){
        window.history.back();
    }


function popup_wnd(popupwnd, url, left, top, width, height, features)
{
  if(popupwnd)
  {
    if(!popupwnd.closed) popupwnd.close();
  }
  if(features == null)
    return window.open(url, '', 'toolbar=no,location=no,directories=no,status=no,menub ar=no,scrollbars=yes,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
  else
    return window.open(url, '', features + ',width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
}

function cookie_enabled(){
    var cookieEnabled=(navigator.cookieEnabled)? true : false;
    //if not IE4+ nor NS6+
    if (typeof navigator.cookieEnabled=="undefined" && !cookieEnabled){
        document.cookie="testcookie"
        cookieEnabled = (document.cookie.indexOf("testcookie")!=-1)? true : false
    }
    return cookieEnabled;
}

function navigate(href){
    window.location.href = href;
}


function strip_html_tags(src){
    return src.replace(/(<([^>]+)>)/ig,"");   
} 

function decode_html_amped_chars(src){
    src = src.replace(/&amp;/ig,"&");
    src = src.replace(/&nbsp;/ig," ");
    src = src.replace(/&quote;/ig,'"');
    src = src.replace(/&lt;/ig,"<");
    src = src.replace(/&gt;/ig,">");
    src = src.replace(/&iexcl;/ig,"¡");
    src = src.replace(/&cent;/ig,"¢");
    src = src.replace(/&pound;/ig,"£");
    src = src.replace(/&curren;/ig,"¤");
    src = src.replace(/&yen;/ig,"¥");
    src = src.replace(/&brvbar;/ig,"¦");
    src = src.replace(/&sect;/ig,"§");
    src = src.replace(/&uml;/ig,"¨");
    src = src.replace(/&copy;/ig,"©");
    src = src.replace(/&ordf;/ig,"ª");
    src = src.replace(/&laquo;/ig,"«");
    src = src.replace(/&not;/ig,"¬");
    src = src.replace(/&shy;/ig,"­");
    src = src.replace(/&reg;/ig,"®");
    src = src.replace(/&macr;/ig,"¯");
    src = src.replace(/&deg;/ig,"°");
    src = src.replace(/&plusmn;/ig,"±");
    src = src.replace(/&sup2;/ig,"²");
    src = src.replace(/&sup3;/ig,"³");
    src = src.replace(/&acute;/ig,"´");
    src = src.replace(/&micro;/ig,"µ");
    src = src.replace(/&para;/ig,"¶");
    src = src.replace(/&middot;/ig,"•");
    src = src.replace(/&cedil;/ig,"¸");
    src = src.replace(/&sup1;/ig,"¹");
    src = src.replace(/&ordm;/ig,"º");
    src = src.replace(/&raquo;/ig,"»");
    src = src.replace(/&frac14;/ig,"¼");
    src = src.replace(/&frac12;/ig,"½");
    src = src.replace(/&frac34;/ig,"¾");
    src = src.replace(/&iquest;/ig,"¿");
    src = src.replace(/&Agrave;/ig,"À");
    src = src.replace(/&Aacute;/ig,"Á");
    src = src.replace(/&Acirc;/ig,"Â");
    src = src.replace(/&Atilde;/ig,"Ã");
    src = src.replace(/&Auml;/ig,"Ä");
    src = src.replace(/&Aring;/ig,"Å");
    src = src.replace(/&Elig;/ig,"Æ");
    src = src.replace(/&Ccedil;/ig,"Ç");
    src = src.replace(/&Egrave;/ig,"È");
    src = src.replace(/&Eacute;/ig,"É");
    src = src.replace(/&Ecirc;/ig,"Ê");
    src = src.replace(/&Euml;/ig,"Ë");
    src = src.replace(/&Igrave;/ig,"Ì");
    src = src.replace(/&Iacute;/ig,"Í");
    src = src.replace(/&Icirc;/ig,"Î");
    src = src.replace(/&Iuml;/ig,"Ï");
    src = src.replace(/&ETH;/ig,"Ð");
    src = src.replace(/&Ntilde;/ig,"Ñ");
    src = src.replace(/&Ograve;/ig,"Ò");
    src = src.replace(/&Oacute;/ig,"Ó");
    src = src.replace(/&Ocirc;/ig,"Ô");
    src = src.replace(/&Otilde;/ig,"Õ");
    src = src.replace(/&Ouml;/ig,"Ö");
    src = src.replace(/&times;/ig,"×");
    src = src.replace(/&Oslash;/ig,"Ø");
    src = src.replace(/&Ugrave;/ig,"Ù");
    src = src.replace(/&Uacute;/ig,"Ú");
    src = src.replace(/&Ucirc;/ig,"Û");
    src = src.replace(/&Uuml;/ig,"Ü");
    src = src.replace(/&Yacute;/ig,"Ý");
    src = src.replace(/&THORN;/ig,"Þ");
    src = src.replace(/&szlig;/ig,"ß");
    src = src.replace(/&agrave;/ig,"à");
    src = src.replace(/&aacute;/ig,"á");
    src = src.replace(/&acirc;/ig,"â");
    src = src.replace(/&atilde;/ig,"ã");
    src = src.replace(/&auml;/ig,"ä");
    src = src.replace(/&aring;/ig,"å");
    src = src.replace(/&aelig;/ig,"æ");
    src = src.replace(/&ccedil;/ig,"ç");
    src = src.replace(/&egrave;/ig,"è");
    src = src.replace(/&eacute;/ig,"é");
    src = src.replace(/&ecirc;/ig,"ê");
    src = src.replace(/&euml;/ig,"ë");
    src = src.replace(/&igrave;/ig,"ì");
    src = src.replace(/&iacute;/ig,"í");
    src = src.replace(/&icirc;/ig,"î");
    src = src.replace(/&iuml;/ig,"ï");
    src = src.replace(/&eth;/ig,"ð");
    src = src.replace(/&ntilde;/ig,"ñ");
    src = src.replace(/&ograve;/ig,"ò");
    src = src.replace(/&oacute;/ig,"ó");
    src = src.replace(/&ocirc;/ig,"ô");
    src = src.replace(/&otilde;/ig,"õ");
    src = src.replace(/&ouml;/ig,"ö");
    src = src.replace(/&divide;/ig,"÷");
    src = src.replace(/&oslash;/ig,"ø");
    src = src.replace(/&ugrave;/ig,"ù");
    src = src.replace(/&uacute;/ig,"ú");
    src = src.replace(/&ucirc;/ig,"û");
    src = src.replace(/&uuml;/ig,"ü");
    src = src.replace(/&yacute;/ig,"ý");
    src = src.replace(/&thorn;/ig,"þ");
    src = src.replace(/&yuml;/ig,"ÿ");
    return src;
}       


function strip_html(src){
    return decode_html_amped_chars(strip_html_tags(src));
}

//deprecated
function get_file_ext(fname){
    //calculating extension
    dotpos = fname.lastIndexOf('.');
    return fname.substring(dotpos + 1, fname.length);
}

function str_reverse(str) {
    var result = "";
    for (var i = 0; i <= str.length; i++) {
        result = str.charAt (i) + result;
    }
    return result;
}   

//case sensitive in array
function in_array(value, search_array){
    for (var i = 0; i < search_array.length; i++){
        if(search_array[i] == value) return true;
    }
    return false;
} 

//case isensitive in array
function in_array_i(value, search_array){
    for (var i = 0; i < search_array.length; i++){
        if(lower_case(search_array[i]) == lower_case(value)) return true;
    }
    return false;
} 

function lower_case(str){
    str = String(str);
    return str.toLowerCase();
}                                

function upper_case(str){
    str = String(str);
    return str.toUpperCase();
}                                                      

function get_month_daycount(month){
    month = Number(month);
    result = 0;     
    if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){
        result = 31;
    } 
    if(month == 4 || month == 6 || month == 9 || month == 11){
        result = 30;
    } 
    if(month == 2){
        result = 28;
    }
    return result;
} 

function get_date_daycount(day, month){
    day = Number(day);
    month = Number(month);
    if(day == 0 || month == 0) return 0;
    month_daycount = get_month_daycount(month);
    if(day > month_daycount) day = month_daycount;
    result = 0;
    for(var i = 1; i < month; i++){
        result += get_month_daycount(i);
    }
    result += day;
    return result;
}                         


                                            