/* PRINT SELECTOR */

printSelector = function() {
    if($('result_type_organisation').checked) {
	printOrgs.print();
    }
        
    if($('result_type_individual').checked) {
	printIndvs.print();
    }
}
    
    
printAllSelector = function() {
    if($('result_type_organisation').checked) {
	printOrgs.tempOrgs = printOrgs.orgs;
	printOrgs.orgs = $('printorgs_orgsidlist').value.split(',');
	printOrgs.refreshCheckboxes();
	printOrgs.print(true);
    }
        
    if($('result_type_individual').checked) {
	printIndvs.tempIndvs = printIndvs.indvs;
	printIndvs.indvs = $('printindvs_indvsidlist').value.split(',');
	printIndvs.refreshCheckboxes();
	printIndvs.print(true);
    }
        
		
}

printAllValidatedSelector = function() {
    if($('result_type_organisation').checked) {
	printOrgs.tempOrgs = printOrgs.orgs;
	printOrgs.orgs = $('printorgs_orgsidlist').value.split(',');
	printOrgs.refreshCheckboxes();
	printOrgs.printValidated(true);
    }

    if($('result_type_individual').checked) {
	printIndvs.tempIndvs = printIndvs.indvs;
	printIndvs.indvs = $('printindvs_indvsidlist').value.split(',');
	printIndvs.refreshCheckboxes();
	printIndvs.printValidated(true);
    }


}

/* END PRINT SELECTOR */





/* PRINT INDVS */
printIndvs = function(){}
printIndvs.indvs = new Array();
printIndvs.tempIndvs = new Array();
printIndvs.clear = function() {
    printIndvs.indvs = new Array();
    printIndvs.refreshCheckboxes();
}
printIndvs.rollback = function() {
    printIndvs.indvs = printIndvs.tempIndvs;
    printIndvs.tempIndvs = new Array();
    printIndvs.refreshCheckboxes();
}
printIndvs.update = function(oCheckbox) {
    if(oCheckbox.checked) {
	if(!PHP.in_array(oCheckbox.value, printIndvs.indvs)) {
	    printIndvs.indvs.push(oCheckbox.value);
	}
    } else {
	if(PHP.in_array(oCheckbox.value, printIndvs.indvs)) {
	    var newIndvs = new Array();
	    for(var i in printIndvs.indvs) {
		if(printIndvs.indvs[i] != oCheckbox.value) {
		    newIndvs.push(printIndvs.indvs[i]);
		}
	    }
	    printIndvs.indvs = newIndvs;
	}
    }
}
printIndvs.refreshCheckboxes = function() {
    if($('directoryresults') != null) {
	var inputs = $('directoryresults').getElementsByTagName('input');
        
	for(var i in inputs) {
	    var input = inputs[i];
	    if(input && input.type == 'checkbox') {
		if(PHP.in_array(input.value, printIndvs.indvs)) {
		    input.checked = true;
		} else {
		    input.checked = false;
		}
	    }
	}
    }
}
printIndvs.print = function(isAll) {
    if(!isAll) isAll = false;
    var indvs = printIndvs.indvs;
    var count = indvs.length;
    if(count == 0) {
	alert('You need to tick at least one contact in order to print their details');
    } else {
	var indv = count==1 ? 'this contact?' : 'these '+count+' contacts?';
	if(confirm('Are you sure you want to print details for '+indv)) {
	    var href = 'admin_dashboard_print_results_contacts.html';
	   
	    var myform = document.createElement("form");
	    document.body.appendChild(myform);
	    myform.action = href;
	    myform.method = "post";

	   
	    for(var i in indvs) {
		var input = document.createElement("input");
		input.setAttribute("type", "hidden");
		input.setAttribute("name", "individuals_ids[]");
		input.setAttribute("value", indvs[i]);
		myform.appendChild(input);
	   
	    }
	   
	    myform.submit();


	} else {
	    if(isAll) {
		printIndvs.rollback();
	    }
	}
    }
}


printIndvs.printValidated = function(isAll) {
    if(!isAll) isAll = false;
    var indvs = printIndvs.indvs;
    var count = indvs.length;
    if(count == 0) {
	alert('You need to tick at least one contact in order to print their details');
    } else {
	var indv = count==1 ? 'this contact?' : 'these '+count+' contacts?';
	if(confirm('Are you sure you want to print details for '+indv)) {
	    var href = 'admin_dashboard_print_results_contacts.html';

	    var myform = document.createElement("form");
	    document.body.appendChild(myform);
	    myform.action = href;
	    myform.method = "post";


	    for(var i in indvs) {
		var input = document.createElement("input");
		input.setAttribute("type", "hidden");
		input.setAttribute("name", "individuals_ids[]");
		input.setAttribute("value", indvs[i]);
		myform.appendChild(input);

	    }
	    input = document.createElement("input");
	    input.setAttribute("type", "hidden");
	    input.setAttribute("name", "validated");
	    input.setAttribute("value", "1");
	    myform.appendChild(input);
	    myform.submit();


	} else {
	    if(isAll) {
		printIndvs.rollback();
	    }
	}
    }
}


printIndvs.printAll = function() {
    printIndvs.tempIndvs = printIndvs.indvs;
    printIndvs.indvs = $('printindvs_indvsidlist').value.split(',');
    printIndvs.refreshCheckboxes();
    printIndvs.print(true);
}
/* END PRINT INDVS */




