var contacts = new Array();
var currentContactIndex = 0;
var Nb_Contact_Display = 3;
function LoadContacts()
{
	//Load all contacts
	var ws = new BackEndWS(abswebservice);
	ws.GetContactsInfos(Culture, 0, -1, OnContactsLoaded, false);
}

function OnContactsLoaded(res)
{
	if (!document.getElementById("Place_Count_Contacts")) return;
	if (res == null)
	{
		alert("## GENERAL ERROR LOADING CONTACTS ##");
		return;
	}
	
	contacts = res;
	contacts = contacts.sort(SortContacts);
	
	currentContactIndex = 0;
	
	var list = document.getElementById("Select_Country");
	var str = new Array(); //array containing html for contact list
	var ccs = new Array(); //array containing html for country code
	
	ccs.push("<div class=\"ContactDisabled\" id=\"ContactArrowLeft\" onclick=\"Show_Anim_Rond('ContactStep(-1);',event);\"  style='padding-right:22px;width:17px;height:19px;'><a href='javascript:void(0);' class=Place_Count_Contacts_Less><img  id='Page_Less' border=0 src='/img/s.gif' height=19 width=17></A></div>");
	
	
	str.push("<table height='20px' width=100% align=center cellpadding=0 cellspacing=0>");
	for (var i = 0; i < contacts.length; i++)
	{
		var opt = new Option(contacts[i].contryName, contacts[i].code);
		list.options[list.options.length] = opt;
		PreloadExtentedContact(contacts[i]);
		
		if (contacts[i].code.indexOf("_")<0)
		{
			ccs.push("<li class=\"CountryCode\" onclick=\"displayContactStartingAt('");
			ccs.push(contacts[i].code); ccs.push("')\">"); ccs.push(contacts[i].code); ccs.push("</li>");
		}
		
		if (i < Nb_Contact_Display)
		{
			str.push(getContactStr(contacts[i]));
			
			if (i < Nb_Contact_Display-1)
			{
				str.push("<tr><td colspan=3><hr class=\"ContactSeparator\"></td></tr>");
			}
		}
	}
	
	list.value = "";
	
	str.push("</table>");
	
	ccs.push("<div class=\"ContactEnabled\" id=\"ContactArrowRight\" onclick=\"Show_Anim_Rond('ContactStep(1);',event);\" style='padding-left:2px;width:17px;height:19px;'><a href='javascript:void(0);' class=Place_Count_Contacts_More><img  id='Page_More' border=0 src='/img/s.gif' height=19 width=17></A></div>");
	
	//Set divs content
	document.getElementById("Place_Count_Contacts").innerHTML = ccs.join("");
	document.getElementById("Text_content_Page").innerHTML = str.join("");
	
	contactLoaded = true;
}

function SortContacts(a, b) {
if (a.contryName < b.contryName) return -1;
else return 1;
}

function getContactStr(contact)
{
	if (typeof(allImgs) != "undefined")
	{
		var img = new Image();
		img.src = contact.picture;
		allImgs.push(img);
	}
	
	var str = new Array();
	
	str.push("<tr><td align=center width=100px style=\"cursor:pointer\" nowrap><img onclick=\"OpenContactMovePopup('");str.push(contact.code); str.push("');\" src=\""); 
		str.push(contact.picture);
	str.push("\" ><br>");
	str.push("<font class=\"CountryName\">"); str.push(contact.contryName); str.push("</font></td>");

	str.push("<td width=100%><font class=\"f1noir\">");
	for (var j = 0; j < contact.Adress.length; j++)
	{
		str.push("&nbsp;&nbsp;&nbsp;&nbsp;"); str.push(contact.Adress[j]);
		str.push("&nbsp;&nbsp;&nbsp;&nbsp;");
		
		if (j != contact.Adress.length - 1) str.push("<br>");
	}
	str.push("</font></td>");

	str.push("<td nowrap align=right><font class=\"f1noir\">");
	if (typeof(contact.tel) != "undefined")
	{
		str.push(VoIP_Call_Center_Software("Tel") + "&nbsp;:&nbsp;"); str.push(contact.tel); str.push("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>");
	}
	if (typeof(contact.fax) != "undefined")
	{
		str.push(VoIP_Call_Center_Software("Fax") + "Fax&nbsp;:&nbsp;"); str.push(contact.fax); str.push("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>");
	}
	
	str.push("<a class=\"link_OK2\" style=\"margin-left:10px\" href='javascript:void(0);' "); 


	str.push("onclick='From_Country=\"" + contact.mail + "\";Show_Moveable_Popup(true, \"PopContact\", null, \"main\", \"POPUP_CONTACT\", FindLeftEdge(this), FindTopEdge(this), 235, 140, 30, 30, 331, 363, 12, \"/img/acd-software.png\", \"Content_Table_Contact\");'");
	str.push(">" + VoIP_Call_Center_Software("Send a message") + "</A></td></tr>");

	return str.join("");
}

