function loadNieCheck()
{
	nieObj = document.getElementById("nie");
	if(!nieObj) return;
	
	addEvent(nieObj, "change", nieCheck, false);
}

function nieCheck(e)
{
	nieObj = document.getElementById("nie");
	if(!nieObj) return;
	if(nieObj.value == "") return;
	ajaxObj.call("action=ajax_nieCheck&str=" + nieObj.value, nieCheckResp);
}

function nieCheckResp(resp){
	nieVal = resp["nieVal"];
	isValid = resp["isValid"];
	errMsg = resp["errMsg"];
	
	nieObj = document.getElementById("nie");
	if(!nieObj) return;
	
	nieObj.value = nieVal;
	
	niePar = document.getElementById("nie_p");
	errorObj = document.getElementById("nieError");
	
	if(isValid == 0)
	{
		if (!errorObj)
		{
			errorObj = document.createElement("span");
			errorObj.className = "error";
			errorObj.id = "nieError";
			niePar.appendChild(errorObj);
		}
		errorObj.innerHTML = errMsg;
		nifTest = false;
	}
	else
	{
		nifTest = true;
		errorObj = document.getElementById("nieError");
		if(errorObj) niePar.removeChild(errorObj);
	}
	
	//checkValidityTestsExtranjeros();
	checkValidityTests();
}

function loadNifCheck()
{
	nifObj = document.getElementById("nif");
	if(!nifObj) return;
	
	addEvent(nifObj, "change", nifCheck, false);
}

function nifCheck(e)
{
	nifObj = document.getElementById("nif");
	if(!nifObj) return;
	if(nifObj.value == "") return;
	ajaxObj.call("action=ajax_nifCheck&str=" + nifObj.value, nifCheckResp);
}

function nifCheckResp(resp){
	nifVal = resp["nifVal"];
	isValid = resp["isValid"];
	errMsg = resp["errMsg"];
	
	nifObj = document.getElementById("nif");
	if(!nifObj) return;
	
	nifObj.value = nifVal;
	
	nifPar = document.getElementById("nif_p");
	errorObj = document.getElementById("nifError");
	
	if(isValid == 0)
	{
		if (!errorObj)
		{
			errorObj = document.createElement("span");
			errorObj.className = "error";
			errorObj.id = "nifError";
			nifPar.appendChild(errorObj);
		}
		errorObj.innerHTML = errMsg;
		nifTest = false;
	}
	else
	{
		nifTest = true;
		errorObj = document.getElementById("nifError");
		if(errorObj) nifPar.removeChild(errorObj);
	}
	
	//checkValidityTestsCiudadanos();
	checkValidityTests();
}









function loadDateOfBirthSet()
{
	selectArr = document.getElementsByTagName("select");
	for(i = 0; i < selectArr.length; i++)
	{
		if(selectArr[i].name == "dateOfBirth_Year" || selectArr[i].name == "dateOfBirth_Month" || selectArr[i].name == "dateOfBirth_Day")
		{
			selectArr[i].id = selectArr[i].name;
			addEvent(selectArr[i], "change", dateOfBirthSet, false);
		}
	}
}

function dateOfBirthSet()
{
	dob_dayObj = document.getElementById("dateOfBirth_Day");
	dob_monthObj = document.getElementById("dateOfBirth_Month");
	dob_yearObj = document.getElementById("dateOfBirth_Year");
	
	dobDay = dob_dayObj.value;
	dobMonth = dob_monthObj.value;
	dobYear = dob_yearObj.value;
	
	selectedDateObj = document.getElementById("selectedDate");
	selectedDateObj.innerHTML = dobDay + "/" + dobMonth + "/" + dobYear;
	
	dateOfBirthConfirmObj = document.getElementById("dateOfBirthConfirm");
	dateOfBirthConfirmObj.checked = false;
	dobTest = false;
	//checkValidityTestsExtranjeros();
	checkValidityTests();
	//alert(dobYear + "-" + dobMonth + "-" + dobDay);
}

function loadDateOfBirthCheck()
{
	dateOfBirthConfirmObj = document.getElementById("dateOfBirthConfirm");
	addEvent(dateOfBirthConfirmObj, "change", dateOfBirthCheck, false);
}

