function ContactManagerFindControls(ctrlid){
	var ctrls = eval( ctrlid + "_ctrls" );
	var ctrl = new Object();
	
	ctrl.rbNewContact = findObj( ctrls[ 0 ] );
	ctrl.rbPresentContact = findObj( ctrls[ 1 ] );
	ctrl.ddlContacts = findObj( ctrls[ 2 ] );
	ctrl.cceContactId = ctrls[ 3 ];
	ctrl.hiContactIndex = findObj( ctrls[ 4 ] );
	
	return ctrl;
}

function ContactManagerChangeContact(ctrlid,contactindex){
	var ctrls = eval( ctrlid + "_ctrls" );
	var hiContactIndex = findObj( ctrls[ 4 ] );

	if(hiContactIndex.value==contactindex) return;
	
	ContactManagerSetContact(ctrlid,contactindex,false);
}

function ContactManagerSetContact(ctrlid,contactindex,isStartupInit){
	var ctrls = eval( ctrlid + "_ctrls" );
	var infos = eval( ctrlid + "_infos" );
	var init = eval( ctrlid + "_init" );
	var hiContactIndex = findObj( ctrls[ 4 ] );
	var contactEnabled = "1";

	if (contactindex != 0) {
	    var info = infos[contactindex];

	    contactEnabled = info[19];

	    var copy = new Array();

	    for (i = 0; i < info.length; i++) copy[i] = info[i];

	    ContactCardEditSetInfo(ctrls[3], copy);
	}
	else {
	    if (init[2] && !isStartupInit) ContactManagerClearInfo(ctrlid);

	    if (isStartupInit && init[3] != null) 
	    {
	        var info = init[3];
	        
	        var copy = new Array();

	        for (i = 0; i < info.length; i++) copy[i] = info[i];

	        ContactCardEditSetInfo(ctrls[3], copy);
	    }
	}
		
	hiContactIndex.value = contactindex;
	
	if(!init[1]){
		var ctrlEnabled = ContactCardEditIsEnabled(ctrls[ 3 ]);
		var needEnabled = contactEnabled == "1";
		if(ctrlEnabled!=needEnabled) ContactCardEditChangeEnabled(ctrls[ 3 ],needEnabled);
	}
	
	ContactCardEditChangeSignatureEnabled(ctrls[ 3 ], contactindex == 0);
}

function ContactManagerChangePresent(ctrlid,contactindex){
	var ctrl = ContactManagerFindControls(ctrlid);
	
	ContactManagerChangeContact(ctrlid,contactindex);
	
	if(ctrl.rbNewContact!=null) ctrl.rbNewContact.checked = false;
	if(ctrl.rbPresentContact!=null) ctrl.rbPresentContact.checked = true;
}

function ContactManagerSelectPresent(ctrlid){
	var ctrls = eval( ctrlid + "_ctrls" );
	var ddlContacts = findObj( ctrls[ 2 ] );
	
	index = ddlContacts != null ? ddlContacts.selectedIndex : 0;
	
	ContactManagerChangePresent(ctrlid,index+1);
}

function ContactManagerSelectNew(ctrlid){
	ContactManagerChangeContact(ctrlid,0);
}

function ContactManagerClearInfo(ctrlid){
	var ctrl = ContactManagerFindControls(ctrlid);
	
	if(ctrl.rbNewContact!=null) ctrl.rbNewContact.checked = true;
	if(ctrl.rbPresentContact!=null) ctrl.rbPresentContact.checked = false;
	
	ctrl.hiContactIndex.value = 0;

	var infos = eval( ctrlid + "_infos" );
	var info = infos[0];
	var copy = new Array();
	
	for(i=0;i<info.length;i++) copy[i]=info[i];
	
	ContactCardEditSetInfo(ctrl.cceContactId,copy);

	var ctrlEnabled = ContactCardEditIsEnabled(ctrl.cceContactId);
	if(!ctrlEnabled) ContactCardEditChangeEnabled(ctrl.cceContactId,true);
}

function ContactManagerChangeCopyCheckBox(fromctrlid,toctrlid,checked){
	ContactManagerClearInfo(toctrlid);
	
	if(checked){
		ContactManagerCopyInfoInternal(fromctrlid,toctrlid);
	}
}

function ContactManagerCopyInfoInternal(fromctrlid,toctrlid){
	var ctrls = eval( fromctrlid + "_ctrls" );
	var info = ContactCardEditExtractInfo(ctrls[ 3 ]);
	var copy = new Array();
	
	for(i=0;i<info.length;i++) copy[i]=info[i];
	
	copy.shift();
	
	var ctrls = eval( toctrlid + "_ctrls" );
	ContactCardEditSetInfo(ctrls[ 3 ],copy);
}

function ContactManagerCopyInfo(fromctrlid,toctrlid){
	ContactManagerClearInfo(toctrlid);
	ContactManagerCopyInfoInternal(fromctrlid,toctrlid);
}

function ContactManagerStartUp(ctrlid){
	
	var ctrls = eval( ctrlid + "_ctrls" );
	var hiContactIndex = findObj( ctrls[ 4 ] );
	
	ContactCardEditStartUp(ctrls[ 3 ],true);

	ContactManagerSetContact(ctrlid,hiContactIndex.value,true);
}