function displayContactStartingAt(cc)
{
	var startIndex = 0;
	
	for (var i = 0; i < contacts.length; i++)
	{
    var subCode = contacts[i].code.substring(0, 2);
	
		if (subCode == cc)
		{
			startIndex = i;
			currentContactIndex = i;
			break;
		}
	}
	
	if (contacts.length - startIndex < 3) startIndex = contacts.length - 3;
	
	currentContactIndex = startIndex;
	
	displayContactIndex(startIndex);
}

function displayContactFr()
{
	var str = new Array();
	str.push("<table width=100% align=center cellpadding=0 cellspacing=0>");

	for (var i = 0; i < contacts.length; i++) {
		if (contacts[i].code =="FR") {
		str.push(getContactStr(contacts[i]));
		str.push("<tr><td colspan=3><hr class=\"ContactSeparator\"></td></tr>");
		break;
		}
	}
	
	for (var i = 0; i < contacts.length; i++) {
		if (contacts[i].code =="BE")  {
		str.push(getContactStr(contacts[i]));
		str.push("<tr><td colspan=3><hr class=\"ContactSeparator\"></td></tr>");
		break;
		}
	}
	
	for (var i = 0; i < contacts.length; i++)
	{
		if (contacts[i].code =="MA") {
		str.push(getContactStr(contacts[i]));
		break;
		}
	}
	
	str.push("</table>");
	document.getElementById("Text_content_Page").innerHTML = str.join("");
}

function displayContactIndex(startIndex)
{
	//Manage arrow
	var rightArrow = document.getElementById("ContactArrowRight");
	var leftArrow = document.getElementById("ContactArrowLeft");
	if (!rightArrow) return;
	
	if (startIndex == 0) leftArrow.className = "ContactDisabled";
	else leftArrow.className = "ContactEnabled";
	
	if (contacts.length - startIndex <= Nb_Contact_Display) rightArrow.className = "ContactDisabled";
	else rightArrow.className = "ContactEnabled";

	//Construct html
	var str = new Array();
	str.push("<table width=100% align=center cellpadding=0 cellspacing=0>");

		str.push(getContactStr(contacts[startIndex]));
		str.push("<tr><td colspan=3><hr class=\"ContactSeparator\"></td></tr>");
		str.push(getContactStr(contacts[startIndex + 1]));
		str.push("<tr><td colspan=3><hr class=\"ContactSeparator\"></td></tr>");
		str.push(getContactStr(contacts[startIndex + 2]));

	str.push("</table>");
	
	document.getElementById("Text_content_Page").innerHTML = str.join("");
}

function ContactStep(incr)
{
	//Search for current contact index
	var nextStep = currentContactIndex + incr;
	
	if (contacts.length - nextStep < Nb_Contact_Display) nextStep = contacts.length - Nb_Contact_Display;
	
	if (nextStep >= 0)
	{
		currentContactIndex = nextStep;
		displayContactIndex(nextStep);
	}
}

function OpenContactPopup(cc)
{
	//Get corresponding contact
	for (var i = 0; i < contacts.length; i++)
	{
		if (contacts[i].code == cc)
		{
			if (typeof(contacts[i].extended) != "undefined")
			{
				ShowExtendedContact(contacts[i]);
			}
			else
			{
				LoadExtendedContact(contacts[i]);
			}
			
			break;
		}
	}
}

