/*
 * LAST MODIFICATIONS:
 * 		- 2009-07-10 By Thomas Lété: Refactor the code
 * 		- 2008-10-23 By Damien Sury: Added checkTransferPoints()
 * 		- 2008-10-23 By Dries Raman: Added loadFragmentInToElement_post()
 * 		- 2008-10-13 By Dries Raman: Modified margin_calculator_swap() -> modified Modalbox.resize() parameters
 * 		- 2008-07-31 By Luc Dubay : add 3rd arguments in ajaxGetContent()
 * 		- 2008-07-03 By Dries Raman: Modified editable_value_change()
 * 		- 2008-06-26 By Dries Raman: Added editable_value_change()
 * 		- 2008-04-04 By Dries Raman: - Modified margin_calculator_swap()
 * 									 - Added load_margin_calculator_part()
 * 		- 2008-04-03 By Dries Raman: Added margin_calculator_swap()
 * 		- 2007-12-26 By Dries Raman: - Added add_QBfield()
 * 									 - Added QB_wastebin()
 * 									 - Modified anim_catalog_thumb()
 * 		- 2007-12-18 By Dries Raman: - Added findPos()
 * 									 - Added anim_catalog_thumb()
 * 		- 2007-12-10 By Dries Raman: added check if 'submitbutton' exists in switchlist()
 * 		- 2007-11-28 By Renaud Diez: setitemrefprice()
 * 		- 2007-11-07 By Dries Raman: Added hash location in showdivquiz() 
 * 
 */

function setnewhash(newhash) {
	window.location.hash = newhash;
}

function magicchkbox(form_name, hiddenblock, chk_box) {

	if (document.forms[form_name].elements[chk_box][1].checked == true) {
		// window.alert(document.forms[form_name].elements[chk_box].value + "
		// e1<--value " );
		$(hiddenblock).show();
	} else {
		// window.alert("name " + [chk_box] + "---- value " +
		// document.forms[form_name].elements[chk_box].value );
		// window.alert("name " + [chk_box] + "---- value " +
		// ddocument.forms[form_name].elements[chk_box][1].value == "1");
		$(hiddenblock).hide();
	}
}

function setitemrefprice() {
	purchase = $('purchase_price').value;
	margin = $('margin').value;

	var anum = /(^\d+$)|(^\d+\.\d+$)/;

	if (anum.test(purchase) != false && anum.test(margin) != false) {
		$('discount_price').value = purchase * (1 + (margin / 100));
	}

}

function advancedcheckbox(chk_box, hiddenblock) {
	if (chk_box.checked == true) {
		$(hiddenblock).show();
	} else {
		$(hiddenblock).hide();
	}

}

function switchlist(a, b, c) {
	if ($("submitbutton") != null && $("submitbutton") != "undefined") {
		$("submitbutton").hide();
		$("submitbutton").style.visibility = "hidden";
		$("submitbutton").value = "summit";
	}

	var val = a;
	if (c == "") {
		var c = "Form1";
	}
	var s = window.document.forms[c].elements[b].value;

	window.location = a + s;
}

function switchcontext(a, b, c) {
	var val = a;
	if (c == "") {
		var c = "Form1";
	}
	var s = window.document.forms[c].elements[b].value;

	url = a + s;
	mywin = window.open(url, "");
}

function closethiswindow() {
	window.open('', '_parent', '');
	window.close();
}

function initscroller(w, h, d, i) {
	// arguments: id of layer that scrolls, width and height of scroller (of
	// wn),
	// number of items (including repeated 1st item), axis ("v" or "h")
	// set up pause/resume onmouseover/out? (true or false)
	var scr1 = new dw_scroller('cnt', w, h, i, "v", true);
	scr1.setTiming(100, 7000);
}

function showdivquiz() {
	$("divquiznsurvey").setStyle({visibility: 'visible'});
	window.scrollTo(0, 0);
}

function showdiv(div) {
	if($(div) != undefined)
		$(div).setStyle({visibility: 'visible'});
	else if(window.parent.$(div) != undefined)
		window.parent.$(div).setStyle({visibility: 'visible'});
}

function hidediv(div) {
	if($(div) != undefined)
		$(div).setStyle({visibility: 'hidden'});
	else if(window.parent.$(div) != undefined)
		window.parent.$(div).setStyle({visibility: 'hidden'});
}

function addrecord() {
	if ($("divnewrecord").style.display == "none") {
		var rows = window.document.forms["grid_form"].elements["numrows"].value;
		rows = rows + 1;
		window.document.forms["grid_form"].elements["addnewrecord"].value = "add";
		window.document.forms["grid_form"].elements["numrows"].value = rows;
		$("divnewrecord").show();
	} else {
		var rows = window.document.forms["grid_form"].elements["numrows"].value;
		rows = rows - 1;
		window.document.forms["grid_form"].elements["addnewrecord"].value = "";
		window.document.forms["grid_form"].elements["numrows"].value = rows;
		$("divnewrecord").hide();
	}
}

