
function openPopUp(page, w, h) { 
	var height = h;
	var width = w;
	
	var str = "height=" + height + ",innerHeight=" + height;
	str += ",width=" + width + ",innerWidth=" + width;
	if (window.screen) {
	    	var ah = screen.availHeight - 30;
	    	var aw = screen.availWidth - 10;
	
	    	var xc = (aw - width) / 2;
	    	var yc = (ah - height) / 2;
	
	    	str += ",left=" + xc + ",screenX=" + xc;
	    	str += ",top=" + yc + ",screenY=" + yc;
	}
  	return window.open(page, "", str+",scrollbars=yes,resizable=yes");
}

function OpenPopup(page, w, h) {
	return openPopUp(page, w, h);
}

function OpenWithPopup(aElement, w, h) {
	if(aElement.href == null) return null;
	else {
		var page = aElement.href;
		page = page.replace("index.php", "popup.php");
		if(page.indexOf("popup.php") == -1) page = page.replace("?page", "popup.php?page");
		//page = page.substring(page.lastIndexOf("/")+1);
		//page = "popup;"+page;

		OpenPopup(page, w, h);
		return false;
	}
}

function compareDates(d1, d2) {
	if(d1.length != 16) return -2;
	if(d2.length != 16) return -3;
	
	var strd1 = d1.substring(6,10) + d1.substring(3,5) + d1.substring(0,2) + d1.substring(11,13) + d1.substring(14,16);
	var strd2 = d2.substring(6,10) + d2.substring(3,5) + d2.substring(0,2) + d2.substring(11,13) + d2.substring(14,16);

	if(strd1 < strd2) return -1;
	else if(strd1 > strd2) return 1;
	else return 0;
}


function checkInputEuro(inputeuro) {
	var len = inputeuro.value.length;
	var newstr = "";
	var foundpoint = false;
	for(var i=0; i<len; i++) {
		var last = inputeuro.value.charAt(i);
		if(last >= "0" && last <= "9")
			newstr += last;
		else if(last == "," || last == ".") {
			if(!foundpoint)	{
				newstr += ".";
				foundpoint = true;
			}
		}
	}
	inputeuro.value = newstr;
}


function initSearchForm(formid, inputname) {
	if(inputname == null) inputname = "search";
	var formel = document.getElementById(formid);
	if(formel == null) return;

	//if(formel[inputname].value.length == 0) {
		formel.onsubmit = function() {
			if(formel[inputname].value.length == 0 || formel[inputname].value == "Cerca") {
				formel[inputname].focus();
				return false;
			}
			window.location = this.action + "&" + inputname + "=" + formel[inputname].value;
			return false;
		}
		
		if(formel[inputname].value.length == 0) formel[inputname].value = "Cerca";
		formel[inputname].onfocus = function() {
			if(formel[inputname].value == "Cerca") formel[inputname].value = "";
		}
		formel.search.onblur = function() {
			if(formel[inputname].value == "") formel[inputname].value = "Cerca";
		}
	//}
	//else {
		/*formel[inputname].onfocus = function() {
			this.select();
		}*/
	//}
}


function isEmail(str) {
	return (str.search(/^[a-zA-Z0-9][a-zA-Z0-9_\.\-]*@[a-zA-Z0-9_\.\-]*\.[a-zA-Z]{2}[a-zA-Z]{0,2}$/)==0);
}


function isDate(str) {
	var arr = str.split("/");
	if(arr.length != 3) return false;
	if(isNaN(arr[0])) return false;
	if(arr[0]<1 || arr[0]>31) return false;
	if(isNaN(arr[1])) return false;
	if(arr[1]<1 || arr[1]>12) return false;
	if(isNaN(arr[2])) return false;
	if(arr[2]<1900 || arr[2]>2100) return false;
	return true;
}

function updateDate(form, name) {
	form[name].value = form[name+"_gg"].value + "/" + (form[name+"_mm"].options[form[name+"_mm"].selectedIndex].value) + "/" + form[name+"_aa"].value;
}

