﻿/**
 * @author doxaras
 */

/*resource bundles strings */
function sendResponse(btn, fName) {
   btn.disabled = true;
   if(!validateForm(fName)) {
	btn.disabled = false;
	return;
   }
   
   document.forms[fName].submit();
}
function submitRegistrationForm(formName, submitBtn) {
	submitBtn.disabled = true;
	sbmForm = document.forms[formName];
	if(!validateForm(formName)) {
		submitBtn.disabled = false;
		return;
	} 
	

	if(submitBtn.id != 'submitB') {
	   if($('#pswd').val() == '' && submitBtn.id != 'rejected') {
		$('#pswd').focus();
		alert('Πρέπει να βάλετε κωδικό εισόδου!');
		submitBtn.disabled = false;
		return;
	   }
	   
		sbmForm.outputResult.value = submitBtn.id;
		sbmForm.formdata.value = '__';
		sbmForm.username.value = '__';
		disableAllFormFields(sbmForm, false);
		if(submitBtn.id!='rejected')
			$('#pswd').attr('disabled', false);
		sbmForm.submit();
		return;
	}
	
	$.post("/portal/pls/portal/pfs_schema.AsynchServices.check_reg_userName",
		{user_name: $('#userName').attr('value'),
		 email: $('#mail').attr('value'),
		 idNumber: $('#idNumber').attr('value')}, function(data){
		 
			var res = getAjaxResult(data);
			if(res=='GLOBAL FAIL') {
				alert('Υπήρξε πρόβλημα κατά την υποβολή παρακαλώ δοκιμάστε αργότερα!');
				return;
			}
			if(res=='fail') {
				showAjaxMsgsInFields(data);
				alert('Παρακαλώ διορθώστε τα λανθασμένα πεδία και υποβάλετε ξανά την αίτηση.');
				
				submitBtn.disabled = false;
				return;
			}
			if(res!='success' || res=='undefined') {
				alert('Μη εξουσιοδοτημένη ενέργεια!');
				return;
			}
			resumeRegistrationForm(sbmForm);
	});
	
}

function getPassword() {
	$('#changePassLink').hide();
	disableOREnableRegButtons(true);
	
	
	$.post("/portal/pls/portal/pfs_schema.AsynchServices.generate_users_pass",
		{registration_id: $('#applicationId').attr('value')}, function(data){
			var res = getAjaxResult(data);
			if(res=='GLOBAL FAIL') {
				alert('Υπήρξε πρόβλημα κατά την υποβολή παρακαλώ δοκιμάστε αργότερα!');
				disableOREnableRegButtons(false);
				$('#changePassLink').show();
				return;
			}
			if(res=='fail') {
				showMessage(data);
				disableOREnableRegButtons(false);
				$('#changePassLink').show();
				return;
			}
			if(res!='success' || res=='undefined') {
				alert('Μη εξουσιοδοτημένη ενέργεια!');
				return;
			}
			//meaning success!
			var pass = getAjaxAttribute(data, 'password');
			if(pass=='undefined') {
				alert('Υπήρξε πρόβλημα κατά την υποβολή παρακαλώ δοκιμάστε αργότερα!');
				disableOREnableRegButtons(false);
				$('#changePassLink').show();
				return;
			}
			$('#pswd').val(pass);
			disableOREnableRegButtons(false);
			$('#changePassLink').show();
	});
	
}

function disableOREnableRegButtons(dis) {
	
	if(document.getElementById('completed')) {
		document.getElementById('completed').disabled = dis;
		document.getElementById('rejected').disabled = dis;
	} else {
		document.getElementById('chgPassBtn').disabled=dis;
	}
	
	
}

function resumeRegistrationForm(sbmForm) {
	var  response = loadjson(sbmForm);
	
	sbmForm.username.value = response["name"] + ' ' + response["lastName"]; 
	sbmForm.applicationId.value ='__';
	sbmForm.outputResult.value = '__';

	sbmForm.formdata.value = JSON.encode(response);
	disableAllFormFields(sbmForm, false);
	sbmForm.submit();
	
	
}


