﻿
function SetParentSelector( selCountry ){
	var selAreas = Gid( selCountry.id +"~@~"+ selCountry.value);
	
	var aselLocations = document.getElementsByName( selCountry.id ); 
		for (var i=0; i != aselLocations.length; i++ ){
			if ( aselLocations[i].id > selCountry.id ) {
				aselLocations[i].style.display ="none";
				aselLocations[i].disabled=true;
			}
		}
				
	if ( selAreas != null ){
		selAreas.style.display ="inline";
		selAreas.disabled=false;
	}
}

// for only one value to be posted back
function SetChildSelector( selArea ){
	var selCountries = Gid( selArea.id.split("~@~")[0] );
	if ( selArea.value.length > 0 )
		selCountries.disabled=true;
	else 
		selCountries.disabled=false;	
}

function SubmitForm ( xsFormID, arrRequiredFields ) {
//	alert ( Gid( xsFormID ) );
	var xiRequiredFieldsValid = 0;
	for (var i=0; i != arrRequiredFields.length; i++ ){
		var xasFi = arrRequiredFields [ i ].split("~*~") ;
		if ( gbFormIsValidated ) 
			if ( xasFi[1] == "radio" || xasFi[1] == "checkbox"  )
				xiRequiredFieldsValid += ValidateRequired ( xasFi[0], 0, true );
			else 
				xiRequiredFieldsValid += ValidateRequired ( xasFi[0] );	 
	}
	if ( gbFormIsValidated && xiRequiredFieldsValid == arrRequiredFields.length )
		Gid( xsFormID ).submit();
}
var gbFormIsValidated = true;
function _SetErrorLabel( xbIsValid, xsFieldID ){
//	alert (  xbIsValid +":"+ xsFieldID + Gid( "err_"+ xsFieldID ) );
	gbFormIsValidated = xbIsValid; 
	if ( xbIsValid ) {
		if ( Gid( "err_"+ xsFieldID ) != null )
			Gid( "err_"+ xsFieldID ).style.color = "black";
			Gid( "err_"+ xsFieldID ).style.display = "none";
			Gid( "err_"+ xsFieldID ).style.fontWeight = "normal";
	}
	else {
		if ( Gid( "err_"+ xsFieldID ) != null ){
			Gid( "err_"+ xsFieldID ).style.color = "red";
			Gid( "err_"+ xsFieldID ).style.display = "inline";
			Gid( "err_"+ xsFieldID ).style.fontWeight = "bold";
			}
	}
	return Number ( xbIsValid ) ; 
}

function ClearElementTags( xsFieldID ) {
	var reIsTag = new RegExp("<[a-zA-Z]+.*","gi");
	if ( Gid( xsFieldID ) != null ) 
		Gid( xsFieldID ).value = RemoveTags( Gid( xsFieldID ).value );
}
function RemoveTags ( strIn ) {
	return strIn.replace(/</gi, "&lt;").replace(/>/gi, "&gt;");
}
function ValidateRequired ( xsFieldID, xiRequiredLength, xbIsList ){ 
	gbFormIsValidated = false;
	if ( xiRequiredLength == null ) xiRequiredLength = 0;
	if ( xbIsList ) { 
		// xsFieldID is actually the 'name' in that case 
		var arrOptions = document.getElementsByName( xsFieldID ); 
		for (var i=0; i != arrOptions.length; i++ ){
			if ( arrOptions[i].checked ) {
				return _SetErrorLabel ( true, xsFieldID ) ;
			}
		}
	}
	
	return _SetErrorLabel ( GetVal( xsFieldID ).length > xiRequiredLength, xsFieldID ) ;
}
function ValidateNumeric ( xsFieldID, xibIsRequired ){ 
	Gid( xsFieldID ).value = KReplace( KReplace ( GetVal( xsFieldID ), " ", ""), ",", "." );
//	alert ( !isNaN ( GetVal( xsFieldID ) ) ) && (  xibIsRequired!=1 || GetVal( xsFieldID ).length > 0 );
	return _SetErrorLabel (	   ( !isNaN ( GetVal( xsFieldID ) ) ) 
							&& (  xibIsRequired!=1 || GetVal( xsFieldID ).length > 0 ), xsFieldID ) ;
}
function ValidateEmail ( xsFieldID, xibIsRequired ){
	var reIsEmail = new RegExp("^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$","gi");
	return _SetErrorLabel( reIsEmail.test( GetVal( xsFieldID ) ), xsFieldID );
}
function ValidatePic ( xsFieldID ){ 
	var reIsPic = new RegExp("(\.(jpg)|(gif)|(png))$","gi");
	return _SetErrorLabel( reIsPic.test( GetVal( xsFieldID ) ), xsFieldID );
}
function ValidateDoc ( xsFieldID ){ 
	var reIsDoc = new RegExp("(\.(doc)|(rtf)|(pdf))$","gi");
	return _SetErrorLabel( reIsDoc.test( GetVal( xsFieldID ) ), xsFieldID );
}

function _CheckPassword ( xsPassword ) {
	var rePasswValid = new RegExp( "[a-zA-Z0-9]{6,}","gi");
	var rePasswNotValid = new RegExp( "[^a-zA-Z0-9]","gi");
	var bYes =  rePasswValid.test( GetVal( "password1" ) ) ;
	var bNo =  rePasswNotValid.test( GetVal( "password1" ) ) ;
	return ( bYes && ( ! bNo ) );
}
function ValidatePassword (  ){	
	_SetErrorLabel ( _CheckPassword( GetVal( "password1" ) ), "password1" ) ;
	if ( _CheckPassword( GetVal( "password1" ) ) )
		Gid("ok_password1").style.display = "";
	else
		Gid("ok_password1").style.display = "none"; 
		
	_SetErrorLabel ( GetVal( "password1" ) == GetVal( "password2" ) 
						&& _CheckPassword( GetVal( "password2" ) ), "password2" ) ;
						
	if ( GetVal( "password1" ) == GetVal( "password2" ) && _CheckPassword( GetVal( "password2" ) ) )
		Gid("ok_password2").style.display = "";
	else
		Gid("ok_password2").style.display = "none"; 

}
function OpenCalendar( xsFieldID ) {
	Gid( xsFieldID +"_cal").src = "misc/calendar.aspx?field="+ xsFieldID +"&cal_date="+ GetVal( xsFieldID );
	Gid( xsFieldID +"_cal").style.display = "block";
}

function enforceLength ( xoTarget, xiMaxLength) {
	if ( xoTarget.value.length > xiMaxLength )
		xoTarget.value = xoTarget.value.substr(0, xiMaxLength ); 
}

