function ContactCardEditFindControls(ctrlid){
	var ctrls = eval( ctrlid + "_ctrls" );
	var ctrl = new Object();
	
	ctrl.mlrPhoneMaskId = ctrls[ 0 ];
	ctrl.aceAddressId = ctrls[ 1 ];
	ctrl.cbIsActive = findObj( ctrls[ 2 ] );
	ctrl.cbIsCommon = findObj( ctrls[ 3 ] );
	ctrl.txtCompany = findObj( ctrls[ 4 ] );
	ctrl.txtFirstName = findObj( ctrls[ 5 ] );
	ctrl.txtLastName = findObj( ctrls[ 6 ] );
	ctrl.txtDepartment = findObj( ctrls[ 7 ] );
	ctrl.txtCustomerPO = findObj( ctrls[ 8 ] );
	ctrl.txtCustomerNumber = findObj( ctrls[ 9 ] );
	ctrl.hiLayerIndex = findObj( ctrls[ 10 ] );
	ctrl.hiEnabled = findObj( ctrls[ 11 ] );
	ctrl.txtSignature = findObj( ctrls[ 12 ] );
	ctrl.hiEditingMode = findObj( ctrls[ 13 ] );
	
	return ctrl;
}

function ContactCardEditOnChangeCountry(ctrlid,id,ziplenght,phonemask,countryindex){
	var ctrls = eval( ctrlid + "_ctrls" );
	var indexes = eval( ctrlid + "_layer_ind" );
	var hiLayerIndex = findObj( ctrls[ 10 ] );
	
	var layerIndex = parseInt(indexes[countryindex]);
	
	if( layerIndex == hiLayerIndex.value ) return;
	
	phone = ContactCardEditGetLayerTextBoxValue( ctrlid, hiLayerIndex.value, 0 );
	workphone = ContactCardEditGetLayerTextBoxValue( ctrlid, hiLayerIndex.value, 1 );
	fax = ContactCardEditGetLayerTextBoxValue( ctrlid, hiLayerIndex.value, 2 );
	
	if( ctrls[ 0 ] != null && ctrls[ 0 ] != '' )	
	{
	    changeLayer( ctrls[ 0 ], layerIndex );
    	
	    ContactCardEditSetLayerTextBoxValue( ctrlid, layerIndex, 0, phone );
	    ContactCardEditSetLayerTextBoxValue( ctrlid, layerIndex, 1, workphone );
	    ContactCardEditSetLayerTextBoxValue( ctrlid, layerIndex, 2, fax );
	}
		
	hiLayerIndex.value = layerIndex;
}

function ContactCardEditGetLayerTextBoxValue( ctrlid, layerIndex, tbIndex )
{
	var fmt = eval( ctrlid + "_fmt_text" );
	var index = layerIndex*3+tbIndex;
	ctrl = findObj( fmt[index] );
	if(ctrl==null) return "";
	return GetFormatTextBoxValue( ctrl );
}

function ContactCardEditSetLayerTextBoxValue( ctrlid, layerIndex, tbIndex, value )
{
	var fmt = eval( ctrlid + "_fmt_text" );
	var index = layerIndex*3+tbIndex;
	ctrl = findObj( fmt[index] );
	if(ctrl==null) return;
	SetFormatTextBoxValue( value, ctrl );
}

function ContactCardEditChangeEnabledInternal(ctrlid,enabled){
	var ctrl = ContactCardEditFindControls(ctrlid);

	LocationInfoEditControlChangeEnabled(ctrl.txtSignature,enabled);
	LocationInfoEditControlChangeEnabled(ctrl.txtCompany,enabled);
	
	if( ( ContactCardEditEditingMode(ctrlid) & 1 ) == 0 )
	{
	    LocationInfoEditControlChangeEnabled(ctrl.txtFirstName,enabled);
	    LocationInfoEditControlChangeEnabled(ctrl.txtLastName,enabled);
	}

	if( ( ContactCardEditEditingMode(ctrlid) & 2 ) == 0 ) 
	{
	    LocationInfoEditControlChangeEnabled(ctrl.txtDepartment, enabled);
	}
	
	LocationInfoEditControlChangeEnabled(ctrl.txtCustomerNumber,enabled);
	
	if( ctrl.mlrPhoneMaskId != null && ctrl.mlrPhoneMaskId != '' )	
	{
	    var fmt = eval( ctrlid + "_fmt_text" );
	    for(i=0;i<fmt.length;i++){
		    fmtCtrl = findObj( fmt[i] );
		    if(fmtCtrl!=null) SetFormatTextBoxDisabled( !enabled, fmtCtrl );
	    }
	}
	
	ctrl.hiEnabled.value = enabled;
}

