
_cntnames = "";
_cntnamesHtml = "";
_cntnamesEmailCN = "";
_cntnamesEmailPN = "";
var continentcnt;
var matchcnt;
var EFHeight = 0;
var emailFormCntnt;

function emailStatusChecker(){
    if(req.readyState==4){
        if(req.status==200) {
			if (req.responseText == "<response_code>success</response_code>")
			{
				alert("Mail successfully sent");
			}
			else
			{
				alert("Error: Mail was not sent");
			}
		}
        else alert('Failed to get response :'+req.statusText);
    }
}

function generateContent(htmlcontent)
{
	htmlcontent = "<table width=340px cellpadding=0 cellspacing=0>" + htmlcontent + "</table>";
	outputHTML = document.getElementById("emailtemplate").innerHTML;
	outputHTML = outputHTML.replace("~~~~~~",htmlcontent);
	return outputHTML;
}

function sendEmail()
{
	if (matchcnt == 1)
	{
		bodyText = _cntnames;
		bodyText = bodyText.replace(/<br>/ig,"\n");
		bodyText = bodyText.replace(/<b>/ig,"");
		bodyText = bodyText.replace(/<\/b>/ig,"");
		toaddress = document.emailform.toemail.value;
		//_outHtml = generateContent(_cntnamesHtml)
		if (toaddress != '')
		{
			req = createAjaxObj();
			if (req)
			{
				emailcgifile = "http://" + location.host + "/EmailApp/sendEmail.do";
				var message = "sender_email=donotreply@mastercard.com&sender_name=MasterCard&to_self=false&recipient_email=" + toaddress + "&template=emer_serv&maxRecipients=1&regional_phone=" + escape(_cntnamesEmailPN) + "&regional_country=" + escape(_cntnamesEmailCN);
				req.open('POST',emailcgifile,true);
				req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				req.onreadystatechange=emailStatusChecker;
				req.send(message);
			}
		}
	}
	hideEmailForm();
}

function hideEmailForm() {
	document.getElementById("emailcontent").innerHTML = document.getElementById("instructionsDIV").innerHTML;
	document.getElementById("instructionsDIV").innerHTML = emailFormCntnt;
}

function showEmailForm() {
	if (matchcnt == 1)
	{
		emailFormCntnt = document.getElementById("instructionsDIV").innerHTML;
		document.getElementById("instructionsDIV").innerHTML = 
		document.getElementById("emailcontent").innerHTML;
		document.getElementById("emailcontent").innerHTML = "";
		scroll(0,320);
		document.emailform.toemail.focus();
	}
}

function printwindow()
{
	if (matchcnt == 1)
	{
		_outHtml = generateContent(_cntnamesHtml) + copyrightcontent;
		parent.frames["printtemplate"].document.body.innerHTML = _outHtml;
		parent.frames["printtemplate"].focus();
		parent.frames["printtemplate"].print();
	}
}

function searchByKey()
{
	var _srchKey = document.form.srchcntrynam.value;
	var _srchKeylen = document.form.srchcntrynam.length;
	var _regExpStr = "^" + _srchKey.toLowerCase();
	var _regExpmtch = new RegExp(_regExpStr);
	var srchkeyarr = new Array();
	clearResults(1);
	if (_srchKeylen<1 || _srchKey == '')
	{
		return false;
	}	
	if (_srchKey == '')
	{
		var _selcntlength = document.form.countries.length;
		for (var k=0;k<_selcntlength;k++)
		{			
			document.form.countries[k].selected = false;
		}
		return false;
	}	
	for (var j = 0; j<cntrycntnum.length; j++)
	{
		abbrMatch = (cntrycntnum[j].cntryabbr.toLowerCase()).match(_regExpmtch);
		keywordsval = cntrycntnum[j].cntrysrchkeys;
		keyMatch = 0;
		if (keywordsval != '')
		{
			srchkeyarr = keywordsval.split(",");
			if (srchkeyarr.length>0)
			{
				for (snt = 0;snt< srchkeyarr.length; snt++)
				{
					srk = trim(srchkeyarr[snt]);
					if ((srk.toLowerCase()).match(_regExpmtch))
					{
						keyMatch = 1;
						break;
					}
				}
			}
		}
		nameMatch = (cntrycntnum[j].cntrynam.toLowerCase()).match(_regExpmtch);
		if (abbrMatch || keyMatch || nameMatch) {
			
			cntrycntnum[j].showstatus = 1;
			selCntry(cntrycntnum[j].cntrynam);
		}
	}
	showdetails();
}