function fillRegistrationForm(myform){
	
	if(typeof(myjson) == 'undefined')
		return;
	
	var myFormFields = eval(myjson);
	if(myFormFields) {	
		for(var val in myFormFields) {			
			var curval = document.getElementById(val);
			if(curval) {
				if(val=='newsTextTypeHTML' || val=='newsTextTypeText' )
					continue;
					
				if(val=='newsletcheck') {
					if(myFormFields[val]=='checked') {
						curval.checked = true;
						curval.disabled = true;
						if(typeof(myFormFields['newsTextTypeHTML'])!='undefined' && myFormFields['newsTextTypeHTML']=='checked') {
							document.getElementById('newsTextTypeHTML').checked = true;
						}
						
						if(typeof(myFormFields['newsTextTypeText'])!='undefined' && myFormFields['newsTextTypeText']=='checked')
							document.getElementById('newsTextTypeText').checked = true;
						
						document.getElementById('newsTextTypeHTML').disabled = true;
						document.getElementById('newsTextTypeText').disabled = true;
					} else {
						curval.disabled = true;
					}
					continue;
				}
				
				curval.value = myFormFields[val];
				curval.disabled = true;
			}
		}

	}
}


  function submitAlterProfile(smbtButton) {
	smbtButton.disabled = true;
	if(!validateForm('f1')) {
		smbtButton.disabled = true;
		return;
	}
	
	sbmForm = document.f1;
	sbmForm.name.disabled = false;
	sbmForm.lastName.disabled = false;
	sbmForm.afm.disabled = false;
	sbmForm.afm.disabled = false;
	sbmForm.electNumb.disabled = false;
	var  response = loadjson(sbmForm);
	
	sbmForm.formdata.value = JSON.encode(response);
	if(sbmForm.formdata.value == myjson) {
		sbmForm.name.disabled = true;
		sbmForm.lastName.disabled = true;
		sbmForm.afm.disabled = true;
		alert('Δεν τροποποιήσατε κάποιο στοιχείο');
		return;
	}
	disableAllFormFields(sbmForm, false);
	sbmForm.submit();
  }

 function submitRequestFormSearch() {
 	if(!document.forms.f1)
 		return;
 	
 	var myform = document.forms.f1;
 	myform.sButton.disabled = true;
	if(document.f1.protocol_num.value.trim()=='' && document.f1.citizen_name.value.trim()==''
		&& document.f1.from_submition_date2.value.trim()=='' && document.f1.to_submition_date2.value.trim()==''
		&& document.f1.req_type.selectedIndex == 0 && document.f1.req_state.selectedIndex==0) {
			alert('Πρέπει να συμπληρώσετε τουλάχιστον ένα πεδίο για την αναζήτηση!');
			myform.sButton.disabled = false;
			return;
	}
				   
	if(!validateForm('f1')) {
	   	myform.sButton.disabled = false;
		return;
	}
	myform.isNewSearch.value='true';
    myform.p_page.value='1';
	loadReqFormFieldsInHiddens();
	var  response = loadjsonWithHidden(myform);
 	myform.formdata.value = JSON.encode(response);
	//myform.username.value = response["name"] + ' ' + response["lastName"]; 
	//myform.applicationId.value ='__';
	//myform.outputResult.value = '__';
	
	
 	myform.submit();
 }
 
 function loadReqFormFieldsInHiddens() {
	myform = document.forms.f1;
	
	myform.h_citizen_name.value = myform.citizen_name.value;
	myform.h_protocol_num.value = myform.protocol_num.value;
	myform.h_from_submition_date2.value = myform.from_submition_date2.value;
	myform.h_to_submition_date2.value = myform.to_submition_date2.value;
	myform.h_req_type.value = myform.req_type.value;
	myform.h_req_state.value = myform.req_state.value;
 }
 
 function nextPage(page) {
	var myform = document.forms.f1;
	myform.p_page.value = page;
	myform.isNewSearch.value='false';	
	var  response = loadjsonWithHidden(myform);
 	myform.formdata.value = JSON.encode(response);
	
	myform.submit();
 }
 
  function loadjsonWithHidden(myform) {
 	
 	var resp  = new Object(); 
 	if(myform) {	
		var arraydata = myform.elements;		
		for(i=0; i <arraydata.length; i++  ) {
			if(!arraydata[i].disabled && ( 
					arraydata[i].type == 'text' 
					|| arraydata[i].type == 'textarea' 
					|| arraydata[i].type =='select-one' || (arraydata[i].type=='hidden' && arraydata[i].name!='formdata' && 
															arraydata[i].name!='isNewSearch')) ) {		
				if(arraydata[i].value == '' ) { 
					resp[arraydata[i].id] = '' ;
				} else {   
					resp[arraydata[i].id] = arraydata[i].value;
				} 
			}
		}
 	}
	return resp;
 } 
 
 function sendLostPassMail(sbmtBtn) {
	sbmtBtn.disabled = true;
	if(!validateForm('lpassForm')) {
		sbmtBtn.disabled = false;
		return;
	}
	document.lpassForm.submit();
 }

 /**
  * Generic function to perform
  *  1. validation.
  *  2. json loading.
  *  3. form submission.
  */
 function submitRequestForm(myelement) {
 	if(!document.forms.f1)
 		return;
 	myelement.disabled = true;
 	var myform = document.getElementById('f1');
 		
 	if(myelement.id =='submitB') {
 		if(!validateForm('f1')){
			myelement.disabled = false;
			return;
		}
		
		activateAllFormFields(myform);
 		var  response = loadjson(myform);
 		
		myform.formdata.value = JSON.encode(response);
		//myform.formdata.value = response.toSource(); 
		myform.username.value = response["name"] + ' ' + response["lastName"]; 
		myform.applicationId.value ='__';
		myform.outputResult.value = '__';
		//document.writeln(response.toSource());
 	} else {
 		myform.outputResult.value = myelement.id;
		myform.formdata.value = '__';
		myform.username.value = '__';
 	}
 	// disable before submission
 	disableAllFormFields(myform, false);
 	myform.submit();
 }
 
 function activateAllFormFields(myform) {
	if(myform) { 	 	
		var arraydata = myform.elements;	
		for(i=0; i < arraydata.length; i++  ) {
			arraydata[i].disabled = "";
		}
	} 	
 }
 
 /**
  * Disable form fields to 
  * avoid submission conflicts.
  * If you want to avoid disabling hidden 
  * set hidden varialbe to true
  */
 function disableAllFormFields(myform, disableHidden) {
 	if(myform) { 	 	
		var arraydata = myform.elements;	
		for(i=0; i < arraydata.length; i++  ) {
		
			if(arraydata[i].type == 'file') {
				continue;
			}
			
			var isHidden = (arraydata[i].type == "hidden");
			if(!isHidden || disableHidden ) {
				arraydata[i].disabled = "true";
			}
		}
	} 	
 }
 
 
 
	

 function loadjson(myform) {
 	
 	var resp  = new Object(); 
 	if(myform) {	
		var arraydata = myform.elements;		
		for(i=0; i <arraydata.length; i++  ) {
			if(!arraydata[i].disabled && ( 
					arraydata[i].type == 'text' 
					|| arraydata[i].type == 'textarea' 
					|| arraydata[i].type =='select-one') ) {		
				if(arraydata[i].value == '' ) { 
					resp[arraydata[i].id] = '' ;
				} else {   
					resp[arraydata[i].id] = arraydata[i].value;
				}
				continue;
			}
			if(!arraydata[i].disabled && (arraydata[i].type=='checkbox' || arraydata[i].type=='radio') ) {
				if(arraydata[i].checked)
					resp[arraydata[i].id] = 'checked' ;
			    else
				    resp[arraydata[i].id] = '' ;
			}
			
		}
 	}
	return resp;
 } 
 
 