function ContactCardEditIsEnabled(ctrlid){
	var ctrls = eval( ctrlid + "_ctrls" );
	hiEnabled = findObj( ctrls[ 11 ] );
	return hiEnabled.value == "true";
}

function ContactCardEditEditingMode(ctrlid){
	var ctrls = eval( ctrlid + "_ctrls" );
	hiEditingMode = findObj( ctrls[ 13 ] );
	return hiEditingMode.value;
}

function ContactCardEditChangeEnabled(ctrlid,enabled){
	var ctrls = eval( ctrlid + "_ctrls" );

	ContactCardEditChangeEnabledInternal(ctrlid,enabled);
	AddressCardEditChangeEnabled(ctrls[1],enabled);
}

function ContactCardEditStartUp(ctrlid,enabled)
{
	var ctrls = eval( ctrlid + "_ctrls" );
	
	if(!enabled){
		ContactCardEditChangeEnabledInternal(ctrlid,enabled);
	}
	
	AddressCardEditStartUp(ctrls[1],enabled);
}

function ContactCardEditCheckBoxGetValue(ctrl){
	if(ctrl==null || !ctrl.checked) return "0";
	return "1";
}

function ContactCardEditCheckBoxSetValue(ctrl,value){
	if(ctrl==null) return;
	ctrl.checked = value == "1";
}

function ContactCardEditExtractInfo(ctrlid){
	var ctrl = ContactCardEditFindControls(ctrlid);

    var phone = '';
    var workphone = '';
    var fax = '';

	if( ctrl.mlrPhoneMaskId != null && ctrl.mlrPhoneMaskId != '' )	
	{
	    phone = ContactCardEditGetLayerTextBoxValue( ctrlid, ctrl.hiLayerIndex.value, 0 );
	    workphone = ContactCardEditGetLayerTextBoxValue( ctrlid, ctrl.hiLayerIndex.value, 1 );
	    fax = ContactCardEditGetLayerTextBoxValue( ctrlid, ctrl.hiLayerIndex.value, 2 );
	}
	
	var info = new Array(
		ctrl.cbIsActive != null ? ctrl.cbIsActive.checked : true,
		ContactCardEditCheckBoxGetValue(ctrl.cbIsActive),
		ContactCardEditCheckBoxGetValue(ctrl.cbIsCommon),
		LocationInfoEditControlGetValue(ctrl.txtSignature),
		LocationInfoEditControlGetValue(ctrl.txtCompany),
		LocationInfoEditControlGetValue(ctrl.txtFirstName),
		LocationInfoEditControlGetValue(ctrl.txtLastName),
		LocationInfoEditControlGetValue(ctrl.txtDepartment),
		LocationInfoEditControlGetValue(ctrl.txtCustomerNumber),
		LocationInfoEditControlGetValue(ctrl.txtCustomerPO),
		phone, workphone, fax
	);
	
	return info.concat( AddressCardEditExtractInfo(ctrl.aceAddressId) );
}

function ContactCardEditSetInfo(ctrlid,info){
	var ctrl = ContactCardEditFindControls(ctrlid);
	
	ContactCardEditCheckBoxSetValue(ctrl.cbIsActive,info.shift());
	ContactCardEditCheckBoxSetValue(ctrl.cbIsCommon,info.shift());
	LocationInfoEditControlSetValue(ctrl.txtSignature,info.shift());
	LocationInfoEditControlSetValue(ctrl.txtCompany,info.shift());
	LocationInfoEditControlSetValue(ctrl.txtFirstName,info.shift());
	LocationInfoEditControlSetValue(ctrl.txtLastName,info.shift());
	LocationInfoEditControlSetValue(ctrl.txtDepartment,info.shift());
	LocationInfoEditControlSetValue(ctrl.txtCustomerNumber,info.shift());
	LocationInfoEditControlSetValue(ctrl.txtCustomerPO,info.shift());

	var phone = info.shift();
	var workphone = info.shift();
	var fax = info.shift();
	
	AddressCardEditSetInfo(ctrl.aceAddressId,info);

	if( ctrl.mlrPhoneMaskId != null && ctrl.mlrPhoneMaskId != '' )	
	{
	    ContactCardEditSetLayerTextBoxValue( ctrlid, ctrl.hiLayerIndex.value, 0, phone );
	    ContactCardEditSetLayerTextBoxValue( ctrlid, ctrl.hiLayerIndex.value, 1, workphone );
	    ContactCardEditSetLayerTextBoxValue( ctrlid, ctrl.hiLayerIndex.value, 2, fax );
	}
}

function ContactCardEditChangeSignatureEnabled(ctrlid,enabled){
	var ctrl = ContactCardEditFindControls(ctrlid);
	LocationInfoEditControlChangeEnabled(ctrl.txtSignature,enabled);

	if(enabled)	{
		LocationInfoEditControlSetValue(ctrl.txtSignature,'');
	}
}
