var extsArray	= new Array('gif', 'jpg', 'pdf', 'zip', 'doc', 'xls');
var multSacchi	= 10000;
var multScatole	= 1000;

function checkQuantity ( formName, maxNumSacchi, maxNumScatole, cod ) {
	with ( document.forms[formName] ) {
		var numSacchi = elements['cods[' + cod + '][numSacchi]'].value;
		if ( numSacchi > maxNumSacchi ) {
			alert("Attenzione il numero massimo di sacchi ordinabili � : " + maxNumSacchi);
			elements['cods[' + cod + '][numSacchi]'].value = maxNumSacchi;
		}
	}
}


var isDOM	= ( typeof(document.getElementsByTagName) != 'undefined' && typeof(document.createElement) != 'undefined' ) ? 1 : 0;
var isIE4	= ( typeof(document.all) != 'undefined' && parseInt(navigator.appVersion) >= 4 ) ? 1 : 0;
var isNS4	= ( typeof(document.layers) != 'undefined' ) ? 1 : 0;
var capable	= ( isDOM || isIE4 || isNS4 ) ? 1 : 0;

// Uggly fix for Opera and Konqueror 2.2 that are half DOM compliant
if ( capable ) {
	if ( typeof(window.opera) != 'undefined' ) {
		var browserName = ' ' + navigator.userAgent.toLowerCase();
			if ( ( browserName.indexOf('konqueror 7') == 0 ) ) {
				capable = 0;
			}
	} else if ( typeof(navigator.userAgent) != 'undefined' ) {
		var browserName = ' ' + navigator.userAgent.toLowerCase();
		if ( ( browserName.indexOf('konqueror') > 0 ) && ( browserName.indexOf('konqueror/3') == 0 ) ) {
			capable = 0;
		}
	}
}

function getElement ( e, f ) {
	if ( document.layers ) {
		f = ( f ) ? f : self;
		
		if ( f.document.layers[e] ) {
			return f.document.layers[e];
		}
		
		for ( W = 0; i < f.document.layers.length; W++ ) {
			return(getElement(e, fdocument.layers[W]));
		}
	}
	
	if ( document.all ) {
		return document.all[e];
	}
	
	return document.getElementById(e);
}

function hide( elmtName ) {
	try {
		getElement(elmtName).style.display	= 'none';
	} catch ( e ) {
		alert(e + ': ' + elmtName);
	}
}

function show ( elmtName ) {
	hide(elmtName);
	
	try {
		getElement(elmtName).style.display = 'block';
	} catch ( e ) {
		alert(e + ': ' + elmtName);
	}
}

function setRadioFalse ( formName, fieldName ) {
	with ( document.forms[formName] ) {
		for ( var i = 0; i < eval(fieldName + '.length'); i++ ) {
			eval(fieldName + '[' + i + '].checked = false;');
		}
	}
}

function inArray ( toSearchValue, arrayStack, typeAssociative ) {
	if ( typeAssociative == null ) {
		for ( var i = 0; i < arrayStack.length; i++ ) {
			if ( arrayStack[i] === toSearchValue ) {
				return true;
			}
		}
	}
	else {
		for ( var key in arrayStack ) {
			if ( arrayStack[key] === toSearchValue ) {
				return true;
			}
		}
	}
	
	return false;
}

function getFileExtention ( fileName ) {
	var returnValue = '';
	if ( /\.[a-zA-Z]{3}$/.test(fileName) ) {
		return fileName.split('.').pop();
	}
	
	return returnValue;
}

function checkFile( fileObj, extsArray ) {
	var fileName	= fileObj.value;
	var ext			= getFileExtention(fileName);
	
	if ( ext.length == 0 || !inArray(ext.toLowerCase(), extsArray) ) {
		return false;
	}
	
	return true;
}

function trim ( str ) {
	str = str.replace(/(^\s+)|(\s+$)/g, '');
	return str;
}

function checkFilled ( str ) {
	return trim(str).length > 0 ? true : false;
}

function checkNumber ( number, zerofill ) {
	var num = zerofill ? /^\d+$/ : /^[1-9]{1}\d*$/;
	return num.test(number);
}

function checkAlfaNum ( str ) {
	var anum = /^[\w\-\/\.\+]+$/;
	return anum.test(str);
}

function checkEmail ( str ) {
	//return (/^(([a-z0-9_\.\+\-\=\?\^\#]){1,64})\@((([a-z0-9\-]){1,251}\.){1,252}[a-z0-9]{2,4})$/i).test(str);
	return (/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/).test(str);
}

function checkArray ( obj ) {
	return obj.length > 0 ? true : false;
	//return obj.length > 0 || /\[\]$/.test(obj.name) ? true : false;
	/*
	if ( ( obj.length > 0 && !/^select-/.test(obj.type) ) || /\[\]$/.test(obj.name) ) {
		alert(obj.name);
	}
	*/
}

