//<!-- Begin
/***************************************************************************************************
 * FUNCTION:	kind_change_callback
 * 
 * DESCRIPTION:	This function changes styles to required fields when a register kind is selected.
 * 
 * PARAMETERS:	None.	
 * 
 * RETURNS:		None.
 * 
 **************************************************************************************************/
function kind_change_callback(){

    // enable fields by default
    ['RegisterSentRst', 'RegisterReceivedRst'].each(function(e){
       		$(e).enable();
    });
    
    // make highlight default
    ['RegisterSentRst', 'RegisterReceivedRst',
	 'RegisterCallsignFrom','RegisterCallsignTo',
	 'RegisterLocatorFrom','RegisterLocatorTo',
	 'RegisterLatitudeFrom','RegisterLatitudeTo',
	 'RegisterLongitudeFrom','RegisterLongitudeTo'].each(function(e){
	  	$(e).up().removeClassName('required');
	 });
    
	// reseta valore de campos se o tipo mudar
	// campos text
	/*['RegisterSentRst', 'RegisterReceivedRst',
	 'RegisterCallsignFrom','RegisterCallsignTo',
	 'RegisterLocatorFrom','RegisterLocatorTo',
	 'RegisterLatitudeFrom','RegisterLatitudeTo',
	 'RegisterLongitudeFrom','RegisterLongitudeTo',
	 'RegisterFrequency'].each(function(e){
	  	b=$(e);
	  	b.value=null;});
	*/
	// campos select
	/*['RegisterFromcityId','RegisterTocityId'].each(function(e){
		elemento=$(e);
		// pega os options do select em um array e
		// mantem o primeiro
		opcoes=(elemento.immediateDescendants());
		manter =opcoes[0];
	    // remove os options e restaura o primeiro elemento
		opcoes.each(function(s){Element.remove(s);});
		elemento.appendChild(manter);
	});
	*/
	
	if($("RegisterKind").value == "QSO")
	{
		// make highlight default
    ['RegisterSentRst', 'RegisterReceivedRst',
	 'RegisterCallsignFrom','RegisterCallsignTo',
	 'RegisterLocatorFrom','RegisterLocatorTo',
	 'RegisterLatitudeFrom','RegisterLatitudeTo',
	 'RegisterLongitudeFrom','RegisterLongitudeTo'].each(function(e){
	  	$(e).up().addClassName('required');
	 });
	}
	if($("RegisterKind").value == "CQ")
	{
       // disable unused fields
       ['RegisterSentRst', 'RegisterReceivedRst'].each(function(e){
       		$(e).disable();
       });
       // highlight required field
       ['RegisterCallsignFrom','RegisterLocatorFrom',
	    'RegisterLatitudeFrom','RegisterLongitudeFrom'].each(function(e){
       		$(e).up().addClassName('required');
       });
	}
	if($("RegisterKind").value == "Escuta")
	{
		// disable unused fields
       $('RegisterSentRst').disable();
       
	   // highlight required field
       ['RegisterCallsignFrom','RegisterLocatorFrom',
	    'RegisterLatitudeFrom','RegisterLongitudeFrom',
	    'RegisterCallsignTo','RegisterReceivedRst'].each(function(e){
       		$(e).up().addClassName('required');
       });
	}
}

/**
 * This function calculates and changes fields for latitude and longitude when a Locator field is changed.
 * @param {Object} wl the name of locator's field
 * @param {Object} la the name of latitude field to update
 * @param {Object} lo the name of longitude field to update
 */
 function locator_change_callback(wl,la,lo) {
 	loc = $(wl);
 	lat1 = $(la);
 	lon1 = $(lo);
 	var latlon = new Array ();
 	if (loc.value != "") {
 //		ret=wltoll(wl);
 		lat1.value="";
 		lon1.value="";

 		lat1.up('div').hide();
 		lon1.up('div').hide();
 	} else {
 		lat1.value="";
 		lon1.value="";
 		lat1.up('div').show();
 		lon1.up('div').show();
		lat1.focus();
 	}
 	
 	return;
 }
 
 /***************************************************************************************************
 * FUNCTION:	latlon_change_callback
 * 
 * DESCRIPTION:	This function calculates the Worldlocator when a latitude or longitude is changed.
 * 
 * PARAMETERS:	wl - the name of locator�s field to update
 * 				la - the name of latitude field
 * 				lo - the name of longitude field
 * 
 * RETURNS:		None.
 * 
 **************************************************************************************************/
 function latlon_change_callback(wl,la,lo) {
 	
 	ilat=$(la).value;
 	ilon=$(lo).value;
 	
 	if ((ilat != "" && ilon != "") &&
	(IsNumeric(ilat) && IsNumeric(ilon))) {
		// 			$(wl).value=lltowl(ilat,ilon);
		$(wl).value = "";
		$(wl).up('div').hide();
	}
	else {
		$(wl).up('div').show();
		$(wl).focus();
	}
 	return;
 }
 
 /***************************************************************************************************
 * FUNCTION:	IsNumeric
 * 
 * DESCRIPTION:	This function test if a given text has a numeric value.
 * 
 * PARAMETERS:	sText - String to test
 * 
 * RETURNS:		True for a valid numeric value
 * 				False for a non valid numeric value
 * 
 **************************************************************************************************/
 function IsNumeric(sText)