function dateOfBirthCheck()
{
	dateOfBirthConfirmObj = document.getElementById("dateOfBirthConfirm");
	
	dob_dayObj = document.getElementById("dateOfBirth_Day");
	dob_monthObj = document.getElementById("dateOfBirth_Month");
	dob_yearObj = document.getElementById("dateOfBirth_Year");
	
	dobDay = dob_dayObj.value;
	dobMonth = dob_monthObj.value;
	dobYear = dob_yearObj.value;
	
	dateOfBirthValue = dobYear + "-" + dobMonth + "-" + dobDay;
	if (dateOfBirthConfirmObj.checked)
	{
		ajaxObj.call("action=ajax_dobTest&idElection=" + idElection + "&dob=" + dateOfBirthValue, dateOfBirthCheckResp)
	}
}

function dateOfBirthCheckResp(resp)
{
	dobErrorObj = document.getElementById("dobError");
	dateOfBirthConfirm_pObj = document.getElementById("dateOfBirthConfirm_p");
	
	if(resp["isValid"] == 0)
	{
		dateOfBirthConfirmObj = document.getElementById("dateOfBirthConfirm");
		dateOfBirthConfirmObj.checked = false;
		
		if(!dobErrorObj)
		{
			
			dobErrorObj = document.createElement("span");
			dobErrorObj.innerHTML = resp["errMsg"];
			dobErrorObj.className = "error";
			dobErrorObj.id = "dobError";
			dateOfBirthConfirm_pObj.appendChild(dobErrorObj);
		}
		dobTest = false;
	}
	else
	{
		if(dobErrorObj)
		{
			dateOfBirthConfirm_pObj.removeChild(dobErrorObj);
		}
		
		dobTest = true;
	}
	
	//checkValidityTestsExtranjeros();
	checkValidityTests();
}


function checkValidityTests()
{
	//alert(dobTest + ", " + nifTest);
	if (formType.value == "extranjeros")
	{
		if (dobTest && nifTest) {
			activateFieldsExtranjeros("on");
		}
		else {
			activateFieldsExtranjeros("off");
		}
	}
	else
	{
		confirmCheckboxesCiudadanos();
	}
}


function checkValidityTestsExtranjeros()
{
	//alert(dobTest + ", " + nieTest);
	
	if(dobTest && nieTest)
	{
		activateFieldsExtranjeros("on");
	}
	else
	{
		activateFieldsExtranjeros("off");
	}
}


function checkValidityTestsCiudadanos()
{
	//alert(dobTest + ", " + nifTest);
	
	if(dobTest && nifTest)
	{
		activateFieldsCiudadanos("on");
	}
	else
	{
		activateFieldsCiudadanos("off");
	}
}



function activateFieldsExtranjeros(onOff)
{
	mySwitch = onOff == "on" ? false : true;
	
	residenceFieldsetObj = document.getElementById("residenceData");
	
	mySelectors = residenceFieldsetObj.getElementsByTagName("select");
	
	for(i = 0; i < mySelectors.length; i++)
	{
		mySelectors[i].disabled = mySwitch;
	}
	
	voteDataFieldsetObj = document.getElementById("voteData");
	
	myRadios = voteDataFieldsetObj.getElementsByTagName("input");
	
	for(i = 0; i < myRadios.length; i++)
	{
		myRadios[i].disabled = mySwitch;
	}
	
	confirmCheckboxesExtranjeros();
}

function loadConfirmCheckboxesExtranjeros()
{
	confirmVoteNotValidObj = document.getElementById("confirmVoteNotValid");
	confirmNieSubmitObj = document.getElementById("confirmNieSubmit");
	confirmDataSubmitObj = document.getElementById("confirmDataSubmit");
	
	addEvent(confirmVoteNotValidObj, "click", confirmCheckboxesExtranjeros, false);
	addEvent(confirmNieSubmitObj, "click", confirmCheckboxesExtranjeros, false);
	addEvent(confirmDataSubmitObj, "click", confirmCheckboxesExtranjeros, false);
}

function loadConfirmCheckboxesCiudadanos()
{
	confirmVoteNotValidObj = document.getElementById("confirmVoteNotValid");
	confirmNifSubmitObj = document.getElementById("confirmNifSubmit");
	confirmDataSubmitObj = document.getElementById("confirmDataSubmit");
	
	addEvent(confirmVoteNotValidObj, "click", confirmCheckboxesCiudadanos, false);
	addEvent(confirmNifSubmitObj, "click", confirmCheckboxesCiudadanos, false);
	addEvent(confirmDataSubmitObj, "click", confirmCheckboxesCiudadanos, false);
}



