function popup(url)
{
	window.open(url, '', 'width=744,height=450');	
	return false;
}

function toggleProc(id, p_id, profile_id, page) {
	var el = document.getElementById(id);
	var obj = el.parentNode;
	
	if (obj.style.display == "") {
		obj.style.display = "none";
	}
	else {
		obj.style.display = "";
	}
	
	if(!el.wasViewed)
	{
		new Ajax.Updater(id, document.siteroot+'/ajax/procurement.php?p_id='+p_id+'&profile_id='+profile_id+'&page='+page, {asynchronous: true, evalScripts: true});
		el.wasViewed = true;
	}
	return false;
}

function archive(profile_id, p_id, archive)
{
	var url = document.siteroot+'/ajax/archive.php?p_id='+p_id+'&profile_id='+profile_id+'&archive='+archive;
	new Ajax.Updater('hiddenDiv', url, {asynchronous: true, evalScripts: true});	
	return false;	
}

function removeProcurement(profile_id, p_id)
{
	var proc = $('proc-'+profile_id+'-'+p_id+'-inner');
//	alert("profileId: "+profile_id+"\np_id: "+p_id);
	proc.procurement = $('proc-'+profile_id+'-'+p_id);
	new Effect.SlideUp(proc.id, {duration: 0.5, afterFinish: removeProcurement2});
}

function removeProcurement2(eff)
{
	eff.element.procurement.parentNode.removeChild(eff.element.procurement);
}

function hideAllProcs() {
	var procs = getElementsByClassName(document, "div", "procCnt");
	
	//alert(procs);
	
	for (var i = 0; i < procs.length; i++) {
		procs[i].style.display = "none";
	}
}