function savenewrecord() {
	if (window.document.forms["grid_form"].elements["savenewrec"].checked == true) {
		var rows = window.document.forms["grid_form"].elements["numrows"].value;
		rows = rows + 1;
		window.document.forms["grid_form"].elements["savenewrec"].value = "add";
		window.document.forms["grid_form"].elements["numrows"].value = rows;
	} else {
		var rows = window.document.forms["grid_form"].elements["numrows"].value;
		rows = rows - 1;
		window.document.forms["grid_form"].elements["savenewrec"].value = "";
		window.document.forms["grid_form"].elements["numrows"].value = rows;
	}
}

function set_recipients(a, b) {
	var val = b;
	string = window.document.forms["Form"].elements["recipients"].value;

	if (window.document.forms["Form"].elements[a].checked == true)
		window.document.forms["Form"].elements["recipients"].value = window.document.forms["Form"].elements["recipients"].value
				+ "," + val;
}

function send_recipients(a) {
	string = window.document.forms["Form"].elements["recipients"].value;

	result = string.substring(1, string.length);

	window.opener.document.forms["Form1"].elements[a].value = result;
	window.close();
}

function set_guests(a, b) {
	var vala = b;
	var valb = b;
	string = window.document.forms["Form"].elements["recipients"].value;

	if (window.document.forms["Form"].elements[a].checked == true) {
		window.document.forms["Form"].elements["recipients"].value = window.document.forms["Form"].elements["recipients"].value
				+ "," + vala;
		window.document.forms["Form"].elements["guests"].value = window.document.forms["Form"].elements["guests"].value
				+ "," + valb;
	}

}

function send_guests() {
	string = window.document.forms["Form"].elements["recipients"].value;
	guests = window.document.forms["Form"].elements["guests"].value;

	resulta = string.substring(1, string.length);
	resultb = guests.substring(1, guests.length);

	window.opener.document.forms["Form1"].elements["recipients"].value = resulta;
	window.opener.document.forms["Form1"].elements["guests"].value = resultb;
	window.close();
}

function submit_invoutgrid() {
	alert("hello");
	window.document.forms["Form1"].elements["submitinvout"].value = "submit";
}

function show_relations() {
	if (window.document.forms["Form"].elements["show_rels"].checked == true)
		$("relations").show();
	else
		$("relations").hide();
}

function show_relations_form1() {
	if (window.document.forms["Form1"].elements["show_rels"].checked == true)
		$("relations").show();
	else
		$("relations").hide();
}

function show_action_group() {
	$("addgroup").toggle()
	$("addparticipant").hide();
}

function show_action_participant() {
	$("addgroup").hide();
	$("addparticipant").toggle();
}

function set_relation(rel) {
	var string = "";
	if ($("downward").checked == true) {
		if ($("d_read").checked == true)
			var d_read = 1;
		else
			var d_read = 0;

		if ($("d_add").checked == true)
			var d_add = 1;
		else
			var d_add = 0;

		if ($("d_edit").checked == true)
			var d_edit = 1;
		else
			var d_edit = 0;

		if ($("d_del").checked == true)
			var d_del = 1;
		else
			var d_del = 0;

		var string = "downward_relation(tag_item()," + rel + "," + d_read + ","
				+ d_add + "," + d_edit + "," + d_del + ")";
	}

	if ($("rising").checked == true) {
		if ($("u_read").checked == true)
			var u_read = 1;
		else
			var u_read = 0;

		if ($("u_add").checked == true)
			var u_add = 1;
		else
			var u_add = 0;

		if ($("u_edit").checked == true)
			var u_edit = 1;
		else
			var u_edit = 0;

		if ($("u_del").checked == true)
			var u_del = 1;
		else
			var u_del = 0;

		if ($("downward").checked == true)
			var string = string + ".rising_relation(tag_item()," + rel + ","
					+ u_read + "," + u_add + "," + u_edit + "," + u_del + ")";
		else
			var string = string + "rising_relation(tag_item()," + rel + ","
					+ u_read + "," + u_add + "," + u_edit + "," + u_del + ")";
	}

	var string = "/#echo " + string + ";#/";
	customHTML(string);
}

function customHTML(a) {
	if (navigator.appName.indexOf('Microsoft') != -1) {
		// obj=dialogArguments.oUtil.obj;
		var obj = window.opener.oUtil.obj;
	} else {
		var obj = window.opener.oUtil.obj;
	}
	obj.insertHTML(a);
	window.close();
}

function goto_url(url) {
	var val = document.forms["Form1"].elements["calcul"].value;
	val = val.replace("+", "|");
	window.location = url + "&val=" + val;
}

function value_list_url(url) {
	var val = document.forms["Form1"].elements["option_list"].value;
	window.location = url + val;
}

function set_value_list(v, f) {
	if ($("value_list").value != "") {
		$("value_list").value = $("value_list").value + "." + v;
	}

	if ($("value_list").value == "") {
		$("value_list").value = v;
	}
}

function set_string_calcul(a) {
	var val = $("string_calcul").value;
	var op = $("operator").value;
	var aggr = $("aggregate").value;

	if (aggr != "") {
		a = aggr + "(" + a + ")";
	}

	if (val != "") {
		$("string_calcul").value = val + op + a;
	} else {
		$("string_calcul").value = a;
	}
}

function script_attrs() {
	if (document.forms["Form1"].elements["txt_script"].checked == true) {
		$("textarea").show();
	} else {
		$("textarea").hide();
	}
}