/* PRINT ORGS */
printOrgs = function(){}
printOrgs.orgs = new Array();
printOrgs.tempOrgs = new Array();
printOrgs.clear = function() {
    printOrgs.orgs = new Array();
    printOrgs.refreshCheckboxes();
}
printOrgs.rollback = function() {
    printOrgs.orgs = printOrgs.tempOrgs;
    printOrgs.tempOrgs = new Array();
    printOrgs.refreshCheckboxes();
}
printOrgs.update = function(oCheckbox) {
    if(oCheckbox.checked) {
	if(!PHP.in_array(oCheckbox.value, printOrgs.orgs)) {
	    printOrgs.orgs.push(oCheckbox.value);
	}
    } else {
	if(PHP.in_array(oCheckbox.value, printOrgs.orgs)) {
	    var newOrgs = new Array();
	    for(var i in printOrgs.orgs) {
		if(printOrgs.orgs[i] != oCheckbox.value) {
		    newOrgs.push(printOrgs.orgs[i]);
		}
	    }
	    printOrgs.orgs = newOrgs;
	}
    }
}
printOrgs.refreshCheckboxes = function() {
    if($('directoryresults') != null) {
	var inputs = $('directoryresults').getElementsByTagName('input');
        
	for(var i in inputs) {
	    var input = inputs[i];
	    if(input && input.type == 'checkbox') {
		if(PHP.in_array(input.value, printOrgs.orgs)) {
		    input.checked = true;
		} else {
		    input.checked = false;
		}
	    }
	}
    }
}
printOrgs.print = function(isAll) {
    if(!isAll) isAll = false;
    var orgs = printOrgs.orgs;
    var count = orgs.length;
    if(count == 0) {
	alert('You need to tick at least one organisation in order to print their details');
    } else {
	var org = count==1 ? 'this organisation?' : 'these '+count+' organisations?';
	if(confirm('Are you sure you want to print details for '+org)) {
	    var href = 'admin_dashboard_print_results_all.html';
	    var myform = document.createElement("form");
	    document.body.appendChild(myform);
	    myform.action = href;
	    myform.method = "post";
	    
	    //var separator = '?';
	    for(var i in orgs) {
		var input = document.createElement("input");
		input.setAttribute("type", "hidden");
		input.setAttribute("name", "organisation_ids[]");
		input.setAttribute("value", orgs[i]);
		myform.appendChild(input);
	    //href += separator + 'organisation_ids[]='+orgs[i];
	    //separator = '&';
	    }
	    //location.href = href;
	    myform.submit();
	} else {
	    if(isAll) {
		printOrgs.rollback();
	    }
	}
    }
}

printOrgs.printValidated = function(isAll) {
    if(!isAll) isAll = false;
    var orgs = printOrgs.orgs;
    var count = orgs.length;
    if(count == 0) {
	alert('You need to tick at least one organisation in order to print their details');
    } else {
	var org = count==1 ? 'this organisation?' : 'these '+count+' organisations?';
	if(confirm('Are you sure you want to print details for '+org)) {
	    var href = 'admin_dashboard_print_results_all.html';
	    var myform = document.createElement("form");
	    document.body.appendChild(myform);
	    myform.action = href;
	    myform.method = "post";

	    //var separator = '?';
	    for(var i in orgs) {
		var input = document.createElement("input");
		input.setAttribute("type", "hidden");
		input.setAttribute("name", "organisation_ids[]");
		input.setAttribute("value", orgs[i]);
		myform.appendChild(input);
	    //href += separator + 'organisation_ids[]='+orgs[i];
	    //separator = '&';
	    }
	    input = document.createElement("input");
	    input.setAttribute("type", "hidden");
	    input.setAttribute("name", "validated");
	    input.setAttribute("value", "1");
	    myform.appendChild(input);
	    //location.href = href;
	    myform.submit();
	} else {
	    if(isAll) {
		printOrgs.rollback();
	    }
	}
    }
}

printOrgs.printAll = function() {
    printOrgs.tempOrgs = printOrgs.orgs;
    printOrgs.orgs = $('printorgs_orgsidlist').value.split(',');
    printOrgs.refreshCheckboxes();
    printOrgs.print(true);
}
/* END PRINT ORGS */