function getObjType ( obj ) {
	
	var returnType;
	
	if ( /^select-/.test(obj.type) ) {
		returnType = "combo";
	}
	else {
		var objType = checkArray(obj) ? obj[0].type : obj.type;
		
		if ( /^text$/.test(objType) ) {
			returnType = "text";
		}
		else if ( /^hidden$/.test(objType) ) {
			returnType = "hidden";
		}
		else if ( /^checkbox$/.test(objType) ) {
			returnType = "checkbox";
		}
		else if ( /^radio$/.test(objType) ) {
			returnType = "radio";
		}
		else if ( /^textarea$/.test(objType) ) {
			returnType = "textarea";
		}
		else if ( /^submit$/.test(objType) || /^button$/.test(objType) || /^reset$/.test(objType) ) {
			returnType = "bottone";
		}
	}
	
	return returnType;
}

function resetTextField ( obj ) {
	obj.value = "";
}

function resetCheckOrRadio ( obj ) {
	if ( checkArray(obj) ) {
		for ( var i = 0; i < obj.length; i++ ) {
			obj[i].checked = false;
		}
	}
	else {
		obj.checked = false;
	}
}

function resetCombo ( obj, noZeroLength ) {
	if ( noZeroLength ) {
		obj.options.length = 1;
	}
	obj.selectedIndex = 0;
}

function enableObj ( obj ) {
	obj.disabled = false;
}

function disableObj ( obj ) {
	obj.disabled = true;
}

function checkField ( obj ) {
	var check = false;
	var objType = this.getObjType(obj);
	
	if ( objType == 'combo' ) {
		if ( trim(obj.options[obj.selectedIndex].value).length > 0 ) {
			check = true;
		}
	}
	else {
		if ( checkArray(obj) ) {
			if ( objType == 'checkbox' || objType == 'radio' ) {
				for ( var i = 0; i < obj.length; i++ ) {
					if ( obj[i].checked == true ) {
						check = true;
						break;
					}
				}
			}
			else {
				for ( var i = 0; i < obj.length; i++ ) {
					if ( trim(obj[i].value).length > 0 ) {
						check = true;
						break;
					}
				}
			}
		}
		else {
			if ( trim(obj.value).length > 0 ) {
				check = true;
			}
		}
	}
	return check;
}

function resetFields () {
	for ( var i = 0; i < objForm.elements.length; i++ ) {
		var obj = objForm.elements[i];
		var objType = getObjType(obj);
		if ( objType != "bottone" ) {
			if ( objType != "combo" ) {
				if ( objType == 'checkbox' || objType == 'radio' ) {
					obj.checked == false;
				}
				else if ( objType == 'text' ) {
					obj.value = '';
				}
			}
			else {
				resetCombo(obj);
			}
		}
	}
}

function checkDate ( dd, mm, yyyy ) {
	var isValidDate = true;
	dd		= parseInt(dd.replace(/^0*/g, ''));
	mm		= parseInt(mm.replace(/^0*/g, ''));
	yyyy	= parseInt(yyyy);
	
	var isLeapYear = ( yyyy % 4 ) == 0 ? true : false;
	
	//alert(dd + '-' + mm + '-' + yyyy);
	
	if ( dd > 1 && ( mm >= 1 && mm <= 12 ) ) {
		switch ( mm ) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				if ( dd > 31 ) {
					isValidDate = false;
				}
				
				break;
			case 2:
				if ( isLeapYear ) {
					if ( dd > 29 ) {
						isValidDate = false;
					}
				}
				else {	
					if ( dd > 28 ) {
						isValidDate = false;
					}
				}
				
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				if ( dd > 30 ) {
					isValidDate = false;
				}
				
				break;
		}
	}
	else {
		isValidDate = false;
	}
	
	return isValidDate;
}

function popup(pagina,nomepopup,scrollbars,width,height)
	{
	  larghezza=screen.width;
	  altezza=screen.height;
	  spazio_oriz=(larghezza-width)/2;
	  spazio_vert=(altezza-height)/2;
	  parametri = "resizable=no,scrollbars="+scrollbars+",width="+width+",height="+height+",left="+spazio_oriz+",top="+spazio_vert;
	  window.open(pagina, nomepopup ,parametri);
	}

/*
var matrix = new Array();
matrix.push( { id : 1, subOptions : ""  } );
matrix.push( { id : 5, subOptions : "Ops!"  } );
matrix.push( { id : 5, subOptions : function ( param ) { alert(param); }  } );

alert(matrix[0]['id']);
alert(matrix[1]['id']);
var myFunc = matrix[2]['subOptions'];

myFunc("Test");
matrix[2]['subOptions']("Prova");
*/