function adv_options() {
	if (document.forms["Form1"].elements["adv_box"].checked == true) {
		$("adv_options").show();
	} else {
		$("adv_options").hide();
	}
}

function adv_rewards() {
	if (document.forms["Form1"].elements["adv_rbox"].checked == true) {
		$("adv_rewards").show();
	} else {
		$("adv_rewards").hide();
	}
}

function switch_attrs(attr) {
	var ref_type = document.forms["Form1"].elements["ref_type"].value;

	if (attr == "is_wzg" || attr == "is_textarea" || attr == "txt_list"
			|| attr == "is_boolean") {
		if (attr != "is_textarea") {
			document.forms["Form1"].elements["is_textarea"].checked = false;
		}

		if (attr != "is_wzg") {
			document.forms["Form1"].elements["is_wzg"].checked = false;
		}

		if (attr != "txt_list") {
			document.forms["Form1"].elements["txt_list"].checked = false;
		}

		if (attr != "is_boolean") {
			document.forms["Form1"].elements["is_boolean"].checked = false;
		}

	}

	if (attr == "date_time" || attr == "time_only") {
		if (attr != "date_time") {
			document.forms["Form1"].elements["date_time"].checked = false;
		}

		if (attr != "time_only") {
			document.forms["Form1"].elements["time_only"].checked = false;
		}
	}

	if (attr == "visual_editor" || attr == "browse" || attr == "text"
			|| attr == "txt_list") {
		if (attr != "visual_editor") {
			document.forms["Form1"].elements["visual_editor"].checked = false;
		}

		if (attr != "browse") {
			document.forms["Form1"].elements["browse"].checked = false;
		}

		if (attr != "txt_list") {
			document.forms["Form1"].elements["txt_list"].checked = false;
		}

	}

	if (ref_type == "text") {
		$("option_textarea").show();
		$("option_text").show();
		$("num_decimal").hide();
		$("option_asset").hide();
		$("option_hide").hide();
	} else {
		document.forms["Form1"].elements["is_textarea"].checked = false;
		document.forms["Form1"].elements["is_wzg"].checked = false;

		$("option_text").hide();
		$("option_textarea").hide();
		$("attrs_text").hide();
		$("attrs_wzg").hide();
		$("attrs_textarea").hide();
	}

	if (ref_type == "numeric") {
		$("num_decimal").show();
		$("option_numeric").show();
		$("option_text").hide();
		$("option_asset").hide();
		$("option_hide").hide();

		if (document.forms["Form1"].elements["is_boolean"].checked == true) {
			$("attrs_boolean").show();
			$("num_decimal").hide();
			$("list_value").hide();
			$("attrs_notation").hide();
		} else {
			$("attrs_boolean").hide();
			$("num_decimal").show();
			$("attrs_notation").show();
		}
	} else {
		$("num_decimal").hide();
		$("attrs_notation").hide();
		$("option_numeric").hide();
	}

	if (ref_type == "date") {
		$("option_date").show();
		$("num_decimal").hide();
		$("option_numeric").hide();
		$("option_text").hide();
		$("option_asset").hide();
		$("option_hide").hide();
	} else {
		$("option_date").hide();
	}

	if (document.forms["Form1"].elements["date_time"].checked == true) {
		document.forms["Form1"].elements["time_only"].checked = false;
	}

	if (document.forms["Form1"].elements["time_only"].checked == true) {
		document.forms["Form1"].elements["date_time"].checked = false;
	}

	if (ref_type == "asset") {
		$("num_decimal").hide();
		$("option_numeric").hide();
		$("option_text").hide();
		$("option_asset").hide();
		$("option_hide").hide();
	} else {
		$("option_asset").hide();
	}

	if (ref_type == "calculation" || ref_type == "summary") {
		$("option_hide").show();
		$("num_decimal").hide();
		$("option_numeric").hide();
		$("option_text").hide();
		$("option_asset").hide();
		$("option_list").hide();
		$("list_value").hide();
		document.forms["Form1"].elements["txt_list"].checked = false;
	} else {
		$("option_hide").hide();
		$("option_list").show();
	}

	if (document.forms["Form1"].elements["is_textarea"].checked == false
			&& document.forms["Form1"].elements["is_wzg"].checked == false
			&& document.forms["Form1"].elements["txt_list"].checked == false) {
		$("attrs_text").show();
	}

	if (document.forms["Form1"].elements["is_textarea"].checked == true) {
		$("option_text").show();
		$("attrs_text").hide();
		$("attrs_textarea").show();
		$("attrs_wzg").hide();
		$("list_value").hide();
	} else {
		$("attrs_textarea").hide();
	}

	if (document.forms["Form1"].elements["is_wzg"].checked == true) {
		$("option_text").show();
		$("attrs_text").hide();
		$("attrs_wzg").show();
		$("attrs_textarea").hide();
		$("list_value").hide();
	} else {
		$("attrs_wzg").hide();
	}

	if (document.forms["Form1"].elements["txt_list"].checked == true) {
		$("option_text").show();
		$("attrs_text").hide();
		$("attrs_wzg").hide();
		$("attrs_textarea").hide();
		$("list_value").show();
		$("num_decimal").hide();
	} else {
		$("list_value").hide();
	}

}