loadResults = function(noPage) {
    
    if(!noPage)	{
	var noPage = 1;
	var sharp = location.href.indexOf('#page');
	if(sharp != -1) {
	    noPage = location.href.substring(sharp+5) / 1;
	}
    }
    if(noPage/1<1) noPage=1;
	
    var ajax = new AjaxManager();
    ajax.setVar('page','directory_getresults');
    ajax.setVar('no_page',noPage);
    ajax.setVar('nb_results_per_page',$('number_results').value);
    ajax.setVar('keyword',$('keyword').value);
    ajax.setVar('result_type_organisation',$('result_type_organisation').checked);
    ajax.setVar('result_type_individual',$('result_type_individual').checked);
    
    for (i = 1; i <= nareas; i++)
    {
	var areaname = 'area'+i;
	var areaselect = document.getElementById(areaname);
	var areasparameter = '';
        
	for(index = 0; index < areaselect.options.length; index++) {
	    if(areaselect.options[index].selected) {
		areasparameter = areasparameter + areaselect.options[index].value + ",";
	    }
	}
	
        
        
	//document.getElementById(areaname).options[document.getElementById(areaname).selectedIndex].setAttribute('selected', 'selected');
        
	ajax.setVar('areasfilter', areasparameter);
    }
    
    
    for (i = 1; i <= nmediatypes; i++)
    {
	var mediatypename = 'mediatype'+i;
	var mediatypeselect = document.getElementById(mediatypename);
	var mediatypesparameter = '';
        
	for(index = 0; index < mediatypeselect.options.length; index++) {
	    if(mediatypeselect.options[index].selected) {
		mediatypesparameter = mediatypesparameter + mediatypeselect.options[index].value + ",";
	    }
	}
        
        
	//document.getElementById(mediatypename).options[document.getElementById(mediatypename).selectedIndex].setAttribute('selected', 'selected');
	ajax.setVar('mediatypesfilter', mediatypesparameter);
    }
	
	
    
    
   
    for (i = 1; i <= nexperttypes; i++)
    {
	var experttypename = 'experttype'+i;
	var experttypeselect = document.getElementById(experttypename);
	var experttypesparameter = '';
        
	for(index = 0; index < experttypeselect.options.length; index++) {
	   
	   if(experttypeselect.options[index].selected) {
		experttypesparameter = experttypesparameter + experttypeselect.options[index].value + ",";
		
	    }
	}
      
        
	//document.getElementById(experttypename).options[document.getElementById(experttypename).selectedIndex].setAttribute('selected', 'selected');
	//ß alert('ici'+experttypesparameter);  
	ajax.setVar('experttypesfilter', experttypesparameter);
    }
    
    
    for (i = 1; i <= ncompanysections; i++)
    {
	var companysectionname = 'companysection'+i;
	var companysectionselect = document.getElementById(companysectionname);
	var companysectionsparameter = '';
        
	for(index = 0; index < companysectionselect.options.length; index++) {
	    if(companysectionselect.options[index].selected) {
		companysectionsparameter = companysectionsparameter + companysectionselect.options[index].value + ",";
	    }
	}
        
        
	//document.getElementById(companysectionname).options[document.getElementById(companysectionname).selectedIndex].setAttribute('selected', 'selected');
	ajax.setVar('companysectionsfilter', companysectionsparameter);
    }
    
    
    for (i = 1; i <= ndirectorysections; i++)
    {
	var directorysectionname = 'directorysection'+i;
	var directorysectionselect = document.getElementById(directorysectionname);
	var directorysectionsparameter = '';
        
	for(index = 0; index < directorysectionselect.options.length; index++) {
	    if(directorysectionselect.options[index].selected) {
		directorysectionsparameter = directorysectionsparameter + directorysectionselect.options[index].value + ",";
	    }
	}
        
        
	//document.getElementById(directorysectionname).options[document.getElementById(directorysectionname).selectedIndex].setAttribute('selected', 'selected');
	ajax.setVar('directorysectionsfilter', directorysectionsparameter);
    }
	
	
	for (i = 1; i <= nactivesections; i++)
    {
	var directorysectionname = 'activesection'+i;
	var directorysectionselect = document.getElementById(directorysectionname);
	var directorysectionsparameter = '';
        
	for(index = 0; index < directorysectionselect.options.length; index++) {
	    if(directorysectionselect.options[index].selected) {
		directorysectionsparameter = directorysectionsparameter + directorysectionselect.options[index].value + ",";
	    }
	}
        
        
	//document.getElementById(directorysectionname).options[document.getElementById(directorysectionname).selectedIndex].setAttribute('selected', 'selected');
	ajax.setVar('activesectionsfilter', directorysectionsparameter);
	//alert(directorysectionsparameter);
    }
    
    
    for (i = 1; i <= nnationallocalsections; i++)
    {
	var nationallocalsectionname = 'nationallocalsection'+i;
	var nationallocalsectionselect = document.getElementById(nationallocalsectionname);
	var nationallocalsectionsparameter = '';
        
	for(index = 0; index < nationallocalsectionselect.options.length; index++) {
	    if(nationallocalsectionselect.options[index].selected) {
		nationallocalsectionsparameter = nationallocalsectionsparameter + nationallocalsectionselect.options[index].value + ",";
	    }
	}
        
        
	//document.getElementById(nationallocalsectionname).options[document.getElementById(nationallocalsectionname).selectedIndex].setAttribute('selected', 'selected');
	ajax.setVar('nationallocalsectionsfilter', nationallocalsectionsparameter);
    }
    
   
    
    ajax.setVar('nareas', nareas);
    ajax.setVar('njobtitles', njobtitles);
    ajax.setVar('nmediatypes', nmediatypes);
    ajax.setVar('ncompanysections', ncompanysections);
    ajax.setVar('ndirectorysections', ndirectorysections);
    ajax.setVar('nnationallocalsections', nnationallocalsections);
    // ajax.setVar('filtershtml',$('filters').innerHTML);
    
    ajax.onCompletion = function() {
        
	var text = ajax.response;
	var pos = text.indexOf('\n');
	var count = text.substring(0,pos);
	var table = text.substring(pos+1);
	var mdvalidpos = text.indexOf('mediadirectvalid');
	var mdnotvalidpos = text.indexOf('mediadirectnotvalid');
	var onclickFunc = '';
	if(mdvalidpos > 0) {
	    var posaux = table.indexOf('mediadirectvalid');
	    table = table.substring(0, posaux);
	    onclickFunc = 'openListMenu';
	}
        
	if(mdnotvalidpos > 0) {
	    var posaux = table.indexOf('mediadirectnotvalid');
	    table = table.substring(0, posaux);
	    onclickFunc = 'openListMenuFreeUser';
	}
        
	$('directory_results').innerHTML = table;
       
		
	if(count<1)	{
	    $('results_number').innerHTML = 'Sorry, no result found';
	    $('results_add').innerHTML = '';
	} else if(count==1) {
	    $('results_number').innerHTML = 'There was 1 result for &quot;'+ $('keyword').value+ '&quot;';
	    if($('result_type_individual').checked) {
		$('results_add').innerHTML = '<a href="#" onclick="'+onclickFunc+'(-1);return false"><img src="images/interface/add-grey.jpg" class="addicon" /> Add this result to a list</a>';
	    }
	} else {
	    $('results_number').innerHTML = 'There were '+count+' results for &quot;'+ $('keyword').value+'&quot;';
	    if($('result_type_individual').checked) {
		$('results_add').innerHTML = '<a href="#" onclick="'+onclickFunc+'(-1);return false"><img src="images/interface/add-grey.jpg" class="addicon" /> Add ' + count + ' results to a list</a>';
	    }
	}
		
	updatePager(count,noPage,$('number_results').value);
	printOrgs.refreshCheckboxes();
    }
    
    ajax.post();
	
}