function fillForm(myform){
	
	if(typeof(myjson) == 'undefined')
		return;
	
	var myFormFields = eval(myjson);
	if(myFormFields) {	
		for(var val in myFormFields) {			
			var curval = document.getElementById(val);
			if(curval) {
				if(curval.type=='checkbox' || curval.type=='radio') {
					if(myFormFields[val]=='checked') {
						curval.checked = true;
					}
					curval.disabled=true;
					continue;
				}
				curval.value = myFormFields[val];
				curval.disabled = true;
			}
		}

	}
}

function fillFormSearch(myform){
	var myFormFields = eval(myjson);
	if(myFormFields) {	
		for(var val in myFormFields) {			
			var curval = document.getElementById(val);
			if(curval) {
				curval.value = myFormFields[val]; 
			}
		}
	}
}
 
 
 function fillFormTafi(myform) {
	 
	try{valueOf(myjson)} catch(err){return;}
	 
	var myFormFields = eval(myjson);
	 
	if(myFormFields) {	
		for(var val in myFormFields) {			
		
			if (val  == 'oikogeniakos_tomeas') {	
				setHtmlBury('oikogeneiakos');
			}
			
			var curval = document.getElementById(val);
			if(curval) {
				curval.value = myFormFields[val]; 
				curval.disabled = true;
			}
		}
	}	
 }
 

function addRowToTable(tablename) {

	var verbal = '';
	var MaxLines = 5 ; 
	
	if(tablename == 'orofoi') {
		verbal = floor_locale;
		MaxLines = 10;
	} else if (tablename == 'store') {
		verbal = store_locale;
	} else  if(tablename == 'parking') {
		verbal = parking_locale;
	}


	var tbl = document.getElementById(tablename);
	var lastRow = tbl.rows.length ;
  
  
	if (lastRow < MaxLines) {
		// if there's no header row in the table, then iteration = lastRow + 1
		var iteration = lastRow;
		var row = tbl.insertRow(lastRow);
		  
		// left cell
		var cellLeft = row.insertCell(0);
		var textNode = document.createTextNode(verbal + ' ' + (iteration));
		cellLeft.appendChild(textNode);
		  
		// right cell
		var cellRight = row.insertCell(1);
		var el = document.createElement('input');
		el.type = 'text';
		el.name = tablename +  '_' + iteration;
		el.id = tablename  +  '_' + iteration;
		el.size = 20;
		  
		//el.onkeypress = keyPressTest;
		cellRight.appendChild(el);
	}
}