function switch_multilangue() {
	var ref_type = document.forms["Form1"].elements["ref_type"].value;

	if (ref_type == "text" || ref_type == "asset") {
		$("attr_multilangue").show();
		document.forms["Form1"].elements["multilangue"].show();
	} else {
		$("attr_multilangue").hide();
		document.forms["Form1"].elements["multilangue"].hide();
	}
}

function show_attrs(attr) {
	var ref_type = document.forms["Form1"].elements["ref_type"].value;
	var multilangue = document.forms["Form1"].elements["multilangue"].value;

	if (attr == "txt_default" || attr == "txt_function" || attr == "txt_calcul"
			|| attr == "opt_serial") {
		if (attr != "txt_default") {
			document.forms["Form1"].elements["txt_default"].checked = false;
		}

		if (attr != "txt_function") {
			document.forms["Form1"].elements["txt_function"].checked = false;
		}

		if (attr != "txt_calcul") {
			document.forms["Form1"].elements["txt_calcul"].checked = false;
		}

		if (ref_type == "text" && multilangue == "0" && attr != "opt_serial") {
			document.forms["Form1"].elements["opt_serial"].checked = false;
		}
		if (ref_type == "numeric" && attr != "opt_serial") {
			document.forms["Form1"].elements["opt_serial"].checked = false;
		}
		if (ref_type == "date" && attr != "opt_serial") {
			document.forms["Form1"].elements["opt_serial"].checked = false;
		}
	}

	if (document.forms["Form1"].elements["txt_default"].checked == true) {
		document.forms["Form1"].elements["default_value"].disabled = false;
	} else {
		document.forms["Form1"].elements["default_value"].disabled = true;
	}

	if (document.forms["Form1"].elements["txt_function"].checked == true) {
		document.forms["Form1"].elements["opt_text"].disabled = false;
	} else {
		document.forms["Form1"].elements["opt_text"].disabled = true;
	}

	if (document.forms["Form1"].elements["txt_calcul"].checked == true) {
		$("opt_calcul").show();
	} else {
		$("opt_calcul").hide();
	}

	if (document.forms["Form1"].elements["opt_serial"].checked == true) {
		if (ref_type == "text" && multilangue == "0") {
			document.forms["Form1"].elements["increment"].disabled = false;
			document.forms["Form1"].elements["prefix"].disabled = false;
			document.forms["Form1"].elements["suffix"].disabled = false;
		}

		if (ref_type == "numeric") {
			document.forms["Form1"].elements["increment"].disabled = false;
		}
	} else {
		if (ref_type == "text" && multilangue == "0") {
			document.forms["Form1"].elements["increment"].disabled = true;
			document.forms["Form1"].elements["prefix"].disabled = true;
			document.forms["Form1"].elements["suffix"].disabled = true;
		}

		if (ref_type == "numeric") {
			document.forms["Form1"].elements["increment"].disabled = true;
		}
	}

}

function set_attrs_fields(a, b, c) {
	window.opener.document.forms[c].elements["ref_link"].value = a;
	window.opener.document.forms[c].elements["ref_dep"].value = b;
	window.close();
}

function post_popup(a, b) {
	window.opener.document.forms[a].elements[b].value = window.document.forms[a].elements[b].value;
	window.close();
}

function get_parent_value(a) {
	window.document.forms["Form1"].elements[a].value = window.opener.document.forms["Form1"].elements[a].value;
}

function redim() {
	das = $("nom_du_tableau").offsetHeight;
	parent.$("nom_Frame").height = das;
	das = $("nom_du_tableau").offsetWidth;
	parent.$("nom_Frame").width = das;
}

function sp_redirect(nexturl) {
	window.open(nexturl, '_top');
}

function handleFile(nr) {
	var b;
	browser = navigator.appName;
	if (browser == "Microsoft Internet Explorer") {
		b = "ie";
	} else {
		b = "other";
	}
	if (b != "ie") {
		alert("This feature is currently only available for Microsoft Internet Explorer 5.5+ users\n\nWait for an update!");
	} else {
		check = confirm("Do you want to download the file ?");
		if (check) {
			setTimeout("this.location.reload()", 8000);
			location.href = "gotodownload.php?download=1&file=" + nr
					+ "&msgno=<?= $msgno ?>";
		} else {
			location.reload();
		}
	}
}

/*
 * Function that shows/hides a div as an information "popup" besides the mouse
 * pointer
 */
function Show_Hide_Object(posX, posY, obj, showType) {
	Move_Div(posX, posY, obj);
	$(obj).style.display = showType;
}

/*
 * Function that moves the popup when the mouse moves. It also calculates the
 * position of the pointer image when one is provided. This function will also
 * make sure that the popup is not shown outside the borders of the screen.
 */