removeContactFromList = function(contactid,listid) {
    var ajax = new AjaxManager();
    ajax.setVar('page','directory_removecontactfromlist');
    
    ajax.setVar('contactid', contactid);
    ajax.setVar('listid', listid);
    
    ajax.onCompletion = function() {
	var text = ajax.response;
	$('pop-up-list-item-'+listid).innerHTML = text;
    }
    ajax.post();
}





updatePager = function(nbResults,noPage,nbResultsPerPage) {

    var pager = $('directory_pager');
    var pager2 = $('directory_pager2');
    var header = '<p>';
    var footer = '</p><div class="clear"></div>';
    location.href = '#page'+noPage;
	
    var nbPages = PHP.ceil(nbResults / nbResultsPerPage);
	
    if(noPage>1) {
	var previous = '<span class="previous"><a href="#page'+(noPage-1)+'" onclick="loadResults('+(noPage-1)+');return false">&laquo;Previous</a></span>';
    } else {
	var previous = '<span class="previous">&laquo;Previous</span>';
    }
	
    if(noPage<nbPages) {
	var next = '<span class="next"><a href="#page'+(noPage+1)+'" onclick="loadResults('+(noPage+1)+');return false">Next&raquo;</a></span>';
    } else {
	var next = '<span class="next">Next&raquo;</span>';
    }
	
    var pagesList = '<span class="pagelist">';
    var start = noPage-5;
    if(start<1) start = 1;
    var end = start+11;
    if(end>nbPages) {
	end = nbPages+1;
	start = end-11;
    }
    if(start<1) {
	start = 1;
    }
	
    for(var i=start; i<end; ++i) {
	var selected = noPage==i ? 'class="active"' : '';
	pagesList += '<a '+selected+'href="#page'+i+'" onclick="loadResults('+i+');return false">'+i+'</a>';
    }
    pagesList += '</span>';
	
    pager.innerHTML = header + previous + pagesList + next + footer;
    pager2.innerHTML = pager.innerHTML;
	
}

/* Refine Company List */
refineCompanyList = function() {
    if(document.all) return;
    var ajax = new AjaxManager();
    ajax.setVar('page','directory_refinecompanylist');
    ajax.setVar('section_id',$('section_id').value);
    ajax.setVar('county_id',$('refine_county').value);
    ajax.setVar('companytype_id',$('refine_companytype').value);
    ajax.setVar('companysection_id',$('refine_companysection').value);
    ajax.onCompletion = function() {
	$('refine_company').innerHTML = ajax.response;
    }
    ajax.post();
}

/* ADD TO LIST */

var listLock = false;
var listOpenId = 0;

releaseListLock = function() {
    listLock = false;
}

setListLock = function() {
    listLock = true;
    setTimeout('releaseListLock()',100);
}

openListMenuUnregistred = function() {
    alert('You have to signup to use contact lists');
}