function confirmCheckboxesExtranjeros()
{
	confirmVoteNotValidObj = document.getElementById("confirmVoteNotValid");
	confirmNieSubmitObj = document.getElementById("confirmNieSubmit");
	confirmDataSubmitObj = document.getElementById("confirmDataSubmit");
	submitVoteObj = document.getElementById("submitVote");
	
	if(confirmVoteNotValidObj.checked == true && confirmNieSubmitObj.checked == true && confirmDataSubmitObj.checked == true)
	{
		submitVoteObj.disabled = false;
	}
	else
	{
		submitVoteObj.disabled = true;
	}
}



function confirmCheckboxesCiudadanos()
{
	confirmVoteNotValidObj = document.getElementById("confirmVoteNotValid");
	confirmNifSubmitObj = document.getElementById("confirmNifSubmit");
	confirmDataSubmitObj = document.getElementById("confirmDataSubmit");
	submitVoteObj = document.getElementById("submitVote");
	
	if(confirmVoteNotValidObj.checked == true && confirmNifSubmitObj.checked == true && confirmDataSubmitObj.checked == true)
	{
		submitVoteObj.disabled = false;
	}
	else
	{
		submitVoteObj.disabled = true;
	}
}

function loadRollTr()
{
	trArr = document.getElementsByTagName("tr");
	for(i = 0; i < trArr.length; i++)
	{
		tableObj = ascendDOM(trArr[i], "table");
		if(tableObj.className != "dataTable") continue;
		addEvent(trArr[i], "mouseover", rollOnTr, false);
		addEvent(trArr[i], "mouseout", rollOffTr, false);
	}
}

addEvent(window, "load", loadRollTr, false);

function rollOnTr(e)
{
	target = fetchTarget(e);
	if(target.nodeName.toLowerCase() == "th") return;
	target = ascendDOM(target, "tr");
	target.className += " hilite";
}
function rollOffTr(e)
{
	target = fetchTarget(e);
	if(target.nodeName.toLowerCase() == "th") return;
	target = ascendDOM(target, "tr");
	myclass = target.className.match(/(lt|dk) hilite/)[1];
	target.className = myclass;
}

function setupPartyRows()
{
	trArr = document.getElementsByTagName("tr");
	for(i = 0; i < trArr.length; i++)
	{
		if(trArr[i].id.match(/partyRow_([0-9]+)/))
		addEvent(trArr[i], "click", clickPartyRow, false);
	}
}

function clickPartyRow(e)
{
	target = fetchTarget(e);
	target = ascendDOM(target, "tr");
	idPartiesInElection = target.id.match(/partyRow_([0-9]+)/)[1];
	//alert(idPartiesInElection);
	ajaxObj.call("action=ajax_getPartyStats&idPartiesInElection=" + idPartiesInElection, clickPartyRowResp)
}

function clickPartyRowResp(resp)
{
	partyDivObj = document.getElementById("partyDiv");
	
	while(partyDivObj.childNodes.length > 0)
	{
		partyDivObj.removeChild(partyDivObj.childNodes[0]);
	}
	
	partyInfoObj = document.createElement("div");
	partyTitle = document.createElement("h3");
	partyTitle.innerHTML = resp["title"] + " (" + resp["initials"] + ")";
	partyInfoObj.appendChild(partyTitle);
	
	partyLinkP = document.createElement("p");
	partyLinkP.innerHTML = "Total votos: " + resp["totalVotes"] + "<br />";
	partyLink = document.createElement("a");
	partyLink.href = "http://" + resp["website"];
	partyLink.target = "_blank";
	partyLink.innerHTML = resp["website"];
	partyLinkP.appendChild(partyLink);
	partyInfoObj.appendChild(partyLinkP);
	
	partyDivObj.appendChild(partyInfoObj);
	
	floatDiv = document.createElement("div");
	floatDiv.className = "floatDiv";
	floatDiv.innerHTML = resp["provinceTableHTML"];
	partyDivObj.appendChild(floatDiv);
	
	floatDiv = document.createElement("div");
	floatDiv.className = "floatDiv";
	floatDiv.innerHTML = resp["countryTableHTML"];
	partyDivObj.appendChild(floatDiv);
	
	//partyDivObj.innerHTML += resp["provinceTableHTML"];
	//partyDivObj.innerHTML += resp["countryTableHTML"];
}

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