function Move_Div(posX, posY, obj) {
	popWidth = parseInt($(obj).style.width, 10);
	popHeight = parseInt($(obj).style.height, 10);
	if (document.body && typeof document.body.clientWidth != 'undefined') {
		sceenWidth = document.body.clientWidth;
		screenHeight = document.body.clientHeight;
	}
	if (typeof window.innerWidth != 'undefined') {
		sceenWidth = window.innerWidth;
		screenHeight = window.innerHeight;
	}
	scrollLeft = document.body.scrollLeft;
	scrollTop = document.body.scrollTop

	// set the X position of the popup and make sure that the X position of the
	// popup is not outside the screen...this would create a scollbar...
	popPositionX = (posX + scrollLeft) - (popWidth / 4);
	if ((popPositionX + popWidth) > sceenWidth)
		popPositionX = sceenWidth - popWidth - 5;
	if (popPositionX <= 0)
		popPositionX = 5;

	// set the Y position ad make sure that the popup is not outside the browser
	// widow to avoid a scrollbar to appear.
	popPositionY = (posY + scrollTop) + 25;
	if ((popPositionY + popHeight - scrollTop) > screenHeight)
		popPositionY = popPositionY - popHeight + 15;

	$(obj).style.left = popPositionX;
	$(obj).style.top = popPositionY;
	$(obj).style.zIndex = 2;
}

function xhtmlobject() {
	if (window.XMLHttpRequest) {
		var xmlhttp = new XMLHttpRequest();

		// Évite un bug du navigateur Safari :
		if (xmlhttp.overrideMimeType) {
			xmlhttp.overrideMimeType("text/xml");
		}

	} else {

		if (window.ActiveXObject) {

			try { // essaie de charger l'objet pour IE
				var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try { // essaie de charger l'objet pour une autre version IE
					var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
					window
							.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
					return;
				} // try-catch
			} // try-catch

		}

	}

	return xmlhttp;
}

function loadFragmentInToElement(fragment_url, element_id) {
	var element = $(element_id);

	new Ajax.Request(fragment_url, {
	onSuccess: function(transport) {
			element.update(transport.responseText);
//			window.location.hash = element_id;
		}
	});
}

function loadFragmentInToElement_post(fragment_url, element_id) {
	var element = $(element_id);

	new Ajax.Request(fragment_url, {
	onSuccess: function(transport) {
			element.update(transport.responseText);
//			window.location.hash = element_id;
		}
	});
}

function ajaxGetContent(fragment_url, element_id) {
	var element = $(element_id);

	new Ajax.Request(fragment_url, {
	onSuccess: function(transport) {
			element.update(transport.responseText);
			if (ajaxGetContent.arguments && ajaxGetContent.arguments[2]) {
				setTimeout(ajaxGetContent.arguments[2], 10);
			}
		}
	});
}

function ajax_input_change(fragment_url, element_id, valueid) {
	var element = $(element_id);
	var inputvalue = $(valueid).value;

	fragment_url = fragment_url + inputvalue;

	new Ajax.Request(fragment_url, {
	onSuccess: function(transport) {
			element.update(transport.responseText);
			window.location.hash = element_id;
		}
	});
}

function ajax_value2input(fragment_url, element_id, valueid) {
	var element = $(element_id);
	var inputvalue = $(valueid).value;

	fragment_url = fragment_url + inputvalue;

	new Ajax.Request(fragment_url, {
	onSuccess: function(transport) {
			element.update(transport.responseText);
		}
	});
}

function get_inputs() {
	var Inputs = $$("input");

	for ( var i = 0; i < Inputs.length; i++) {
		data = data + "&" + Inputs[i].id + " = " + Inputs[i].value;
	}

}

function sendajaxformtest(fragment_url, theform, thediv) {
	for (i = 0; i < window.document.forms[theform].length; i++) {
		var tempobj = window.document.forms[theform].elements[i];

		if (tempobj.type == "password")
			alert(encodeURI(tempobj.value));
		if (tempobj.type == "radio" || tempobj.type == "checkbox") {

			if (tempobj.checked == true) {
				data = data + "&" + tempobj.id + "=" + encodeURI(tempobj.value);
			}

		} else if (tempobj.value != "")
			data = data + "&" + tempobj.id + "=" + encodeURI(tempobj.value);

	}

}

function sendajaxform(fragment_url, theform, thediv) {
	var data = "";
	for (i = 0; i < window.document.forms[theform].length; i++) {
		var tempobj = window.document.forms[theform].elements[i];

		if (tempobj.type == "radio" || tempobj.type == "checkbox") {

			if (tempobj.checked == true) {
				data = data + "&" + tempobj.id + "=" + encodeURIComponent(tempobj.value);
			}

		} else if (tempobj.value != "")
			data = data + "&" + tempobj.id + "=" + encodeURIComponent(tempobj.value);

	}

	new Ajax.Request(fragment_url, {
		parameters: data,
		onSuccess: function(transport) {
			$(thediv).update(transport.responseText);
		}
	});
}

function sendajaxformN(fragment_url, theform, thediv) {
	var data = "";
	for (i = 0; i < window.document.forms[theform].length; i++) {
		var tempobj = window.document.forms[theform].elements[i];

		if (tempobj.type == "radio" || tempobj.type == "checkbox") {

			if (tempobj.checked == true) {
				data = data + "&" + tempobj.id + "=" + encodeURI(tempobj.value);
			}

		} else if (tempobj.value != "")
			data = data + "&" + tempobj.id + "=" + encodeURI(tempobj.value);

	}

	new Ajax.Request(fragment_url, {
		parameters: data,
		onSuccess: function(transport) {
			$(thediv).update(transport.responseText);
		}
	});
}