openListMenu = function(id, noemail) {
    setListLock();
    closeNote();
    oCloseListMenu();
    oCloseMediaListMenu();
    if(listOpenId==id) {
	closeListMenu();
	return;
    }
	
    listOpenId = id;
	
    var headline = '';
    var row = $('contactrow'+id);
    var table = $('aroundtable');
    var panel = $('listPanel');
    if(!panel) {
	panel = document.createElement('div');
	panel.id = 'listPanel';
	panel.className = 'listPanel';
	panel.onclick = function() {
	    setListLock();
	}
    }
	
    if(id < 1) {
	headline = 'Add this result list to:';
	row = $('results_add');
	table = $('aroundtable');
	panel.style.top = '-59px';
	panel.style.left = '250px';
	panel.style.zIndex = '1';
    } else {
	headline = 'Add this contact to:';
	panel.style.top = (row.offsetTop + 22) + 'px';
	panel.style.left = (row.offsetLeft + 272) + 'px';
    }
	
    var modelSelect = $('model_contactlists');
	
    var defaultValue = 'a new list';
    panel.innerHTML = '<h3>'+ headline +'</h3>';
    if(noemail) {
	panel.innerHTML += '<p class="top" style="color: #ff0000">This contact has no email address</p>';
    }
    panel.innerHTML += '<p class="top"><select id="listmenu_select">'+modelSelect.innerHTML+'</select><a href="#" onclick="addToList('+id+');return false" class"biggerf">Add</a></p>';
    panel.innerHTML += '<p class="bottom"><input id="listmenu_input" type="text" value="'+defaultValue+'" onfocus="if(this.value==\''+defaultValue+'\')this.value=\'\'" onblur="if(this.value==\'\')this.value=\''+defaultValue+'\'" /><a href="#" onclick="createListAndAdd('+id+');return false" class"biggerf">Create and Add</a></p>';
    panel.innerHTML += '<ul id="buttons"><li><img src="images/interface/button_close.jpg" class="addicon" /><a href="#" onclick="closeListMenu();return false;">Cancel</a></li></ul>';
    document.documentElement.onclick = function() {
	if(!listLock) {
	    closeListMenu();
	}
    }
	
    table.appendChild(panel);
}







openListMenuFreeUser = function(id) {
    setListLock();
    closeNote();
    oCloseListMenu();
    oCloseMediaListMenu();
    if(listOpenId==id) {
	closeListMenu();
	return;
    }
	
    listOpenId = id;
	
    var headline = '';
    var row = $('contactrow'+id);
    var table = $('aroundtable');
    var panel = $('listPanel');
    if(!panel) {
	panel = document.createElement('div');
	panel.id = 'listPanel';
	panel.className = 'listPanel3';
	panel.onclick = function() {
	    setListLock();
	}
    }
	
    if(id < 1) {
	headline = 'Add this result list to:';
	row = $('results_add');
	table = $('results_add');
	panel.style.top = '19px';
	panel.style.left = '-131px';
	panel.style.zIndex = '1';
    } else {
	headline = 'Add this contact to:';
	panel.style.top = (row.offsetTop + 22) + 'px';
	panel.style.left = (row.offsetLeft + 272) + 'px';
    }
	
    var modelSelect = $('model_contactlists');
	
    var defaultValue = 'a new list';
    panel.innerHTML = '<h3>'+ headline +'</h3>';
    panel.innerHTML += '<p>To use this function you will need to subscribe to <a style="color:#ff0000; text-decoration: underline;" href="media_direct.html">MediaDirect</a>. For more information please call us on (01) 473 2050 or email us on <a style="color:#ff0000; text-decoration: underline;" href="mailto:info@mediacontact.ie">info@mediacontact.ie</a>.</p>';
    panel.innerHTML += '<ul id="buttons"><li><img src="images/interface/button_close.jpg" class="addicon" /><a href="#" onclick="closeListMenu();return false;">Close</a></li></ul>';
    document.documentElement.onclick = function() {
	if(!listLock) {
	    closeListMenu();
	}
    }
	
    table.appendChild(panel);
}








closeListMenu = function() {
    var panel = $('listPanel');
    if(panel) {
	panel.parentNode.removeChild(panel);
	listOpenId = 0;
    }
}

addToList = function(contact_id) {
    var ajax = new AjaxManager();
    ajax.setVar('page','directory_addcontacttolist');
    ajax.setVar('contact_id',contact_id);
    ajax.setVar('list_id',$('listmenu_select').value);
    ajax.onCompletion = function() {
	closeListMenu();
	var response = ajax.response;
	if(response != "") {
	    alert(response);
	    return;
	}
	//useMediaListMenu(contact_id);
    loadResults(); 
    }
    ajax.run();
}

createListAndAdd = function(contact_id) {
    var ajax = new AjaxManager();
    ajax.setVar('page','directory_createlist');
    ajax.setVar('list_name',$('listmenu_input').value);
    ajax.onCompletion = function() {
	var id = ajax.response / 1;
	if(id==0) {
	    alert('it seems that you have already a list of this name');
	    return;
	}
		
	var modelSelect = $('model_contactlists');
	modelSelect.innerHTML += '<option value="'+id+'">'+$('listmenu_input').value+'</option>';
		
	var subAjax = new AjaxManager();
	subAjax.setVar('page','directory_addcontacttolist');
	subAjax.setVar('contact_id',contact_id);
	subAjax.setVar('list_id',id);
	subAjax.onCompletion = function() {
	    closeListMenu();
            
            
	   // useMediaListMenu(contact_id);
	loadResults();
	}
	subAjax.run();
    }
    ajax.run();
	
}

/* NOTE */

var noteLock = false;
var noteOpenId = 0;

releaseNoteLock = function() {
    noteLock = false;
}

setNoteLock = function() {
    noteLock = true;
    setTimeout('releaseNoteLock()',100);
}

openNoteUnregistred = function() {
    alert('You have to sign up to add a private note to this user');
}