var preloadFlag = false;
function preloadImages() {
	if (document.images) {
		toledo_over = newImage("mapImg/toledo_over.gif");
		burgos_click = newImage("mapImg/burgos_click.gif");
		cuenca_over = newImage("mapImg/cuenca_over.gif");
		valladolid_click = newImage("mapImg/valladolid_click.gif");
		ciudad_real_over = newImage("mapImg/ciudad_real_over.gif");
		palencia_click = newImage("mapImg/palencia_click.gif");
		zamora_click = newImage("mapImg/zamora_click.gif");
		albacete_over = newImage("mapImg/albacete_over.gif");
		leon_click = newImage("mapImg/leon_click.gif");
		murcia_over = newImage("mapImg/murcia_over.gif");
		orense_click = newImage("mapImg/orense_click.gif");
		baleares_over = newImage("mapImg/baleares_over.gif");
		almeria_over = newImage("mapImg/almeria_over.gif");
		pontevedra_click = newImage("mapImg/pontevedra_click.gif");
		la_coruna_click = newImage("mapImg/la_coruna_click.gif");
		lugo_click = newImage("mapImg/lugo_click.gif");
		asturias_click = newImage("mapImg/asturias_click.gif");
		cantabria_click = newImage("mapImg/cantabria_click.gif");
		vizcaya_click = newImage("mapImg/vizcaya_click.gif");
		guipuzcoa_click = newImage("mapImg/guipuzcoa_click.gif");
		alava_click = newImage("mapImg/alava_click.gif");
		la_rioja_click = newImage("mapImg/la_rioja_click.gif");
		navarra_click = newImage("mapImg/navarra_click.gif");
		teruel_click = newImage("mapImg/teruel_click.gif");
		zargoza_click = newImage("mapImg/zargoza_click.gif");
		granada_over = newImage("mapImg/granada_over.gif");
		huesca_click = newImage("mapImg/huesca_click.gif");
		jaen_over = newImage("mapImg/jaen_over.gif");
		alicante_click = newImage("mapImg/alicante_click.gif");
		valencia_click = newImage("mapImg/valencia_click.gif");
		castellon_click = newImage("mapImg/castellon_click.gif");
		gerona_click = newImage("mapImg/gerona_click.gif");
		barcelona_click = newImage("mapImg/barcelona_click.gif");
		tarragona_click = newImage("mapImg/tarragona_click.gif");
		lerida_click = newImage("mapImg/lerida_click.gif");
		cordoba_over = newImage("mapImg/cordoba_over.gif");
		huelva_over = newImage("mapImg/huelva_over.gif");
		sevilla_over = newImage("mapImg/sevilla_over.gif");
		cadiz_over = newImage("mapImg/cadiz_over.gif");
		malaga_over = newImage("mapImg/malaga_over.gif");
		santa_cruz_over = newImage("mapImg/santa_cruz_over.gif");
		las_palmas_over = newImage("mapImg/las_palmas_over.gif");
		navarra_over = newImage("mapImg/navarra_over.gif");
		las_palmas_click = newImage("mapImg/las_palmas_click.gif");
		la_rioja_over = newImage("mapImg/la_rioja_over.gif");
		alava_over = newImage("mapImg/alava_over.gif");
		guipuzcoa_over = newImage("mapImg/guipuzcoa_over.gif");
		vizcaya_over = newImage("mapImg/vizcaya_over.gif");
		cantabria_over = newImage("mapImg/cantabria_over.gif");
		asturias_over = newImage("mapImg/asturias_over.gif");
		santa_cruz_click = newImage("mapImg/santa_cruz_click.gif");
		lugo_over = newImage("mapImg/lugo_over.gif");
		la_coruna_over = newImage("mapImg/la_coruna_over.gif");
		pontevedra_over = newImage("mapImg/pontevedra_over.gif");
		baleares_click = newImage("mapImg/baleares_click.gif");
		orense_over = newImage("mapImg/orense_over.gif");
		malaga_click = newImage("mapImg/malaga_click.gif");
		castellon_over = newImage("mapImg/castellon_over.gif");
		cadiz_click = newImage("mapImg/cadiz_click.gif");
		valencia_over = newImage("mapImg/valencia_over.gif");
		sevilla_click = newImage("mapImg/sevilla_click.gif");
		huelva_click = newImage("mapImg/huelva_click.gif");
		alicante_over = newImage("mapImg/alicante_over.gif");
		leon_over = newImage("mapImg/leon_over.gif");
		huesca_over = newImage("mapImg/huesca_over.gif");
		zamora_over = newImage("mapImg/zamora_over.gif");
		zargoza_over = newImage("mapImg/zargoza_over.gif");
		cordoba_click = newImage("mapImg/cordoba_click.gif");
		teruel_over = newImage("mapImg/teruel_over.gif");
		palencia_over = newImage("mapImg/palencia_over.gif");
		jaen_click = newImage("mapImg/jaen_click.gif");
		valladolid_over = newImage("mapImg/valladolid_over.gif");
		granada_click = newImage("mapImg/granada_click.gif");
		almeria_click = newImage("mapImg/almeria_click.gif");
		murcia_click = newImage("mapImg/murcia_click.gif");
		burgos_over = newImage("mapImg/burgos_over.gif");
		albacete_click = newImage("mapImg/albacete_click.gif");
		salamanca_over = newImage("mapImg/salamanca_over.gif");
		ciudad_real_click = newImage("mapImg/ciudad_real_click.gif");
		avila_over = newImage("mapImg/avila_over.gif");
		cuenca_click = newImage("mapImg/cuenca_click.gif");
		toledo_click = newImage("mapImg/toledo_click.gif");
		segovia_over = newImage("mapImg/segovia_over.gif");
		badajoz_click = newImage("mapImg/badajoz_click.gif");
		soria_over = newImage("mapImg/soria_over.gif");
		caceres_click = newImage("mapImg/caceres_click.gif");
		madrid_click = newImage("mapImg/madrid_click.gif");
		guadalajara_over = newImage("mapImg/guadalajara_over.gif");
		guadalajara_click = newImage("mapImg/guadalajara_click.gif");
		madrid_over = newImage("mapImg/madrid_over.gif");
		soria_click = newImage("mapImg/soria_click.gif");
		caceres_over = newImage("mapImg/caceres_over.gif");
		gerona_over = newImage("mapImg/gerona_over.gif");
		segovia_click = newImage("mapImg/segovia_click.gif");
		badajoz_over = newImage("mapImg/badajoz_over.gif");
		barcelona_over = newImage("mapImg/barcelona_over.gif");
		lerida_over = newImage("mapImg/lerida_over.gif");
		avila_click = newImage("mapImg/avila_click.gif");
		tarragona_over = newImage("mapImg/tarragona_over.gif");
		salamanca_click = newImage("mapImg/salamanca_click.gif");
		preloadFlag = true;
	}
}