function sendajaxformXML(fragment_url, theform, thediv) {
	var data = "";
	for (i = 0; i < window.document.forms[theform].length; i++) {
		var tempobj = window.document.forms[theform].elements[i];

		if (tempobj.type == "radio" || tempobj.type == "checkbox") {

			if (tempobj.checked == true) {
				data = data + "&" + tempobj.id + "=" + encodeURI(tempobj.value);
			}

		} else if (tempobj.value != "")
			data = data + "&" + tempobj.id + "=" + encodeURI(tempobj.value);

	}

	new Ajax.Request(fragment_url, {
		parameters: data,
		onSuccess: function(transport) {
			var childinput = transport.responseText;
			alert(childinput);
			$(theform).appendChild(childinput);
			alert(456);
		}
	});
}

function sendajaxformvalues(fragment_url, data) {
	new Ajax.Request(fragment_url, {
		parameters: data,
		onComplete: function(transport) {
			$("responseText").update(transport.responseText);
		}
	});
}

function sendajaxformvaluesB(fragment_url, data, elem) {
	new Ajax.Request(fragment_url, {
		parameters: data,
		onSuccess: function(transport) {
			if (elem != "") {
				$(elem).update(transport.responseText);
			}
		}
	});
}

function sendajaxformvaluesSynch(fragment_url, data, elem) {
	new Ajax.Request(fragment_url, {
		parameters: data,
		onSuccess: function(transport) {
			if (elem != "") {
				$(elem).update(transport.responseText);
			}
		}
	});
}

function ajaxReloadContent() {
	var controller = $("controller");
	var element = $("container");
	var tmpurl = $("url");

	var url = "";
	if (tmpurl.value)
		url = tmpurl.value;

	if (controller.value == "load") {
		controller.value = "wait";
		
		new Ajax.Request(url, {
			onSuccess: function(transport) {
				element.update(element.innerHTML
						+ transport.responseText.substring(4));
	
				if (transport.responseText.substring(0, 4) == "load") {
					controller.value = "load";
				} else {
					controller.value = "stop";
					clearInterval(reloader);
				}
			}
		});
	} else if (controller.value == "stop") {
		clearInterval(reloader);
	}
}

/*
 * Does the same as ajaxReloadContent() except it clears the exisiting content
 * first
 */
function ajaxClearReloadContent() {
	var controller = $("controller");
	var element = $("container");
	var tmpurl = $("url");

	var url = "";
	if (tmpurl.value)
		url = tmpurl.value;

	if (controller.value == "load") {
		controller.value = "wait";
		
		new Ajax.Request(url, {
			onSuccess: function(transport) {
				element.update(transport.responseText.substring(4));
	
				if (transport.responseText.substring(0, 4) == "load") {
					controller.value = "load";
				} else {
					controller.value = "stop";
					clearInterval(reloader);
				}
			}
		});
	} else if (controller.value == "stop") {
		clearInterval(reloader);
	}
}

/*
 * finds the x and y position of an element (image, div, ...) on screen and
 * returns array(xPos, yPos)
 */
function findPos(obj) {
	var curleft = 0;
	var curtop = 0;

	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return [ curleft, curtop ];
}

/*
 * Makes an elemant appear on screen. Accepted values for the anim: - hide -
 * grow_center - grow - blind_down - slide_down
 */
var visible_thumb = '';
function anim_catalog_thumb(thumb_id, det_id, anim) {
	if (anim == 'hide') {
		$(det_id).style.zIndex = 2;
		$(det_id).hide();
		visible_thumb = '';
	} else {
		if (det_id != visible_thumb && visible_thumb != '') {
			$(visible_thumb).style.zIndex = 2;
			$(visible_thumb).hide();
			visible_thumb = '';
		}
	}

	$(det_id).style.width = '300px';
	$(det_id).style.height = '300px';

	if (anim != 'hide') {
		visible_thumb = det_id;
		$(det_id).style.zIndex = 3;
		var coords = findPos($(thumb_id));

		if (anim == 'grow_center' && coords[1] >= 110 && coords[0] >= 110) {
			$(det_id).style.top = (coords[1] - 222) + 'px';
			$(det_id).style.left = (coords[0] - 222) + 'px';
			new Effect.Grow(det_id);
		}

		if (anim == 'grow' || 110 > coords[1] && 110 > coords[0]) {
			$(det_id).style.top = coords[1] + 'px';
			$(det_id).style.left = coords[0] + 'px';
			new Effect.Grow(det_id);
		}

		if (anim == 'blind_down') {
			$(det_id).style.top = coords[1] + 'px';
			$(det_id).style.left = coords[0] + 'px';
			new Effect.BlindDown(det_id);
		}

		if (anim == 'slide_down') {
			$(det_id).style.top = coords[1] + 'px';
			$(det_id).style.left = coords[0] + 'px';
			new Effect.SlideDown(det_id);
		}
	}
}