{
   var ValidChars = "0123456789.-";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
      	IsNumber = false;
      }
   }
   
   return IsNumber; 
}
// End -->//<!-- Begin
/***************************************************************************************************
 * FUNCTION:	kind_change_callback
 * 
 * DESCRIPTION:	This function changes styles to required fields when a register kind is selected.
 * 
 * PARAMETERS:	None.	
 * 
 * RETURNS:		None.
 * 
 **************************************************************************************************/
function kind_change_callback(){

    // enable fields by default
    ['RegisterSentRst', 'RegisterReceivedRst'].each(function(e){
       		$(e).enable();
    });
    
    // make highlight default
    ['RegisterSentRst', 'RegisterReceivedRst',
	 'RegisterCallsignFrom','RegisterCallsignTo',
	 'RegisterLocatorFrom','RegisterLocatorTo',
	 'RegisterLatitudeFrom','RegisterLatitudeTo',
	 'RegisterLongitudeFrom','RegisterLongitudeTo'].each(function(e){
	  	$(e).up().removeClassName('required');
	 });
    
	// reseta valore de campos se o tipo mudar
	// campos text
	/*['RegisterSentRst', 'RegisterReceivedRst',
	 'RegisterCallsignFrom','RegisterCallsignTo',
	 'RegisterLocatorFrom','RegisterLocatorTo',
	 'RegisterLatitudeFrom','RegisterLatitudeTo',
	 'RegisterLongitudeFrom','RegisterLongitudeTo',
	 'RegisterFrequency'].each(function(e){
	  	b=$(e);
	  	b.value=null;});
	*/
	// campos select
	/*['RegisterFromcityId','RegisterTocityId'].each(function(e){
		elemento=$(e);
		// pega os options do select em um array e
		// mantem o primeiro
		opcoes=(elemento.immediateDescendants());
		manter =opcoes[0];
	    // remove os options e restaura o primeiro elemento
		opcoes.each(function(s){Element.remove(s);});
		elemento.appendChild(manter);
	});
	*/
	
	if($("RegisterKind").value == "QSO")
	{
		// make highlight default
    ['RegisterSentRst', 'RegisterReceivedRst',
	 'RegisterCallsignFrom','RegisterCallsignTo',
	 'RegisterLocatorFrom','RegisterLocatorTo',
	 'RegisterLatitudeFrom','RegisterLatitudeTo',
	 'RegisterLongitudeFrom','RegisterLongitudeTo'].each(function(e){
	  	$(e).up().addClassName('required');
	 });
	}
	if($("RegisterKind").value == "CQ")
	{
       // disable unused fields
       ['RegisterSentRst', 'RegisterReceivedRst'].each(function(e){
       		$(e).disable();
       });
       // highlight required field
       ['RegisterCallsignFrom','RegisterLocatorFrom',
	    'RegisterLatitudeFrom','RegisterLongitudeFrom'].each(function(e){
       		$(e).up().addClassName('required');
       });
	}
	if($("RegisterKind").value == "Escuta")
	{
		// disable unused fields
       $('RegisterSentRst').disable();
       
	   // highlight required field
       ['RegisterCallsignFrom','RegisterLocatorFrom',
	    'RegisterLatitudeFrom','RegisterLongitudeFrom',
	    'RegisterCallsignTo','RegisterReceivedRst'].each(function(e){
       		$(e).up().addClassName('required');
       });
	}
}

/**
 * This function calculates and changes fields for latitude and longitude when a Locator field is changed.
 * @param {Object} wl the name of locator's field
 * @param {Object} la the name of latitude field to update
 * @param {Object} lo the name of longitude field to update
 */
 function locator_change_callback(wl,la,lo) {
 	loc = $(wl);
 	lat1 = $(la);
 	lon1 = $(lo);
 	var latlon = new Array ();
 	if (loc.value != "") {
 //		ret=wltoll(wl);
 		lat1.value="";
 		lon1.value="";

 		lat1.up('div').hide();
 		lon1.up('div').hide();
 	} else {
 		lat1.value="";
 		lon1.value="";
 		lat1.up('div').show();
 		lon1.up('div').show();
		lat1.focus();
 	}
 	
 	return;
 }
 
 /***************************************************************************************************
 * FUNCTION:	latlon_change_callback
 * 
 * DESCRIPTION:	This function calculates the Worldlocator when a latitude or longitude is changed.
 * 
 * PARAMETERS:	wl - the name of locator�s field to update
 * 				la - the name of latitude field
 * 				lo - the name of longitude field
 * 
 * RETURNS:		None.
 * 
 **************************************************************************************************/
 function latlon_change_callback(wl,la,lo) {
 	
 	ilat=$(la).value;
 	ilon=$(lo).value;
 	
 	if ((ilat != "" && ilon != "") &&
	(IsNumeric(ilat) && IsNumeric(ilon))) {
		// 			$(wl).value=lltowl(ilat,ilon);
		$(wl).value = "";
		$(wl).up('div').hide();
	}
	else {
		$(wl).up('div').show();
		$(wl).focus();
	}
 	return;
 }
 
 /***************************************************************************************************
 * FUNCTION:	IsNumeric
 * 
 * DESCRIPTION:	This function test if a given text has a numeric value.
 * 
 * PARAMETERS:	sText - String to test
 * 
 * RETURNS:		True for a valid numeric value
 * 				False for a non valid numeric value
 * 
 **************************************************************************************************/
 function IsNumeric(sText)

{
   var ValidChars = "0123456789.-";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) {
      	IsNumber = false;
      }
   }
   
   return IsNumber; 
}
// End -->