function loadMapAreas()
{
	areaArr = document.getElementsByTagName("area");
	for(i = 0; i < areaArr.length; i++)
	{
		if (areaArr[i].id.match(/area__([_a-z]+)/))
		{
			addEvent(areaArr[i], "click", loadProvince, false);
			addEvent(areaArr[i], "mouseover", showProvince, false);
			addEvent(areaArr[i], "mouseout", hideProvince, false);
		}
	}
}

function showProvince(e)
{
	target = fetchTarget(e);
	provName = target.title;
	provTitleDisplayObj = document.getElementById("provTitleDisplay");
	provTitleDisplayObj.innerHTML = provName;
}

function hideProvince(e)
{
	provTitleDisplayObj = document.getElementById("provTitleDisplay");
	provTitleDisplayObj.innerHTML = "";
}

function loadProvince(e)
{
	target = fetchTarget(e);
	provLabel = target.id.match(/area__([_a-z]+)/)[1];
	//alert(provLabel);
	ajaxObj.call("action=ajax_getProvinceInfo&provLabel=" + provLabel, loadProvinceResp);
}

function loadProvinceResp(resp)
{
	provInfoObj = document.getElementById("provInfo");
	provInfoObj.innerHTML = resp["formattedInfo"];
}

function setupCountryRows()
{
	trArr = document.getElementsByTagName("tr");
	for(i = 0; i < trArr.length; i++)
	{
		if(trArr[i].id.match(/countryRow_([0-9]+)/))
		addEvent(trArr[i], "click", clickCountryRow, false);
	}
}

function clickCountryRow(e)
{
	target = fetchTarget(e);
	target = ascendDOM(target, "tr");
	idCountry = target.id.match(/countryRow_([0-9]+)/)[1];
	//alert(idCountry);
	ajaxObj.call("action=ajax_getCountryStats&idCountry=" + idCountry, clickCountryRowResp)
}

function clickCountryRowResp(resp)
{
	countryDataObj = document.getElementById("countryData");
	countryDataObj.innerHTML = resp["contentHTML"];
	
	idCountry = resp["idCountry"];
	countryRowObj = document.getElementById("countryRow_" + idCountry);
	posCountryRow = findPos(countryRowObj);
	widthCountryRow = countryRowObj.offsetWidth;
	//alert(posCountryRow);
	countryDataObj.style.position = "absolute";
	countryDataObj.style.top = posCountryRow[1] + "px";
	countryDataObj.style.left = widthCountryRow + posCountryRow[0] + 20 + "px";
}