function add_QBfield(element, dropon, event) {
	if (dropon.id == "x_elements") {
		var str_current_fields = document.frm_QB_graph.x_fields.value;
		var int_occurences = 0;
		if (str_current_fields != "") {
			ar_occurences = str_current_fields.split(",");
			int_occurences = ar_occurences.length;
		}

		if (int_occurences > 2)
			alert("You can only add 3 elements here.\nRemove at least 1 field ('"
					+ document.frm_QB_graph.x_fields.value
					+ "') before adding a new one.");
		else {
			if (document.frm_QB_graph.x_fields.value != "")
				str_current_fields = str_current_fields + ",";
			str_current_fields = str_current_fields
					+ element.getAttribute("name");
			document.frm_QB_graph.x_fields.value = str_current_fields;

			element.hide();

			$("x_default_text").hide();
			$("removable_x_" + element.id).show();
		}
	}
	if (dropon.id == "y_elements") {
		if (document.frm_QB_graph.y_fields.value == '') {
			document.frm_QB_graph.y_fields.value = element.getAttribute("name");
			element.hide();

			$("y_default_text").hide();
			$("removable_y_" + element.id).show();
		} else
			alert("You can only add 1 element here.\nRemove the current field ('"
					+ document.frm_QB_graph.y_fields.value
					+ "') before adding a new one.");
	}
}

function QB_wastebin(element, dropon, event) {
	var elem_to_remove = element.getAttribute("name");
	var elem_to_remove_id = element.id;

	element.hide();
	$(elem_to_remove_id.substr(12)).show();

	if (elem_to_remove_id.substr(0, 11) == "removable_y") {
		document.frm_QB_graph.y_fields.value = "";
		$("y_default_text").show();
	} else {
		var str_current_fields = document.frm_QB_graph.x_fields.value;
		var str_field_value = "";

		ar_occurences = str_current_fields.split(",");

		for (i = 0; ar_occurences.length > i; i++) {
			if (ar_occurences[i] != elem_to_remove) {
				if (str_field_value != "")
					str_field_value += ",";

				str_field_value += ar_occurences[i];
			}
		}

		document.frm_QB_graph.x_fields.value = str_field_value;

		if (str_field_value == "") {
			$("x_default_text").show();
		}
	}
}

function findPos_alt(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [ curleft, curtop ];
}

// var hide = true;

function showhide(obj, elem) {
	var x = $(elem);
	hide = !hide;
	x.style.visibility = (hide) ? 'hidden' : 'visible';
	setLayer(obj, elem);
}

function setLayer(obj, layer, direction) {
	var coors = findPos(obj);
	// if (layer == elem) coors[1] -= 50;
	var x = $(layer);

	x.show();

	if (direction == 'xy' || direction == 'y') {
		x.style.top = coors[1] + 'px';
	}
	if (direction == 'xy' || direction == 'x') {
		x.style.left = coors[0] + 'px';
	}
}

function followthemouse(e) {

	var posx = 0;
	var posy = 0;
	if (!e)
		var e = window.event;
	if (e.pageX || e.pageY) {
		posx = e.pageX;
		posy = e.pageY;
		alert(1);
	} else if (e.clientX || e.clientY) {
		posx = e.clientX + document.body.scrollLeft
				+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
				+ document.documentElement.scrollTop;
		alert(2);
	}

	$('textformatting').style.top = posy;
	// $('plugin').style.left = posx+200;
}

function margin_calculator_swap(page_url) {
	/* Clear all existing content */
	$('margin_graph').update('');
	$('growth_graph').update('');

	/* Set the new content */
	load_margin_calculator_part(page_url, 'margin_graph', 'ajax_margin_graph');

	if ($(Modalbox.MBwindow).getWidth() <= 650)
		Modalbox.resize(650, 0);

	/*
	 * setTimeout('load_margin_calculator_part(\'' + page_url + '\',
	 * \'growth_graph\', \'ajax_growth_graph\');', 2500);
	 */
}

function load_margin_calculator_part(page_url, container, graph_type) {
	/*
	 * $(container).innerHTML='<img
	 * src=\'http://catalog.salesprize.com/javascript/modalbox/spinner.gif\'
	 * width="40" height="40" border=\'0\'>';
	 */
	/*
	 * ajaxGetContent(page_url + '&ajx=' + graph_type + '&avg_unitprice=' +
	 * document.frm_margin_calculator.avg_unitprice.value + '&avg_margin=' +
	 * document.frm_margin_calculator.avg_margin.value + '&current_volume=' +
	 * document.frm_margin_calculator.current_volume.value + '&target_volume=' +
	 * document.frm_margin_calculator.target_volume.value +
	 * '&estimated_nbr_winners=' +
	 * document.frm_margin_calculator.estimated_nbr_winners.value + '&track_id=' +
	 * document.frm_margin_calculator.track_id.value + '&percent_volume=' +
	 * document.frm_margin_calculator.percent_volume.value, container);
	 */
	ajaxGetContent(page_url + '&ajx=' + graph_type + '&avg_unitprice='
			+ document.frm_margin_calculator.avg_unitprice.value
			+ '&avg_margin=' + document.frm_margin_calculator.avg_margin.value
			+ '&current_volume='
			+ document.frm_margin_calculator.current_volume.value
			+ '&target_volume='
			+ document.frm_margin_calculator.target_volume.value
			+ '&estimated_nbr_winners='
			+ document.frm_margin_calculator.estimated_nbr_winners.value
			+ '&track_id=' + document.frm_margin_calculator.track_id.value
			+ '&percent_volume='
			+ document.frm_margin_calculator.percent_volume.value, container);
}

