window.onload = f_init;

var oForm       = null;
var oTip        = null;
var imgPrev     = null;
var pDebug      = null;
var sPublished  = null;
var hsPublished = null;
var hnMarble    = null;
var hnBorder    = null;
var hnIcon      = null;
var sFullName   = null;
var hsFullName  = null;
var sBirthYear  = null;
var hsBirthYear = null;
var sDeathYear  = null;
var hsDeathYear = null;
var sLife       = null;
var hsLife      = null;
var sRemember   = null;
var hsRemember  = null;
var sMass       = null;
var hsMass      = null;
var hnEpitaph   = null;
var sEpitaph    = null;
var hsEpitaph   = null;
var pLife       = null;
var pMass       = null;
var sCodProv    = null;
var hsCodProv   = null;
var sEmail      = null;
var hsEmail     = null;

function f_init() {
	oForm       = document.forms[0];
	oTip        = document.getElementById("tip");
	imgPrev     = document.getElementById("preview");
	pDebug      = document.getElementById("debug");
	hnMarble    = oForm.elements["hnMarble"];
	hnBorder    = oForm.elements["hnBorder"];
	hnIcon      = oForm.elements["hnIcon"];
	sCodProv    = oForm.elements["sCodProv"];
	hsCodProv   = oForm.elements["hsCodProv"];
	sPublished  = oForm.elements["sPublished"];
	hsPublished = oForm.elements["hsPublished"];
	sFullName   = oForm.elements["sFullName"];
	hsFullName  = oForm.elements["hsFullName"];
	sBirthYear  = oForm.elements["sBirthYear"];
	hsBirthYear = oForm.elements["hsBirthYear"];
	sDeathYear  = oForm.elements["sDeathYear"];
	hsDeathYear = oForm.elements["hsDeathYear"];
	sRemember   = oForm.elements["sRemember"];
	hsRemember  = oForm.elements["hsRemember"];
	sMass       = oForm.elements["sMass"];
	hsMass      = oForm.elements["hsMass"];
	sLife       = oForm.elements["sLife"];
	hsLife      = oForm.elements["hsLife"];
	hnEpitaph   = oForm.elements["hnEpitaph"];
	sEpitaph    = oForm.elements["sEpitaph"];
	hsEpitaph   = oForm.elements["hsEpitaph"];
	sEmail      = oForm.elements["sEmail"];
	hsEmail     = oForm.elements["hsEmail"];
	pLife       = document.getElementById("pLife");
	pMass       = document.getElementById("pMass");
	
	f_setSelectValue("sCodProv", hsCodProv.value);	
	f_setRadioValue("nMarble",  hnMarble.value);
	f_setRadioValue("nBorder",  hnBorder.value);
	f_setRadioValue("nIcon",    hnIcon.value);
	f_setRadioValue("nEpitaph", hnEpitaph.value);
	
	f_setSelectUpdater("sCodProv", f_updateHF);
	f_setRadioUpdater("nMarble",  f_repaint);
	f_setRadioUpdater("nBorder",  f_repaint);
	f_setRadioUpdater("nIcon",    f_repaint);
	f_setRadioUpdater("nEpitaph", f_repaint);
	if(sFullName !=null) sFullName.onchange  = f_repaint;
	if(sBirthYear!=null) sBirthYear.onchange = f_repaint;
	if(sDeathYear!=null) sDeathYear.onchange = f_repaint;
	if(sRemember !=null) sRemember.onchange  = f_repaint;
	if(sMass     !=null) sMass.onchange      = f_rewrite;
	if(sLife     !=null) sLife.onchange      = f_rewrite;
	if(sEpitaph  !=null) sEpitaph.onchange   = f_repaint;
	if(sEmail    !=null) sEmail.onchange     = f_updateHF;
	
}

function f_setSelectUpdater(sSelect, pFunction) {
	var nl = oForm.elements[sSelect];
	if(nl!=null) nl.onchange = pFunction;
}

function f_setSelectValue(sSelect, sValue) {
	var nl = oForm.elements[sSelect];
	if(nl!=null) for(i=0; i<nl.length; i++) if(nl[i].value==sValue) nl.selectedIndex = i;
	f_repaint();
}