function getElementsByClassName(oElm, strTagName, oClassNames){
    var arrElements = (strTagName == "*" && document.all)? document.all : 
    oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    var arrRegExpClassNames = new Array();
    if(typeof oClassNames == "object"){
        for(var i=0; i<oClassNames.length; i++){
            arrRegExpClassNames.push(new RegExp("(^|\\s)" + 
            oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
        }
    }
    else{
        arrRegExpClassNames.push(new RegExp("(^|\\s)" + 
        oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
    }
    var oElement;
    var bMatchesAll;
    for(var j=0; j<arrElements.length; j++){
        oElement = arrElements[j];
        bMatchesAll = true;
        for(var k=0; k<arrRegExpClassNames.length; k++){
            if(!arrRegExpClassNames[k].test(oElement.className)){
                bMatchesAll = false;
                break;                      
            }
        }
        if(bMatchesAll){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

// For ie5
Array.prototype.push = ArrayPush;
function ArrayPush(value){
    this[this.length] = value;
}
/*
function highlight(el)
{
	
}
	
function unhighlight(el)
{}*/

function sortAddressBookBy(col)
{
	var spacer = '/images/spacer.gif';
	var darr = '/images/darr_b.gif';
	var uarr = '/images/uarr_b.gif';	
	var list = $('addresslist');
	var coll = list.getElementsByTagName('tr');
	var rows = new Array();
	var header = $('addressheader');
	var headerImg = header.getElementsByTagName('td').item(col).getElementsByTagName('img').item(0);
	var headerCells = header.getElementsByTagName('td');

	if(!list.sortedBy)
		list.sortedBy = 1;

	for(var i = 0; i < coll.length; i++)
	{
		var r = coll.item(i);
		rows.push(r);
	}

	for(var i = 0; i < rows.length; i++)
	{
		list.removeChild(rows[i]);
	}

	function cmp(a,b)
	{
		var av = a.getElementsByTagName('td').item(col).getElementsByTagName('div').item(0).innerHTML;
		var bv = b.getElementsByTagName('td').item(col).getElementsByTagName('div').item(0).innerHTML;
		return av.charCodeAt(0) - bv.charCodeAt(0);
	}
	
	if(list.sortedBy == col)
	{
		rows = rows.reverse();
//		alert(headerImg.src + " " +headerImg.src.indexOf('darr'));
		if(headerImg.src.indexOf('darr') > -1)
		{
			headerImg.src = uarr;
		}
		else
		{
			headerImg.src = darr;
		}
	}
	else
	{
		rows = rows.sort(cmp);
		headerImg.src = darr;
	}

	for(var i = 1; i < headerCells.length; i++)
	{
		if(i != col)
			headerCells.item(i).getElementsByTagName('img').item(0).src = spacer;	
	}

	for(var i =0; i < rows.length; i++)
	{
		list.appendChild(rows[i]);
	}

	list.sortedBy = col;

	return false;
}

function deleteFromAddressbook()
{
	if(!confirm('Er du sikker på at du vil slette de valgte kontakter fra din adressebog?'))
		return;

	var list = $('addresslist');
	var coll = list.getElementsByTagName('tr');
	var chosen = [];
	for(var i = 0; i < coll.length; i++)
	{
		var r = coll.item(i);
		var checkbox = r.getElementsByTagName('td').item(0).getElementsByTagName('input').item(0);
		if(checkbox.checked)
			chosen.push(r.menuId);
	}
	
	new Ajax.Updater('ajax_target', '/ajax/deleteaddressbook.php?ids='+chosen.join(','), {asynchronous: true, evalScripts: true});
}

Array.prototype.contains = ArrayContains;
function ArrayContains(value){
	for(var i = 0; i < this.length; i++)
		if(this[i] == value) return true;
	return false;
}

function removeFromAddressList(ids)
{
	var list = $('addresslist');
	var coll = list.getElementsByTagName('tr');
	var rs = []
	for(var i = 0; i < coll.length; i++)
	{
		rs.push(coll.item(i));
	}
	for(var i = 0; i < rs.length; i++)
	{
		var r = rs[i];
		if(ids.contains(r.menuId))
			r.parentNode.removeChild(r);
	}
}

function toggleVis(id)
{
	var e = $(id);
	/*
	if(e.style.display == 'none')
		e.style.display = '';
	else
		e.style.display = 'none';
		*/
	new Effect.toggle(id, 'blind');
	return false;
}

var allRows = [];

function makeEditors(id)
{
	var nameId = 'name-'+id;
	var contactId = 'contact-'+id;
	var groupId = 'grouping-'+id;				
	var row = $('row-'+id);
	row.menuId = id;
	row.editors = []
	var opt = {cancelText: "Afbryd", okText: "Gem"};
	row.editors.push(new Ajax.InPlaceEditor(nameId, '/ajax/editaddressbook.php?f=name&id='+id, opt));
	row.editors.push(new Ajax.InPlaceEditor(contactId, '/ajax/editaddressbook.php?f=contact&id='+id, opt));
	row.editors.push(new Ajax.InPlaceEditor(groupId, '/ajax/editaddressbook.php?f=grouping&id='+id, opt));					
	allRows.push(row);

	//Event.observe(this.element, 'click', this.onclickListener);

}

function deleteAllEditors(except)
{
	for(var i = 0; i < allRows.length; i++)
	{
		var r = allRows[i];
		for(var b = 0; b < r.editors.length; b++)
		{
			if(r.editors[b] != except)
				r.editors[b].dispose();
		}
	}
}

function updateCpvSearch(val,language,is_doffin)
{
	var cpvs = "";
  if (is_doffin == '')
      is_doffin='N';	
	new Ajax.Updater('cpvResults', document.siteroot+'/ajax/cpvsearch.php?q='+val+'&is_doffin='+is_doffin+'&language='+language+'&'+cpvs, {asynchronous: true});
}

function addCpv(code, desc)
{
	$('brancher').value += code + ' ';
//	$('cpv-'+code).style.display = 'none';
	onCpvChange(code);
	return false;
}

function makeCell(val)
{
	var e = document.createElement('td');
	e.innerHTML = val;
	return e;
}

function addToAddressBook(id, company, contact, email, grouping)
{
/*
var list = $('addresslist');	

	var tr =  document.createElement('tr');
	tr.id = 'row-'+id;
	var html = "<td><input type='checkbox' name='addresses[]' value='"+id+"' /></td>\
	<td><div id='name-"+id+"'>"+company+"</div></td>\
		<td><div id='contact-"+id+"'>"+contact+"</div></td>\
		<td><div id='grouping-"+id+"' style='height: 12px;'>"+grouping+"</div></td>";
	list.appendChild(tr);
	makeEditors(id);
*/
}

function saveAddress(outputEl, inputEl)
{
	
	var fields = ['company', 'address', 'city', 'contact', 'email', 'grouping'];
	var inputs = inputEl.getElementsByTagName('input');
	var n = inputs.item(0).rowNum ? inputs.item(0).rowNum : 0;
	var str = "num="+n+"&";
	for(var i = 0; i < fields.length; i++)
	{
		var el = inputs.item(i);
		str += fields[i] + "=" + el.value + "&";
	}
	new Ajax.Updater(outputEl, document.siteroot+'/ajax/addaddressbook.php?'+str, {asynchronous: true, evalScripts: true});
}