function OpenContactMovePopup(cc)
{
	//Get corresponding contact
	for (var i = 0; i < contacts.length; i++)
	{
		if (contacts[i].code == cc)
		{
			if (typeof(contacts[i].extended) != "undefined")
			{
				ShowExtendedContact(contacts[i]);
			}
			else
			{
				LoadExtendedContact(contacts[i]);
			}
			
			Show_Anim_Rond("Show_Moveable_Popup(true, 'PopShowContact',After_Open_ClientArea, 'main', 'POPUP_SHOWCONTACT'," + 500 + "," + 500 + ", 235, 140, 30, 30, 301, 246, 12, '/img/bg_contact.png', 'Content_Table_World_Contact');",event);
			
			break;
		}
	}
}

function DisplayContactFromList(list)
{
	OpenContactMovePopup(list.value);
}
function PreloadExtentedContact(contact)
{
	var ws = new BackEndWS(abswebservice);
	ws.GetExtentedContactsInfos(Culture, contact.code, function (res) { OnExtentedContactPreLoaded(res, contact); }, false);
}

function LoadExtendedContact(contact)
{
	var ws = new BackEndWS(abswebservice);
	ws.GetExtentedContactsInfos(Culture, contact.code, function (res) { OnExtentedContactLoaded(res, contact); }, false);
}

function OnExtentedContactLoaded(res, contact)
{
	if (res != null)
	{
		contact.extended = res;
		ShowExtendedContact(contact);
	}
}

function OnExtentedContactPreLoaded(res, contact) 
{
	if (res != null) contact.extended = res;
}

function ShowExtendedContact(contact)
{
	var str = new Array();
	str.push("<table cellpadding=0 cellspacing=0 width=295><tr>"); 
	str.push("<td class=\"ContactTitle\"><img align=absmiddle hspace=14 src=\""); str.push(contact.picture); str.push("\">");
	str.push(contact.extended.popupTitle); str.push("</td></tr>");
	
	str.push("<tr><td align=right style='padding:10px'>");
	
	str.push("<a class=\"link_OK2\" href='javascript:void(0);' "); 
	str.push("onclick=\"From_Country=' + contact.mail + ';Show_Moveable_Popup(true, 'PopContact', null, 'main', 'POPUP_CONTACT', FindLeftEdge(this), FindTopEdge(this), 235, 140, 30, 30, 331, 363, 12, '/img/acd-software.png', 'Content_Table_Contact');\"");
	str.push(">" + VoIP_Call_Center_Software("Send a message") + "</A>");
	str.push("</td></tr><tr><td><img src='/img/s.gif' height=4></td></tr><tr><td bgcolor='#808080'><img src='/img/s.gif' height=1></td></tr><tr><td><img src='/img/s.gif' height=4></td></tr>");
	
	str.push("<tr><td align=center><table cellpadding=0 cellspacing=0  width=100%>");
	
	str.push("<tr><td rowspan=" + (contact.Adress.length+1)  + " class=\"ContactElement\" style='line-height:18px;' width='90px' valign=top align=right>" + VoIP_Call_Center_Software("Address") + " :&nbsp;</td></tr>"); 
	
	for (var i = 0; i < contact.Adress.length; i++)
	{
		str.push("<tr><td nowrap class=\"ContactElementPlusAdr\">"); str.push(contact.Adress[i]); str.push("</td></tr>");
	}
	
	
	if (typeof(contact.tel) != "undefined")
	{
		str.push("<tr><td  width='90px' nowrap style='padding-Left:10px;line-height:18px' align=right class=\"ContactElement\">" + VoIP_Call_Center_Software("Tel") + " :&nbsp;")
		str.push("<td nowrap width=100% class=\"ContactElementPlusAdr\">")
		str.push(contact.tel); 
		if (panel_News)
		{
		   panel_News.Display(' ' + contact.tel);
		}
		
		str.push("</td></tr>");
	}
	if (typeof(contact.fax) != "undefined")
	{
		str.push("<tr><td  width='90px' nowrap style='padding-Left:10px' align=right class=\"ContactElement\">" + VoIP_Call_Center_Software("Fax") + " :&nbsp;")
		str.push("<td nowrap width=100% class=\"ContactElementPlusAdr\">")
		str.push(contact.fax); str.push("</td></tr>");
	}
	
	str.push("</table></td></tr></table>");
	
	var chaine = str.join("");
	var popDiv = document.getElementById("Contact_Popup_Div");
	if (popDiv) popDiv.innerHTML = str.join("");
}