openNote = function(id) {
    setNoteLock();
    closeListMenu();
    oCloseListMenu();
    oCloseMediaListMenu();
	
    if(noteOpenId==id) {
	closeNote();
	return;
    }
	
    noteOpenId = id;
	
    var row = $('contactrow'+id);
    var table = $('aroundtable');
    var panel = $('notePanel');
    if(!panel) {
	panel = document.createElement('div');
	panel.id = 'notePanel';
	panel.className = 'notePanel';
	panel.onclick = function() {
	    setNoteLock();
	}
    }
    panel.style.top = (row.offsetTop + 22) + 'px';
    panel.style.left = (row.offsetLeft + 124) + 'px';
	
    document.documentElement.onclick = function() {
	if(!noteLock) {
	    closeNote();
	}
    }
	
    var fullname = $('contactname'+id).value;
    var note = $('contactnote'+id).value;
    var date = $('contactnotedate'+id).value.substring(0,10);
    var datespan = date=='' ? '' : ' <span>edited on '+date+'</span>';
    panel.innerHTML = '<h3>Your private* note about '+fullname + datespan+'</h3>\n';
    panel.innerHTML += '<textarea id="noteinput'+id+'" onchange="saveNote('+id+')" onfocus="focusNoteInput('+id+')" onblur="blurNoteInput('+id+')">'+note+'</textarea>';
    panel.innerHTML += '<div>* Private note. Only viewable to you.</div>';
    panel.innerHTML += '<ul id="buttons"><li><img src="images/interface/button_save.jpg" class="addicon" /><a href="#" onclick="saveNote('+id+');closeNote();return false;">Save &amp; Close</a></li><li><img src="images/interface/button_close.jpg" class="addicon" /><a href="#" onclick="closeNote();return false;">Cancel</a></li></ul>';
	
    table.appendChild(panel);
}




openNoteFreeUser = function(id) {
    setNoteLock();
    closeListMenu();
    oCloseListMenu();
    oCloseMediaListMenu();
	
    if(noteOpenId==id) {
	closeNote();
	return;
    }
	
    noteOpenId = id;
	
    var row = $('contactrow'+id);
    var table = $('aroundtable');
    var panel = $('notePanel');
    if(!panel) {
	panel = document.createElement('div');
	panel.id = 'notePanel';
	panel.className = 'notePanelFreeUser';
	panel.onclick = function() {
	    setNoteLock();
	}
    }
    panel.style.top = (row.offsetTop + 22) + 'px';
    panel.style.left = (row.offsetLeft + 124) + 'px';
	
    document.documentElement.onclick = function() {
	if(!noteLock) {
	    closeNote();
	}
    }
	
    var fullname = $('contactname'+id).value;
    var note = $('contactnote'+id).value;
    var date = $('contactnotedate'+id).value.substring(0,10);
    var datespan = date=='' ? '' : ' <span>edited on '+date+'</span>';
    panel.innerHTML = '<h3>Your private note about '+fullname+'</h3>\n';
    panel.innerHTML += '<p>To use this function you will need to subscribe to <a style="color:#ff0000; text-decoration: underline;" href="media_direct.html">MediaDirect Plus</a>. For more information please call us on (01) 473 2050 or email us on <a style="color:#ff0000; text-decoration: underline;" href="mailto:info@mediacontact.ie">info@mediacontact.ie</a>.</p>';
    panel.innerHTML += '<ul id="buttons"><li><img src="images/interface/button_close.jpg" class="addicon" /><a href="#" onclick="closeNote();return false;">Close</a></li></ul>';
	
    table.appendChild(panel);
}










closeNote = function() {
    var panel = $('notePanel');
    if(panel) {
	panel.parentNode.removeChild(panel);
	noteOpenId = 0;
	loadResults();
    }
}

saveNote = function(id) {
    var text = $('noteinput'+id).value;

    var ajax = new AjaxManager();
    ajax.setVar('page','directory_setnote');
    ajax.setVar('contact_id',id);
    ajax.setVar('note',text);
    ajax.onCompletion = function() {
	if(text=='' || text==$('noteinput_defaultvalue').value) {
	    $('notelink'+id).className = 'new';
	    if($('contactnote'+id)) {
		$('contactnote'+id).value = $('noteinput_defaultvalue').value;
	    }
	    if($('contactnotedate'+id)) {
		$('contactnotedate'+id).value = '';
	    }
	} else {
	    $('notelink'+id).className = 'editcontact topp2';
	    $('notelink'+id).innerHTML = 'Edit note';
	    //alert('ici');
	    if($('contactnote'+id)) {
		$('contactnote'+id).value = text;
	    }
	    if($('contactnotedate'+id)) {
		$('contactnotedate'+id).value = ajax.response;
	    }
	}
    }
    ajax.run();
}

focusNoteInput = function(id) {
    var input = $('noteinput'+id);
    if(input.value == $('noteinput_defaultvalue').value) {
	input.value = '';
    }
}

blurNoteInput = function(id) {
    var input = $('noteinput'+id);
    if(input.value == '') {
	saveNote(id);
	input.value = $('noteinput_defaultvalue').value;
    }
}

/* 
 *
  *
   *
   * "o" prefix stands for Organisation
   *
  *
  *
  */

/* ADD TO LIST */

var oListLock = false;
var oListOpenId = 0;
var oRowId = 0;

oReleaseListLock = function() {
    oListLock = false;
}

oSetListLock = function() {
    oListLock = true;
    setTimeout('oReleaseListLock()',100);
}

oOpenListMenuUnregistred = function() {
    alert('You have to signup to use contact lists');
}