function f_getSelectValue(sSelect, sDefault) {
	var nl = oForm.elements[sSelect];
	var id = (nl!=null ? oForm.elements[sSelect].selectedIndex : null);
	return (nl!=null ? (id!=0 ? nl[id].value : sDefault) : sDefault);
}

function f_setRadioUpdater(sRadio, pFunction) {
	var nl = oForm.elements[sRadio];
	if(nl!=null) for(i=0; i<nl.length; i++) nl[i].onclick = pFunction;
}

function f_setRadioValue(sRadio, nValue) {
	var nl = oForm.elements[sRadio];
	if(nl!=null) for(i=0; i<nl.length; i++) nl[i].checked = (nl[i].value==nValue);
	f_repaint();
}

function f_getRadioValue(sRadio, sDefault) {
	var nl = oForm.elements[sRadio];
	if(nl!=null) for(i=0; i<nl.length; i++) if(nl[i].checked) return nl[i].value;
	return sDefault;
}

function f_updateHF() {
	hnMarble.value    = f_getRadioValue("nMarble", hnMarble.value);
	hnBorder.value    = f_getRadioValue("nBorder", hnBorder.value);
	hnIcon.value      = f_getRadioValue("nIcon"  , hnIcon.value);
	hsCodProv.value   = f_getSelectValue("sCodProv", hsCodProv.value);
	hsPublished.value = (sPublished!=null) ? sPublished.value : hsPublished.value;
	hsFullName.value  = (sFullName !=null) ? sFullName.value  : hsFullName.value;
	hsBirthYear.value = (sBirthYear!=null) ? sBirthYear.value : hsBirthYear.value;
	hsDeathYear.value = (sDeathYear!=null) ? sDeathYear.value : hsDeathYear.value;
	hsRemember.value  = (sRemember!=null)  ? sRemember.value  : hsRemember.value;
	hsMass.value      = (sMass!=null)      ? sMass.value      : hsMass.value;
	hsLife.value      = (sLife!=null)      ? sLife.value      : hsLife.value;
	hnEpitaph.value   = f_getRadioValue("nEpitaph", hnEpitaph.value);
	hsEpitaph.value   = (sEpitaph!=null)   ? sEpitaph.value   : hsEpitaph.value;
	hsEmail.value     = (sEmail!=null)     ? sEmail.value     : hsEmail.value;
}

function f_repaint() {
	f_updateHF();
	var ms   = (new Date()).getTime();
	var sURL = "paintnec.php";
	sURL += "?nMarble="    + hnMarble.value;
	sURL += "&nBorder="    + hnBorder.value;
	sURL += "&nIcon="      + hnIcon.value;
	sURL += "&sFullName="  + hsFullName.value;
	sURL += "&sBirthYear=" + hsBirthYear.value;
	sURL += "&sDeathYear=" + hsDeathYear.value;
	sURL += "&sRemember="  + hsRemember.value;
	sURL += "&nEpitaph="   + hnEpitaph.value;
	sURL += "&sEpitaph="   + hsEpitaph.value;
	sURL += "&nocache="    + ms;
	imgPrev.src = sURL;
	sURL  = "http://127.0.0.1/nec/"+sURL+"&debug=1";
	if(pDebug) {
		pDebug.innerHTML = "<a href=\""+sURL+"\">[debug]</a>";
	}
	
}

function f_rewrite() {
	f_updateHF();
	var sAux1 = sMass.value;
	var sAux2 = sLife.value;
	while(sAux1.indexOf("\n")>=0) sAux1 = sAux1.replace("\n", "</p><p>");
	while(sAux2.indexOf("\n")>=0) sAux2 = sAux2.replace("\n", "</p><p>");
	pMass.innerHTML = "<p>"+sAux1+"</p>";
	pLife.innerHTML = "<p>"+sAux2+"</p>";	
}

function f_step(nStep) {
	f_updateHF();
	oForm.elements["step"].value = nStep;
	oForm.submit();
	return false;
}

function f_publish() {
	oForm.action = "publicar.php";
	oForm.submit();
	return false;
}