function isEmptyDate(form, name) {
	if(form[name+"_gg"].value.length == 0) {
		form[name+"_gg"].focus();
		return true;
	}
	if(form[name+"_mm"].selectedIndex == 0) {
		form[name+"_mm"].focus();
		return true;
	}
	if(form[name+"_aa"].value.length == 0) {
		form[name+"_aa"].focus();
		return true;
	}
	return false;
}

function getSubmitButton(form) {
	var buttonsubmit = { disabled: false };
	$("input", form).each(function() {
		if($(this).attr("type") == "submit") buttonsubmit = this;
	});
	return buttonsubmit;
}


function DisableSubmitButton(form) {
	getSubmitButton(form).disabled = true;
}

function EnableSubmitButton(form) {
	getSubmitButton(form).disabled = false;
}

function GetFileExtension(str) {
	return str.substr(str.length - 3).toLowerCase();
}


function checkLoginForm(form) {
	if(form.username.value.length == 0) {
		HighlightField(form.username);
		return false;
	}
	if(form.password.value.length == 0) {
		HighlightField(form.password);
		return false;
	}
	DisableSubmitButton(form);
	return true;
}

function TogglePanel(a, panid, withSlide) {
	if(withSlide == null) withSlide = true;
	else withSlide = false;
	
	if(withSlide) $("#"+panid).slideToggle("fast");
	else $("#"+panid).toggle();
	$(a).toggleClass('clicked');
	$(a).parent().toggleClass('clicked');
	$(a).blur();
}

function SelectGetValue(select) {
	return select.options[select.selectedIndex].value;
}

function SelectGetText(select) {
	return select.options[select.selectedIndex].text;
}

function SelectSetValue(select, value) {
	for(var i=0; i<select.options.length; i++)
		select.options[i].selected = (select.options[i].value == value);
}


function MostraAltriVideo(divid, aElem) {
	if(aElem != null) $(aElem).toggleClass("link-selected");
	$("#" + divid).slideToggle("fast");
}


var _HighlightFieldBgColor = "#CC0000";

function HighlightFieldConfig(color) {
	_HighlightFieldBgColor = color;
}

function HighlightField(field) {
	var origBackground = field.style.background;
	var origBorderStyle = field.style.borderStyle;
	var origBorderColor = field.style.borderColor;

	field.focus();
	setTimeout(function() {
		field.style.background = _HighlightFieldBgColor;
		field.style.borderColor = _HighlightFieldBgColor;
		field.style.borderStyle = "solid";
		setTimeout(function() {
			field.style.background = "";
			field.style.borderColor = _HighlightFieldBgColor;
				setTimeout(function() {
				field.style.background = _HighlightFieldBgColor;
				field.style.borderColor = _HighlightFieldBgColor;
				setTimeout(function() {
					field.style.background = origBackground;
					field.style.borderStyle = origBorderStyle;
					field.style.borderColor = origBorderColor;
				}, 150);
			}, 150);
		}, 150);
	}, 150);

	return false;
}




/**
 * Costruisce una Query String a partire dagli attributi di un oggetto
 *
 * @param object
 * @param separator (di default "&")
 * @param skipIfNull (di dafult false)
 * @return String
 */
function QueryStringSerialize(object, separator, skipIfNull) {
	if (separator == null) separator = "&";

	var qs = "";
	for (var i in object) {
		var add = true;
		if (skipIfNull && (object[i] == null || ("" + object[i]).length == 0)) add = false;

		if (add) qs += i + "=" + URLEncode(object[i]) + separator;
	}
	if (qs.length > 0) qs = qs.substring(0, qs.length - 1);

	return qs;
}

/**
 * Costruisce una un oggetto a partire dagli attributi della Query String
 *
 * @param queryString
 * @param separator (di default "&")
 * @return String
 */
function QueryStringUnserialize(queryString, separator) {
	if (separator == null) separator = "&";

	var object = {};
	if (queryString.length > 0) {
		if (queryString.charAt(0) == "#") queryString = queryString.substring(1);

		var params = queryString.split(separator);
		for (var i in params) {
			var param = params[i].split("=");

			object[param[0]] = URLDecode(param[1]);
		}
	}

	return object;
}