function showdetails(msg)
{
	matchcnt = 0;
	if (msg != ' ')
	{
		_cntnames = "";
		_cntnamesHtml = "";
		_cntnamesEmailCN = "";
		_cntnamesEmailPN = "";
		continentName = "";
		for (contid=0;contid<continents.length;contid++)
		{
			sCnt = 0;
			while (sCnt<cntrycntnum.length)
			{
				if (cntrycntnum[sCnt].showstatus == 1 && cntrycntnum[sCnt].cntrycont == continents[contid])
				{
					if (continentName != continents[contid])   // Checking for the duplicate continent name
					{
						continentName = continents[contid];
						_cntnames = _cntnames + "<br><b>" + continentName + "</b><br>";
						_cntnamesHtml = _cntnamesHtml + "<tr><td colspan=2><br><b>" + continentName + "</b></td></tr>";
						_cntnamesEmailCN = _cntnamesEmailCN + "~" + continentName + "~~";
						_cntnamesEmailPN = _cntnamesEmailPN + "~~~";
					}
					_cntnames = _cntnames + cntrycntnum[sCnt].cntrynam + ": " + cntrycntnum[sCnt].cntctnum + "<br>";
					_cntnamesHtml = _cntnamesHtml + "<tr><td>" + cntrycntnum[sCnt].cntrynam + ":</td><td>" + cntrycntnum[sCnt].cntctnum + "</td></tr>";
					_cntnamesEmailCN = _cntnamesEmailCN + cntrycntnum[sCnt].cntrynam + "~";
					_cntnamesEmailPN = _cntnamesEmailPN + cntrycntnum[sCnt].cntctnum + "~";
				}
				sCnt++;
			}
		}
		if (_cntnames == '') {  matchcnt = 0; msg = "<b>No Matching Results</b><br><br>"; }
		else { matchcnt = 1; msg = "<b>The contact number(s) you requested are:</b><br>" + _cntnames; }
	}
	document.getElementById("contact_numbers").innerHTML =  msg;
	scroll(0,320);
}

function selCntry(_selregExpmtch)
{
	var _selcntlength = document.form.countries.length;
	for (var k=0;k<_selcntlength;k++)
	{	
		//document.form.countries[k].selected = false;
		if (document.form.countries[k].text.toLowerCase() == _selregExpmtch.toLowerCase())
		document.form.countries[k].selected = true;
	}
}

function displaycntnums()
{
	var _cntlength = document.form.countries.length;
	var _cntname = "";	
	document.getElementById("contact_numbers").innerHTML = "";
	var selIndx = document.form.countries.selectedIndex;
	if (selIndx == 0)  { selectAll(); }
	else if(selIndx<6 && selIndx>0) { selectCont(selIndx); }
	else if (selIndx>6) { selectCountries(selIndx); }
	else if (selIndx == 6) { showdetails(); }
}

function selectAll()
{
	clearResults();
	cntID = 0;
	while (cntID<6)
	{
		selectCont(cntID);
		cntID++;
	}
}

function selectCont(cntIDVal)
{
	var contName = document.form.countries[cntIDVal].text;
	var contID = 0;
	if(wsstag_enabled){
		_hbLink(contName,'Continent Selected');
	}
	while (contID <cntrycntnum.length)
	{
		//cntIndex = contID+continentcnt+2;
		if(((cntrycntnum[contID].cntrycont.toLowerCase()).indexOf(contName.toLowerCase())) != -1) // && (!(document.form.countries[cntIndex].selected)))
		{
			cntrycntnum[contID].showstatus = 1;
			//document.form.countries[cntIndex].selected = true;
		}
		contID++;
	}
	showdetails();
}

function selectCountries(cntIndex)
{
	_cntname = document.form.countries[cntIndex].text;
	if(wsstag_enabled){
		_hbLink(_cntname,'Country Selected');
	}
	for (var j = 0; j<cntrycntnum.length; j++)
	{
		if(((cntrycntnum[j].cntrynam.toLowerCase()).indexOf(_cntname.toLowerCase())) != -1 && (!(document.form.countries[j].selected)))
		{
			cntrycntnum[j].showstatus = 1;
			break;
		}
	}
	
	showdetails();	
	return 1;
}

function clearResults()
{
	_cntnames = '';
	_cntnamesHtml = '';
	_cntnamesEmailCN = '';
	_cntnamesEmailPN = '';
	if (!(arguments[0])) document.form.srchcntrynam.value = "";
	for (var clcnt=0;clcnt<document.form.countries.length;clcnt++)
	{
		document.form.countries[clcnt].selected = false;
	}
	for (var clcnt=0;clcnt<cntrycntnum.length;clcnt++)
	{
		cntrycntnum[clcnt].showstatus = 0;
	}
	matchcnt = 0;
	showdetails(' ');
}

function loadValues(inputvalue,cntval)
{
	if (browsername == 'ns')
	{	
		anOption = new Option(inputvalue,cntval);
		sellgth = document.form.countries.options.length;
		document.form.countries.options[sellgth]= anOption;
	}
	else if (browsername == 'ie')
	{
		anOption = document.createElement("OPTION");
		document.form.countries.options.add(anOption);
		anOption.innerText = inputvalue;
		anOption.Value = cntval; 
	}
}

function drawLine() {
	return "--------------------------------------------";
}

function sortByCntryName(a, b) {
    var x = a.cntrynam.toLowerCase();
    var y = b.cntrynam.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function uniqueContinent(a) {
	tmp = new Array(0);
	for(i=0;i<a.length;i++){
		if(!contains(tmp, a[i].cntrycont)){
			tmp.length+=1;
			tmp[tmp.length-1]=a[i].cntrycont;
		}
	}
	tmp.sort();
	tmp[tmp.length] = drawLine();
	return tmp;
}

function contains(a, e) {
	for(j=0;j<a.length;j++)if(a[j]==e)return true;
	return false;
}



function loadCntryList()
{
	var anOption;
	var cntrynamarr = new Array();
	continents = uniqueContinent(cntrycntnum);
	continentcnt = continents.length;
	cntrycntnum.sort(sortByCntryName);
	for (var cls = 0; cls<continents.length; cls++)
	{
		loadValues(continents[cls],cls);
	}
	for (var ls = 0; ls<cntrycntnum.length; ls++)
	{
		loadValues(cntrycntnum[ls].cntrynam,cls++);
	}
}