function addRowToTableCoOwners() {

	var tbl = document.getElementById('owners');
	var lastRow = tbl.rows.length ;
	
	if(lastRow < 7) {
	
		var iteration = lastRow;
		var row = tbl.insertRow(lastRow);
		
		// left cell
		var cellLeft = row.insertCell(0);
		var el1 = document.createElement('input');
		el1.type = 'text';
		el1.name ='owners_' + iteration;
		el1.id ='owners_' + iteration;
			el1.size = 20;
			cellLeft.appendChild(el1);
		  
			//center cell
		var centerRight = row.insertCell(1);
		var el2 = document.createElement('input');
		el2.type = 'text';
		el2.name =  'address_' + iteration;
		el2.id = 'address_' + iteration;
		el2.size = 20;
		centerRight.appendChild(el2);
		
		// right cell
		var cellRight = row.insertCell(2);
		var el3 = document.createElement('input');
		el3.type = 'text';
		el3.name = 'pososto_' + iteration;
		el3.id = 'pososto_' + iteration;
		el3.size = 20;
		cellRight.appendChild(el3);
	}
}




function removeRowFromTable(tablename) {
	var tbl = document.getElementById(tablename);
	var lastRow = tbl.rows.length;
	if (lastRow > 2) tbl.deleteRow(lastRow - 1);
}

	

function generateHtmlBury(selectElem) {
	setHtmlBury(selectElem.value);
}

function setHtmlBury(idname) {
	
	if(idname == 'oikogeneiakos') {
		document.getElementById('myInnerHtml').innerHTML = oikogeneiakosHTML;		
	} else if(document.getElementById('myInnerHtml').innerHTML.length > 0) {
		document.getElementById('myInnerHtml').innerHTML = "";		
	}
}



 function fillFormOTA(myform) {
	 
	try{valueOf(myjson)} catch(err){return;}
	 
	var myFormFields = eval(myjson);
	 
	if(myFormFields) {	
		var i = 0;
		for(var val in myFormFields) {			
			var myString = val.split("_");

			if(myString[1] != "1" ) {
				if (myString[0] == 'orofoi' 
						|| myString[0] == 'store' 
						|| myString[0] == 'parking') {	
					addRowToTable(myString[0]);			
				} else if ( myString[0] == 'owners') {
					addRowToTableCoOwners();		  
				} 
			}
			
			var curval = document.getElementById(val);
			if(curval) {
				curval.value = myFormFields[val]; 
				curval.disabled = true;
			}
		}
	}	
 }
 
 
 function fillFormEktafi(myform)  {

 
	try{valueOf(myjson)} catch(err){return;}
 
	var myFormFields = eval(myjson);
	if(myFormFields) {	
		var i = 0;
		for(var val in myFormFields) {			

			if ( val == "oikogeniakos_tomeas" ) {	
				setHtmlEktafi('oikogeneiakos'); 
			} else if (val == "osteothirida_tomeas") {
				  setHtmlEktafi('osteothirida'); 	  
			} else if (val == "other_cemetery") {
				  setHtmlEktafi('allo'); 	  
			}
			
			var curval = document.getElementById(val);
			if(curval) {
				curval.value = myFormFields[val]; 
				curval.disabled = true;
			}
		}
	}	
}




function generateHtmlEktafi(selectElem) {
	setHtmlEktafi(selectElem.value);
}

function setHtmlEktafi(idname) {
	if(idname == "oikogeneiakos" ) {						   
		document.getElementById('myInnerHtml').innerHTML = oikogeneiakosHTML;
	} else if(idname == "osteothirida" ) {
		document.getElementById('myInnerHtml').innerHTML = osteothiridaHTML;
	} else if(idname == "allo" ) {					   										   
		document.getElementById('myInnerHtml').innerHTML = koinosHTML;
	} else if(document.getElementById('myInnerHtml').innerHTML.length > 0) {
		document.getElementById('myInnerHtml').innerHTML ='';
	}
}

