var undoHistory = new Array(); // global hashmap
var edits = 0; // nr of fields being edited
// Memento constructor
function Memento(lbl, lnk, oldval)
{
this.labelClass=lbl;
this.linkText=lnk;
this.oldValue=oldval;
}
/* LANGUAGE SUPPORT */
function setLanguage(lc)
{
var expiry = new Date();
expiry.setTime(expiry.getTime()+1000*3600*24*900);
document.cookie =
'lang=' + lc + '; expires=' + expiry.toGMTString() + '; path=/';
location.reload();
}
/* IDENTIFICATION */
function editRef(el)
{
var lnk=$(el).children("a.dataAction");
var ref=$(el).children("span.reference");
var form=$(el).children("span.form");
if(el.substring(0, 4) == "#cla")
{
var idx=el.substring(4);
var prefix='cla';
}
else if(el.substring(0, 4) == "#def")
{
var idx=el.substring(4);
var prefix='def';
}
else if(el.substring(0, 8) == "#law_cla")
{
var idx=el.substring(8);
var prefix='law_cla';
}
else if(el.substring(0, 8) == "#law_def")
{
var idx=el.substring(8);
var prefix='law_def';
}
// Remember label class
var labelId="#"+prefix+"Lbl";
undoHistory[el]=new Array();
undoHistory[el][0]=labelId;
undoHistory[el][1]=$(labelId).attr("class");
$(labelId).attr("class", "labelHi");
// edit -> undo (reversing these two lines breaks it??)
lnk.attr("href", "javascript:cancelEditParty('"+el+"', 'reference');");
lnk.attr("title", "undo");
lnk.children("img").attr("src", "../img/undo.gif");
// Toggle between coordinates and form view
ref.hide();
form.show();
// Create form
form.empty();
form.append("
");
$(".saveButton").show();
// Provision form
form.ready(
function() {
$(document.forms[0].elements[prefix+"_ref["+idx+"]"]).val($("#"+prefix+"_ref"+idx).text());
document.forms[0].elements[prefix+"_ref["+idx+"]"].focus()
});
++edits;
}
function editParty(el)
{
var lnk=$(el).children("a.dataAction");
var coord=$(el).children("span.coordinates");
var form=$(el).children("span.form");
var ref=$(el).children("span.reference");
if(el.substring(0, 4) == "#cla")
{
var idx=el.substring(4);
var prefix='cla';
}
else if(el.substring(0, 4) == "#def")
{
var idx=el.substring(4);
var prefix='def';
}
else if(el.substring(0, 8) == "#law_cla")
{
var idx=el.substring(8);
var prefix='law_cla';
}
else if(el.substring(0, 8) == "#law_def")
{
var idx=el.substring(8);
var prefix='law_def';
}
// Remember label class
var labelId="#"+prefix+"Lbl";
undoHistory[el]=new Array();
undoHistory[el][0]=labelId;
undoHistory[el][1]=$(labelId).attr("class");
$(labelId).attr("class", "labelHi");
// edit -> undo (reversing these two lines breaks it??)
lnk.attr("href", "javascript:cancelEditParty('"+el+"', 'coordinates');");
lnk.attr("title", "undo");
lnk.children("img").attr("src", "../img/undo.gif");
// Toggle between coordinates and form view
coord.hide();
form.show();
ref.hide();
// Create form
form.empty();
form.append(" ");
form.append(" ");
form.append(" ");
form.append(" ");
form.append(" ");
form.append(" ");
form.append(" ");
form.append(" ");
form.append(" ");
if(prefix.substring(0,3) != "law") {
form.append("");
}
form.append("");
if(prefix.substring(0,3) == "cla") {
form.append("");
}
$(".saveButton").show();
// Provision form
form.ready(
function() {
$(document.forms[0].elements[prefix+"_name["+idx+"]"]).val($("#"+prefix+"_name"+idx).text());
$(document.forms[0].elements[prefix+"_street["+idx+"]"]).val($("#"+prefix+"_street"+idx).text());
$(document.forms[0].elements[prefix+"_zip["+idx+"]"]).val($("#"+prefix+"_zip"+idx).text());
$(document.forms[0].elements[prefix+"_city["+idx+"]"]).val($("#"+prefix+"_city"+idx).text());
$(document.forms[0].elements[prefix+"_country["+idx+"]"]).val($("#"+prefix+"_country"+idx).text());
$(document.forms[0].elements[prefix+"_phone["+idx+"]"]).val($("#"+prefix+"_phone"+idx).text());
$(document.forms[0].elements[prefix+"_fax["+idx+"]"]).val($("#"+prefix+"_fax"+idx).text());
$(document.forms[0].elements[prefix+"_email["+idx+"]"]).val($("#"+prefix+"_email"+idx).text());
$(document.forms[0].elements[prefix+"_companynr["+idx+"]"]).val($("#"+prefix+"_companynr"+idx).text());
$(document.forms[0].elements[prefix+"_ref["+idx+"]"]).val($("#"+prefix+"_ref"+idx).text());
populateCountryList(document.forms[0].elements[prefix+"_country["+idx+"]"], $("#"+prefix+"_country"+idx).text());
if(prefix.substring(0,3) == "cla") {
populateLanguageList(document.forms[0].elements[prefix+"_language["+idx+"]"], $("#"+prefix+"_language"+idx).text());
}
document.forms[0].elements[prefix+"_name["+idx+"]"].focus()
});
++edits;
}
function cancelEditParty(el, spanClass)
{
var lnk=$(el).children("a.dataAction");
var span=$(el).children("span."+spanClass);
var form=$(el).children("span.form");
var ref=$(el).children("span.reference");
// Restore label class
if(undoHistory[el]) {
$(undoHistory[el][0]).attr("class", undoHistory[el][1]);
undoHistory[el]=null;
}
// undo -> edit
if(spanClass=="coordinates")
lnk.attr("href", "javascript:editParty('"+el+"');");
else if(spanClass=="reference")
lnk.attr("href", "javascript:editRef('"+el+"');");
lnk.attr("title", "edit");
lnk.children("img").attr("src", "../img/pencil.gif");
// Toggle between coordinates and form view
form.toggle();
span.toggle();
ref.toggle();
// Remove form
form.empty();
if(!--edits)
{
$(".saveButton").hide();
}
}
/* PROCEDURE/RESULT/... */
function edit()
{
var focused="";
var arglist="'"+arguments[0]+"'";
for(var i=1; i=0; i--)
{
undoHistory[arguments[i]]=new Memento(
$(arguments[0]+"Lbl").attr("class"),
$(arguments[0]+"Lnk").attr("title"),
$(arguments[i]+"Val").html());
var className = $(arguments[i]+"Val").attr("class");
if(className == "dateField")
{
focused=editDate(arguments[i], -1);
}
else if(className == "textField")
{
focused=editTextField(arguments[i]);
}
else if(className == "textArea")
{
focused=editTextArea(arguments[i], -1);
}
else if(className == "msgDate")
{
focused=editMsgDate(arguments[i]);
}
else if(className == "msgArea")
{
focused=editMsgArea(arguments[i]);
}
$(arguments[i]+"Lbl").removeClass("labelLo");
$(arguments[i]+"Lbl").addClass("labelHi");
$(arguments[i]+"Lnk").attr("href", "javascript:cancelEdit("+arglist+");");
$(arguments[i]+"Lnk").attr("title", "undo");
$(arguments[i]+"Lnk > img").attr("src", "../img/undo.gif");
}
$(".saveButton").show();
// focus last enabled field
// note: IE need some time to dyn. construct the input field
$(document.forms[0]).ready(
function() {
if(focused) {
document.forms[0].elements[focused].focus();
}
});
}
function cancelEdit()
{
var arglist="'"+arguments[0]+"'";
for(var i=1; i img").attr("src", "../img/pencil.gif");
$(arguments[0]+"Lnk").attr("title", undoHistory[arguments[0]].linkText);
$(arguments[0]+"Lnk").attr("href", "javascript:edit("+arglist+");");
for(var i=0; i < arguments.length; i++)
{
edits--;
$(arguments[i]+"Val").empty();
$(arguments[i]+"Val").append(undoHistory[arguments[i]].oldValue);
undoHistory[arguments[i]]=null;
}
if(!edits)
{
$(".saveButton").hide();
}
}
function editDate(el, idx)
{
edits++;
var val=$(el+"Val").text();
var name_d=(idx!=-1 ? el.substring(1)+"_d["+idx+"]" : el.substring(1)+"_d");
var name_m=(idx!=-1 ? el.substring(1)+"_m["+idx+"]" : el.substring(1)+"_m");
var name_y=(idx!=-1 ? el.substring(1)+"_y["+idx+"]" : el.substring(1)+"_y");
if(val)
{
dd=val.substring(0,2);
mm=val.substring(3,5);
yy=val.substring(6,8);
}
else dd=mm=yy="";
$(el+"Lbl").removeClass("labelLo");
$(el+"Lbl").addClass("labelHi");
$(el+"Val").empty();
$(el+"Val").append(" /");
$(el+"Val").append(" /");
$(el+"Val").append(" ");
$(el+"Val").append("");
return name_d;
}
function editTextField(el)
{
edits++;
var val=$(el+"Val").text();
$(el+"Val").empty();
$(el+"Val").append(" ");
return el.substring(1);
}
function editTextArea(el, idx)
{
edits++;
var val=$(el+"Val").html().replace(//gi,"\n");
var name=(idx!=-1 ? el.substring(1)+"["+idx+"]" : el.substring(1));
$(el+"Val").empty();
$(el+"Val").append("");
return name;
}
function editMsgDate(el)
{
// determine new msg index
var last=$(el+"Val").parent("li").siblings("li").length;
var focused=editDate(el, last);
$(el+"Val > input:eq(0)").css("margin-top", "10px");
return focused;
}
function editMsgArea(el)
{
// determine new msg index
var last=$(el+"Val").parent("li").siblings("li").length;
var fieldName=el.substring(1); // strip leading #
var focused=editTextArea(el, last);
var theTextArea = $(el+"Val > textarea");
theTextArea.css("width", "295px").css("height", "100px").css("margin-top", "10px");
theTextArea.keyup(function () { updateRemaining(theTextArea, el+"Rem"); });
theTextArea.change(function () { updateRemaining(theTextArea, el+"Rem"); });
$(el+"Val").append(" ");
$(el+"Val").append(" ");
return focused;
}
function updateRemaining(jqTextArea, remSpan)
{
var maxlen=1000;
var remaining=maxlen-jqTextArea.val().length;
if(remaining < 0) // clip
{
jqTextArea.val(jqTextArea.val().substring(0, maxlen));
remaining=0;
}
$(remSpan).empty();
$(remSpan).append(""+remaining);
}
function readMessage(el)
{
$(el).children("span:eq(0)").remove();
$(el).children("span:eq(0)").show(); // 1 becomes 0 because of removal
}
/* COUNTRIIES */
function populateCountryList(list, sel)
{
$(list).append(" ");
$(list).append("AFGHANISTAN ");
$(list).append("ALBANIA ");
$(list).append("ALGERIA ");
$(list).append("ANDORRA ");
$(list).append("ANGOLA ");
$(list).append("ARMENIA ");
$(list).append("ARUBA ");
$(list).append("AUSTRALIA ");
$(list).append("AUSTRIA ");
$(list).append("AZERBAIJAN ");
$(list).append("BAHAMAS ");
$(list).append("BAHRAIN ");
$(list).append("BARBADOS ");
$(list).append("BELARUS ");
$(list).append("BELGIUM ");
$(list).append("BELIZE ");
$(list).append("BERMUDA ");
$(list).append("BOLIVIA ");
$(list).append("BOSNIA AND HERZEGOVINA ");
$(list).append("BRAZIL ");
$(list).append("BULGARIA ");
$(list).append("BURUNDI ");
$(list).append("CAMBODIA ");
$(list).append("CAMEROON ");
$(list).append("CANADA ");
$(list).append("CAPE VERDE ");
$(list).append("CAYMAN ISLANDS ");
$(list).append("CENTRAL AFRICAN REP. ");
$(list).append("CHAD ");
$(list).append("CHILE ");
$(list).append("CHINA ");
$(list).append("COLOMBIA ");
$(list).append("COMOROS ");
$(list).append("CONGO ");
$(list).append("CONGO DEM.REP. ");
$(list).append("COSTA RICA ");
$(list).append("COTE D'IVOIRE ");
$(list).append("CROATIA ");
$(list).append("CUBA ");
$(list).append("CURACAO ");
$(list).append("CYPRUS ");
$(list).append("CZECH REPUBLIC ");
$(list).append("DENMARK ");
$(list).append("DJIBOUTI ");
$(list).append("DOMINICAN REP. ");
$(list).append("ECUADOR ");
$(list).append("EGYPT ");
$(list).append("EL SALVADOR ");
$(list).append("ESTONIA ");
$(list).append("ETHIOPIA ");
$(list).append("FINLAND ");
$(list).append("FRANCE ");
$(list).append("GABON ");
$(list).append("GAMBIA ");
$(list).append("GEORGIA ");
$(list).append("GERMANY ");
$(list).append("GHANA ");
$(list).append("GREECE ");
$(list).append("GUADELOUPE ");
$(list).append("GUATEMALA ");
$(list).append("GUERNSEY ");
$(list).append("GUINEA ");
$(list).append("GUINEA-BISSAU ");
$(list).append("GUYANA ");
$(list).append("HAITI ");
$(list).append("HONDURAS ");
$(list).append("HONG KONG ");
$(list).append("HUNGARY ");
$(list).append("ICELAND ");
$(list).append("INDIA ");
$(list).append("INDONESIA ");
$(list).append("IRAN ");
$(list).append("IRAQ ");
$(list).append("IRELAND ");
$(list).append("ISLE OF MAN ");
$(list).append("ISRAEL ");
$(list).append("ITALY ");
$(list).append("JAMAICA ");
$(list).append("JAPAN ");
$(list).append("JERSEY ");
$(list).append("JORDAN ");
$(list).append("KAZAKHSTAN ");
$(list).append("KENYA ");
$(list).append("KUWAIT ");
$(list).append("KYRGYZSTAN ");
$(list).append("LATVIA ");
$(list).append("LEBANON ");
$(list).append("LIBERIA ");
$(list).append("LIECHTENSTEIN ");
$(list).append("LITHUANIA ");
$(list).append("LUXEMBOURG ");
$(list).append("MACAO ");
$(list).append("MACEDONIA ");
$(list).append("MADAGASCAR ");
$(list).append("MALAYSIA ");
$(list).append("MALDIVES ");
$(list).append("MALI ");
$(list).append("MALTA ");
$(list).append("MAURITANIA ");
$(list).append("MAURITIUS ");
$(list).append("MEXICO ");
$(list).append("MOLDOVIA ");
$(list).append("MONACO ");
$(list).append("MONGOLIA ");
$(list).append("MONTENEGRO ");
$(list).append("MOROCCO ");
$(list).append("MOZAMBIQUE ");
$(list).append("MYANMAR ");
$(list).append("NAMIBIA ");
$(list).append("NEPAL ");
$(list).append("NETHERLANDS ");
$(list).append("NEW CALEDONIA ");
$(list).append("NEW ZEALAND ");
$(list).append("NICARAGUA ");
$(list).append("NIGER ");
$(list).append("NIGERIA ");
$(list).append("NORWAY ");
$(list).append("OMAN ");
$(list).append("PAKISTAN ");
$(list).append("PANAMA ");
$(list).append("PARAGUAY ");
$(list).append("PERU ");
$(list).append("PHILIPPINES ");
$(list).append("POLAND ");
$(list).append("PORTUGAL ");
$(list).append("PUERTO RICO ");
$(list).append("QATAR ");
$(list).append("ROMANIA ");
$(list).append("RUSSIAN FED. ");
$(list).append("RWANDA ");
$(list).append("SAN MARINO ");
$(list).append("SAUDI ARABIA ");
$(list).append("SENEGAL ");
$(list).append("SERBIA ");
$(list).append("SEYCHELLES ");
$(list).append("SIERRA LEONE ");
$(list).append("SINGAPORE ");
$(list).append("SLOVAKIA ");
$(list).append("SLOVENIA ");
$(list).append("SOMALIA ");
$(list).append("SOUTH AFRICA ");
$(list).append("SPAIN ");
$(list).append("SRI LANKA ");
$(list).append("SUDAN ");
$(list).append("SURINAME ");
$(list).append("SWAZILAND ");
$(list).append("SWEDEN ");
$(list).append("SWITZERLAND ");
$(list).append("SYRIAN REP. ");
$(list).append("TAIWAN ");
$(list).append("TAJIKISTAN ");
$(list).append("TANZANIA ");
$(list).append("THAILAND ");
$(list).append("TOGO ");
$(list).append("TUNISIA ");
$(list).append("TURKEY ");
$(list).append("TURKMENISTAN ");
$(list).append("UGANDA ");
$(list).append("UKRAINE ");
$(list).append("UNITED ARAB EMIRATES ");
$(list).append("UNITED KINGDOM ");
$(list).append("UNITED STATES ");
$(list).append("URUGUAY ");
$(list).append("UZBEKISTAN ");
$(list).append("VENEZUELA ");
$(list).append("VIET NAM ");
$(list).append("YEMEN ");
$(list).append("ZAMBIA ");
$(list).append("ZIMBABWE ");
$(list).ready(
function() {
$(list).val(sel);
});
}
/* LANGUAGES */
function populateLanguageList(list, sel)
{
$(list).append(" ");
$(list).append("Dutch ");
$(list).append("English ");
$(list).append("French ");
$(list).append("German ");
$(list).append("Italian ");
$(list).append("Spanish ");
$(list).ready(
function() {
$(list).val(sel);
});
}