function load_contest_track_results(container, page_url) {
	/*
	 * $(container).innerHTML='<img
	 * src=\'http://catalog.salesprize.com/javascript/modalbox/spinner.gif\'
	 * width="40" height="40" border=\'0\'>';
	 */
	ajaxGetContent(page_url, container);
}

/*
 * Function called when an editable_value() was submitted
 * 
 * @param {Object} fragment_url: url to post to @param {Object} value_id: id of
 * the textfield with the updated result @param {Object} value_container_id: Id
 * of the div with the textfield @param {Object} display_container_id: id of the
 * display div @param {Object} message_container_id: id of the result message
 * div @param {Object} error_msg: Message to show on incorrect submit
 */
function editable_value_change(fragment_url, value_id, value_container_id,
		display_container_id, message_container_id, error_msg) {
	$(display_container_id).update('<image src="http://catalog.salesprize.com/editor/assets/default/loading-gif-sample-2.gif" border="0">');

	$(message_container_id).hide();
	$(value_container_id).hide();
	$(display_container_id).show();

	var inputvalue = $(value_id).value;

	fragment_url = fragment_url + encodeURI(inputvalue);

	new Ajax.Request(fragment_url, {
		onSuccess: function(transport) {
			var response_value = transport.responseText;

			if (inputvalue == response_value) {
				$(display_container_id).update(response_value);
			} else {
				$(message_container_id).update(error_msg);

				$(display_container_id).update(response_value);
				if (response_value
						.indexOf('<span style="font-style: italic;">') == -1) {
					$(value_id).value = response_value;
				} else {
					$(value_id).value = '';
				}

				$(value_container_id).hide();
				$(message_container_id).show();

				setTimeout(
						function() {
							$(message_container_id).hide();
						}, 5000);
			}
		}
	});
}

function validateTransfer(pointsTotal) {
	var response = false;
	var pointsToTranfer = $('total_points').value;
	if (pointsToTranfer > 0) {
		if (pointsTotal >= pointsToTranfer) {
			response = true;
		} else {
			alert("Cannot transfer more than total user's points");
		}
	} else {
		alert("Cannot transfer negative amount of points");
	}
	return response;
}

/*
 * For tranferring points between users, check if the number of points to be
 * tranferred is allowed
 */
function checkTransferPoints(pointsTotalUser, theform) {
	var pointsToTranfer = parseInt($('total_points').value);
	var valid = false;

	// the validation
	if (pointsToTranfer < 0) {
		$('errtotal_points').update("Cannot transfer negative amount of points");
	}
	if (pointsTotalUser < pointsToTranfer) {
		$('errtotal_points').update("Cannot transfer more than total user's points");
	}
	if (isNaN(pointsToTranfer)) {
		$('errtotal_points').update("Cannot transfer non numerical amount of points");
	}
	if (pointsToTranfer > 0 && pointsTotalUser >= pointsToTranfer
			&& !isNaN(pointsToTranfer)) {
		valid = true;
	}

	// disable the submit button : as no id is given for the button loop through
	// the elements and find the submit
	for (i = 0; i < window.document.forms[theform].length; i++) {
		var tempobj = window.document.forms[theform].elements[i];
		if (tempobj.type == "submit") {
			if (valid) {
				tempobj.disabled = false;
				$('total_points').style.backgroundColor = "#FFF";
			} else {
				tempobj.disabled = true;
				$('total_points').style.backgroundColor = "#FFE5E5";
			}
		}
	}
}

function pay_edit_amount() {
        document.getElementById('div_display_amount').style.display='none';
        document.getElementById('div_edit_amount').style.display='';
}

function pay_modify_amount() {
        eur_value = document.getElementById('tmp_payment_amount').value;
        point_value = Math.round(eur_value*100);

        document.getElementById('payment_amount').value = point_value;
        document.getElementById('payment_display_amount').innerHTML = eur_value;

        document.getElementById('div_edit_amount').style.display='none';
        document.getElementById('div_display_amount').style.display='';
}


/* Royal Canin delivery method */
function rc_set_point_detail(point_id, delivery_point_id, delivery_name, street, zip, city, country) {
        rc_hideall_divs();
        document.getElementById("rc_detail_" + point_id).style.display = "";
        document.getElementById("rc_confirm_order").style.display = "";

        document.getElementById("delivery_name").value=delivery_name;
        document.getElementById("delivery_street").value=street;
        document.getElementById("delivery_zip").value=zip;
        document.getElementById("delivery_city").value=city;
        document.getElementById("delivery_country").value=country;
        document.getElementById("delivery_point").value=delivery_point_id;
}

function rc_hideall_divs() {
        var ar_divs = document.getElementsByTagName('div');
        var num_divs = ar_divs.length;

        for (var i=0; i < num_divs; i++) {
                var current_div = ar_divs[i];
                var current_div_id = current_div.id;
                var current_div_rc_pos = (current_div_id+'').indexOf('rc_detail_');
                if (current_div_rc_pos>-1) {
                        current_div.style.display='none';
                }
        }
}

function enable_element(elementId)
{
	document.getElementById(elementId).disabled = false;
}

function disable_element(elementId)
{
	document.getElementById(elementId).disabled = true;
}