oOpenListMenu = function(id) {
    
    oSetListLock();
    closeNote();
    closeListMenu();
    oCloseMediaListMenu();
    if(oListOpenId==id) {
	oCloseListMenu();
	return;
    }
	
    oListOpenId = oRowId =id;
	
    var headline1 = '';
    var headline2 = '';
    var row = $('contactrow'+id);
    var table = $('aroundtable');
    var panel = $('orgListPanel');
    if(!panel) {
	panel = document.createElement('div');
	panel.id = 'orgListPanel';
	panel.className = 'orgListPanel';
	panel.onclick = function() {
	    oSetListLock();
	}
    }
	//alert(row+":"+id);
    headline1 = '1. Please select which contacts your want to add:';
    headline2 = '2. Add the selected contacts to:';
    panel.style.top = (row.offsetTop + 22) + 'px';
    panel.style.left = (row.offsetLeft + 172) + 'px';
	
    var modelSelect = $('model_contactlists');
	
    var ajax = new AjaxManager();
    ajax.setVar('page','directory_getcompanycontacts');
    ajax.setVar('company_id',id);
    ajax.onCompletion = function() {
	var checkboxes = ajax.response;
	var noContact = false;
	if(checkboxes.length<1) {
	    checkboxes = '<p>No contact found for this organisation</p>';
	    checkboxes += '<p><a href="#" onclick="oCloseListMenu();return false">Close this window</a></p>';
	    noContact = true;
	    panel.className = 'listPanel';
	}
		
	var defaultValue = 'a new list';
	panel.innerHTML = '<h3>'+ headline1 +'</h3>';
	panel.innerHTML += '<div>'+ checkboxes +'</div>';
		
	if(!noContact) {
	    panel.className = 'orgListPanel';
	    panel.innerHTML += '<h3 class="separator">'+ headline2 +'</h3>';
	    panel.innerHTML += '<p class="top"><select id="listmenu_select">'+modelSelect.innerHTML+'</select><a href="#" onclick="oAddToList('+id+');return false" class"biggerf">Add</a></p>';
	    panel.innerHTML += '<p class="bottom"><input id="listmenu_input" type="text" value="'+defaultValue+'" onfocus="if(this.value==\''+defaultValue+'\')this.value=\'\'" onblur="if(this.value==\'\')this.value=\''+defaultValue+'\'" /><a href="#" onclick="oCreateListAndAdd('+id+');return false" class"biggerf">Create and Add</a></p>';
	}
		
	document.documentElement.onclick = function() {
	    if(!oListLock) {
		oCloseListMenu();
	    }
	}
		
	table.appendChild(panel);
    }
    ajax.run();
}






oOpenListMenuFreeUser = function(id) {
    
    oSetListLock();
    closeNote();
    closeListMenu();
    oCloseMediaListMenu();
    if(oListOpenId==id) {
	oCloseListMenu();
	return;
    }
	
    oListOpenId = id;
	
    var headline1 = '';
    var headline2 = '';
    var row = $('contactrow'+id);
    var table = $('aroundtable');
    var panel = $('orgListPanel');
    if(!panel) {
	panel = document.createElement('div');
	panel.id = 'orgListPanel';
	panel.className = 'orgListPanel';
	panel.onclick = function() {
	    oSetListLock();
	}
    }
	
    headline1 = '1. Please select which contacts your want to add:';
    headline2 = '2. Add the selected contacts to:';
    panel.style.top = (row.offsetTop + 22) + 'px';
    panel.style.left = (row.offsetLeft + 172) + 'px';
	
    var modelSelect = $('model_contactlists');
	
    var ajax = new AjaxManager();
    ajax.setVar('page','directory_getcompanycontacts');
    ajax.setVar('company_id',id);
    ajax.onCompletion = function() {
	var checkboxes = ajax.response;
	var noContact = false;
	panel.className = 'listPanel3';
	var defaultValue = 'a new list';
	panel.innerHTML = '<h3>Add contacts to a media list</h3>';
	panel.innerHTML += '<p>To use this function you will need to subscribe to <a style="color:#ff0000; text-decoration: underline;" href="media_direct.html">MediaDirect</a>. For more information please call us on (01) 473 2050 or email us on <a style="color:#ff0000; text-decoration: underline;" href="mailto:info@mediacontact.ie">info@mediacontact.ie</a>.</p>';
	panel.innerHTML += '<ul id="buttons2"><li><img src="images/interface/button_close.jpg" class="addicon" /><a href="#" onclick="oCloseListMenu();return false;">Close</a></li></ul>';
	document.documentElement.onclick = function() {
	    if(!oListLock) {
		oCloseListMenu();
	    }
	}
		
	table.appendChild(panel);
    }
    ajax.run();
}







oCloseListMenu = function() {
    var panel = $('orgListPanel');
    if(panel) {
	panel.parentNode.removeChild(panel);
	oListOpenId = 0;
    }
}

oGetCheckedContacts = function() {
    var cids = new Array();
    var div = $('orgListPanel').getElementsByTagName('div')[0];
    var boxes = div.getElementsByTagName('input');
    for(var i in boxes) {
	if(boxes[i] && boxes[i].checked) {
	    cids.push(boxes[i].value);
	}
    }
    return cids;
}