/**
* function to disable all page button to facilitate page view
*/
 function disableButtons(disAlsoSubmitBut) {
	 var elems = document.forms.f1;
	 for(i=0; i < elems.length; i++ ) {
		if(elems[i].type == 'button' ) {
			if((elems[i].id == 'completed' || elems[i].id == 'rejected') ) {
				if(disAlsoSubmitBut) {
					elems[i].disabled = true;	
				}
			}else  {
				elems[i].disabled = true;	
			}
		}
	 }
 }
 
  function fillCitizenData() {
  if(typeof(citizenData)=='undefined')
	return;
	//alert(citizenData);
	var cData = eval(citizenData);
	//alert(cData["name"]);
	for(var val in cData) {			
		if(document.getElementById(val)) {
			document.getElementById(val).value = cData[val];
			document.getElementById(val).disabled = true;
		}
	}
}

function fillFormCitizenData(){
	
	if(typeof(myjson) == 'undefined')
		return;
	
	var myFormFields = eval(myjson);
	
	if(myFormFields) {	
		for(var val in myFormFields) {			
			var curval = document.getElementById(val);
			if(curval) {
				if(val=='newsTextTypeHTML' || val=='newsTextTypeText' )
					continue;
				
				if(val=='newsletcheck') {
					if(myFormFields[val]=='checked') {
						curval.checked = true;
						if(typeof(myFormFields['newsTextTypeHTML'])!='undefined' && myFormFields['newsTextTypeHTML']=='checked')
							document.getElementById('newsTextTypeHTML').checked = true;
						
						if(typeof(myFormFields['newsTextTypeText'])!='undefined' && myFormFields['newsTextTypeText']=='checked')
							document.getElementById('newsTextTypeText').checked = true;
					}
					continue;
				}
				
				curval.value = myFormFields[val];
				if(val != 'street' && val!= 'city' && val!='phone' && val!='fax_num' && val!='idNumber'
				&& val!='mail' && val!='doy')
				curval.disabled = true;
			}
		}

	}
}

function printReqForm() {
	printContent('reqForm', 'Εκτύπωση Αίτησης');
}

function printContent(divID, appName) {
	mytr  = document.getElementById(divID);
	inHtml = mytr.innerHTML;
	inHtml = inHtml.substring(0, inHtml.indexOf('id="buttonsCell"'));
	inHtml = inHtml + "></td></tr></tbody></table></form></body>";
	var newWindow = window.open("", "newWindow", "heigh=400,width=800,titlebar=no,toolbar=no,scrollbars=no,resizeable=no");
	newWindow.focus();
	
	var htmlpopup = 
		"<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>" + 
		"<html xmlns='http://www.w3.org/1999/xhtml'>" + 
		"<head>" + 
		"<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />" +
		"<title>" + appName + "</title>" +
		"<script language=\"javascript\">"+
		"var myjson=window.opener.getJSON();"+
		"</script>"+
		"<script language=\"javascript\" src=\"/images/pfs/all_functions_7.js\"></script>"+
		"<script language=\"javascript\" src=\"/images/pfs/JSON.js\"></script>"+
		"<link rel='stylesheet' type='text/css' href='/images/pfs/images/print.css'>" + 
		"</head>" +
		"<body onload=\"fillCitizenData();fillForm(document.getElementById('f1'));window.print();window.close();\">" +  inHtml +
		"</body>" + 
		"</html>";
	
	with(newWindow.document) {
		writeln(htmlpopup);
        close();
    }
	newWindow.focus();
}
   function getJSON() {
	  return myjson;
   }
function hideButtons() {
	
	
	
	
}

function submit_poll_template() 
{
	var queryString = '';
	var myform = document.getElementById('fPoll2');
	var url_post = '';
	var panswer = '';
	
	for(i=0; i < myform.elements.length; i++){
		if(myform.elements[i].type=='hidden') {
			if(i==0) 
				queryString = myform.elements[i].name + '=' + myform.elements[i].value;
			else 
				queryString = queryString + '&'+ myform.elements[i].name + '=' + myform.elements[i].value;
		} else if (myform.elements[i].type=='radio' && myform.elements[i].checked == true) {
			panswer = myform.elements[i].value;
			break;
		}
	}
	//validation 
	if(panswer == ''){
		alert('please choose an answer!');
		return;
	}
	url_post = myform.action + '?' + queryString + '&panswer=' + panswer;
	openNewWindow(url_post,'title');
}

function clear_safe() {
	 	var myform = document.getElementById('f1');
		for(i=0; i<myform.elements.length; i++) {
			if(myform.elements[i].type != 'hidden' && myform.elements[i].type != 'button' && myform.elements[i].disabled  == false) {
				myform.elements[i].value = '';
			}
		}
}



 