oAddToList = function(contact_id) {
    var cids = oGetCheckedContacts();
    if(cids.length == 0) {
	alert('There is no contact checked');
	return;
    }
	
    var list = $('listmenu_select').value;
    if(list == 0) {
	alert('There is no medialist selected');
	return;
    }
	
    var ajax = new AjaxManager();
    ajax.setVar('page','directory_addseveralcontactstolist');
    ajax.setVar('cids',cids);
    ajax.setVar('list_id',list);
    ajax.onCompletion = function() {
	oCloseListMenu();
	var response = ajax.response;
	if(response != "") {
	    alert(response);
	    return;
	}
	var cidsString = ""+cids;
	var arrayIds = cidsString.split(",");
	useMediaListMenu(arrayIds[0]);
    }
    ajax.run();
}

oCreateListAndAdd = function(contact_id) {
    var cids = oGetCheckedContacts();
    if(cids.length == 0) {
	alert('There is no contact checked');
	return;
    }

    var ajax = new AjaxManager();
    ajax.setVar('page','directory_createlist');
    ajax.setVar('list_name',$('listmenu_input').value);
    ajax.onCompletion = function() {
	var id = ajax.response / 1;
	if(id==0) {
	    alert('it seems that you have already a list of this name');
	    return;
	}
		
	var modelSelect = $('model_contactlists');
	modelSelect.innerHTML += '<option value="'+id+'">'+$('listmenu_input').value+'</option>';
		
	var subAjax = new AjaxManager();
	subAjax.setVar('page','directory_addseveralcontactstolist');
	subAjax.setVar('cids',cids);
	subAjax.setVar('list_id',id);
	subAjax.onCompletion = function() {
	    oCloseListMenu();
	}
	subAjax.run();
    }
    ajax.run();
}



/** */

var oMediaListLock = false;
var oMediaListOpenId = 0;

oReleaseMediaListLock = function() {
    oMediaListLock = false;
}

oSetMediaListLock = function() {
    oMediaListLock = true;
    setTimeout('oReleaseMediaListLock()',100);
}

oOpenMediaListMenu = function(id) {
    oSetMediaListLock();
    closeNote();
    closeListMenu();
    oCloseListMenu();
    if(oMediaListOpenId==id) {
	oCloseMediaListMenu();
	return;
    }
	
    oMediaListOpenId = id;
	
    var headline = 'This contact is in the following medialists:';
	
    var row = $('contactrow'+id);
    var table = $('aroundtable');
    var panel = $('orgMediaListPanel');
    if(!panel) {
	panel = document.createElement('div');
	panel.id = 'orgMediaListPanel';
	panel.className = 'orgMediaListPanel';
	panel.onclick = function() {
	    oSetMediaListLock();
	}
    }
	
    panel.style.top = (row.offsetTop + 16) + 'px';
    panel.style.left = (row.offsetLeft + 22) + 'px';
	
    var ajax = new AjaxManager();
    ajax.setVar('page','directory_getcontactlistsfromcontact');
    ajax.setVar('contact_id',id);
    ajax.onCompletion = function() {
	panel.innerHTML = '<h3>'+ headline +'</h3>';
	panel.innerHTML += '<div>'+ ajax.response +'</div>';
	panel.innerHTML += '<ul id="buttons2"><li><img src="images/interface/button_close.jpg" class="addicon" /><a href="#" onclick="oCloseMediaListMenu();return false;">Cancel</a></li></ul>';
    }
    ajax.run();
	
    document.documentElement.onclick = function() {
	if(!oMediaListLock) {
	    oCloseMediaListMenu();
	}
    }
	
    table.appendChild(panel);
	
}




useMediaListMenu = function(id) {
	oSetMediaListLock();
    closeNote();
    closeListMenu();
    oCloseListMenu();
    if(oMediaListOpenId==id) {
	oCloseMediaListMenu();
	return;
    }
	
    oMediaListOpenId = id;
	
    var headline = 'Do you want to use the list now?';
	
    var row = $('contactrow'+oRowId);
	//alert(oMediaListOpenId);
	//alert(oMediaListOpenId);
    var table = $('aroundtable');
    var panel = $('orgMediaListPanel');
    if(!panel) {
		
		panel = document.createElement('div');
		panel.id = 'orgMediaListPanel';
		panel.className = 'orgMediaListPanel';
		panel.onclick = function() {
			oSetMediaListLock();
		}
    }
    
    
    if(id < 1) {
		
	row = $('results_add');
	table = $('results_add');
	panel.style.top = '19px';
	panel.style.left = '-131px';
	panel.style.zIndex = '1';
        
    }
    panel.style.top = (row.offsetTop + 16) + 'px';
    panel.style.left = (row.offsetLeft + 22) + 'px';
	
    var ajax = new AjaxManager();
    ajax.setVar('page','directory_getcontactlists');
    ajax.setVar('contact_id',id);
    ajax.onCompletion = function() {
	panel.innerHTML = '<h3>'+ headline +'</h3>';
	panel.innerHTML += '<div>'+ ajax.response+'<ul><li><a href="#" onclick="oCloseMediaListMenu();return false;">Continue building my list</a></li><li><a href="dashboard.html" >Return to dashboard</a></li></ul></div>';
	//alert(panel.innerHTML);
    }
    ajax.run();
	
    document.documentElement.onclick = function() {
	if(!oMediaListLock) {
	    oCloseMediaListMenu();
	}
    }
	
    table.appendChild(panel);
	
}



oCloseMediaListMenu = function() {
    var panel = $('orgMediaListPanel');
    
    if(panel) {
	panel.parentNode.removeChild(panel);
	oMediaListOpenId = 0;
	loadResults();
    }
    
    
}