var browser = '';
var CONFIRM_CALLBACK = '';

if(window.XMLHttpRequest) {
	if(window.ActiveXObject) {
		// IE 7
		browser = 'ie7+';
	} else {
		// Opera, Safari, mozilla
		browser = 'opera/safari/mozilla';
		var sTest = -1;
		try {
			sTest = navigator.vendor.indexOf('Apple');
		} catch(e1) {}
		if (sTest != -1) {
			browser = 'safari';
		} else {
			if (window.opera) {
				browser = 'opera';
			} else {
				browser = 'mozilla';
			}
		}
	}
} else {
	//IE 6 and below
	browser = 'ie6-';
}

function WriteCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function ReadCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function EraseCookie(name) {
	WriteCookie(name,"",-1);
}

function OpenListings() {
	var fld = document.getElementById('listings');
	var fld2 = '';
	if (browser == 'ie7+' || browser == 'ie6-') {
		fld2 = fld.childNodes[2]; 
	} else {
		fld2 = fld.childNodes[5]; //thank you, firebug -- a godsend
	} 
	var sID = fld2.id;
	var sVal = ReadCookie(sID);
	if (sVal == null) {
		var cnt = fld.childNodes.length;
		for (var i = 0; i < cnt; i++) {
			var sID2 = fld.childNodes[i].id;
			try {
				if (sID2.indexOf('list-') == 0) {
					var fld3 = fld.childNodes[i]; 
					fld3.style.display = 'none';
					var fld4 = document.getElementById(sID + '-expando');
					fld4.src = 'images/expando_closed.gif';
				}
			} catch(e1) {}
		}	
		WriteCookie(sID, 'open', 365);
		fld2.style.display = 'block';
		var fld3 = document.getElementById(sID + '-expando');
		fld3.src = 'images/expando_open.gif';
	} else {
		var cnt = fld.childNodes.length;
		for (var i = 0; i < cnt; i++) {
			var sID = fld.childNodes[i].id;
			try {
				if (sID.indexOf('list-') == 0) {
					var sState = ReadCookie(sID);				
					if (sState == 'open') {
						fld.childNodes[i].style.display = 'block';
						var fld4 = document.getElementById(sID + '-expando');
						fld4.src = 'images/expando_open.gif';						
					} else {
						fld.childNodes[i].style.display = 'none';
						var fld4 = document.getElementById(sID + '-expando');
						fld4.src = 'images/expando_closed.gif';						
					}
				}
			} catch(e2) {}
		}
	}
	fld.style.visibility = 'visible';
}

function ToggleListing(sID) {
	fld = document.getElementById(sID);
	if (fld.style.display == 'none' || fld.style.display == '') {
		WriteCookie(sID, 'open',365);
		fld.style.display = 'block';
		fld2 = document.getElementById(sID + '-expando');
		fld2.src = 'images/expando_open.gif';
	} else {
		WriteCookie(sID, 'closed', 365);
		fld.style.display = 'none';
		fld2 = document.getElementById(sID + '-expando');
		fld2.src = 'images/expando_closed.gif';
	}
}

function alert3(sImageItem, sFld) {
	fld = document.getElementById(sFld);
	var x = GetAbsoluteX(fld);
	var y = GetAbsoluteY(fld);
	fld = document.getElementById(sImageItem);
	fld.style.top = y + 'px';
	fld.style.left = x + 'px';
	fld.style.display = 'block';
	opacity(sImageItem,  0, 100, 900);
	window.setTimeout("fade_alert3('" + sImageItem + "')",3000);
}

function fade_alert3(sImageItem) {
	opacity(sImageItem, 100, 0, 900);
	window.setTimeout("fade2_alert3('" + sImageItem + "')",1000);
}

function fade2_alert3(sImageItem) {
	fld = document.getElementById(sImageItem);
	fld.style.display = 'none';
	fld.style.top = '1px';
	fld.style.left = '1px';
}

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
} 

function ReExpandCat(sWhichCat) {
	// expand the major cat by simulating a click
	sWhichCat = trim(sWhichCat);
	if (sWhichCat == '') return;
	s = trim(sWhichCat.substr(0, sWhichCat.indexOf(' : ')));
	s2 = trim(sWhichCat.substr(sWhichCat.indexOf(' : ')+3));
	fld = document.getElementById('X_' + s);
	try {fld.click();} catch(e1) {try {fld.onclick();}catch(e2){}}
	// now find the minor cat and highlight it
	try {
	var fld2 = fld.parentNode.childNodes[2];
	var h = '';
	var k = fld2.childNodes.length;
	for (i = 0; i < k; i++) {
		h = fld2.childNodes[i].innerHTML;
		if (h != undefined) {
			if (h.indexOf('>' + s2 + '<') > 0) {		
				fld2.childNodes[i].childNodes[0].style.color = '#000000';
				break;
			}
		}

	}
	} catch (e2) {}
}

function CheckUnique(sWhich, sVal) {
	try {
		sVal = '' + trim('' + sVal);
	} catch(e1) {
		sVal = '';
	}
	if (sVal == '') return;
	sMsg = 'mode=checkunique&field=' + sWhich + '&value=' + sVal;
	AjaxSend(sMsg);
}

function CheckField(sLabel, sFld) {
	sVal = trim(document.getElementById(sFld).value);
	if (sVal == '') {
		alert2('The ' + sLabel + ' field is required.');
		return false;
	}
	return true;
}

function SubmitListing() {
	try {
		fld = document.getElementById('catalt1');
		if (fld.style.display == 'inline') {
			fld = document.getElementById('btnSetCat1');
			try {fld.click();} catch(x1) {try {fld.onclick();}catch(x2){}}
		}
	} catch(e1) {}
	try {
		fld = document.getElementById('catalt2');
		if (fld.style.display == 'inline') {
			fld = document.getElementById('btnSetCat2');
			try {fld.click();} catch(x3) {try {fld.onclick();}catch(x4){}}
		}
	} catch(e2) {}	
	try {
		fld = document.getElementById('catalt3');
		if (fld.style.display == 'inline') {
			fld = document.getElementById('btnSetCat3');
			try {fld.click();} catch(x5) {try {fld.onclick();}catch(x6){}}
		}
	} catch(e3) {}	
	try {
		fld = document.getElementById('catalt4');
		if (fld.style.display == 'inline') {
			fld = document.getElementById('btnSetCat4');
			try {fld.click();} catch(x7) {try {fld.onclick();}catch(x8){}}
		}
	} catch(e4) {}	
	// VERIFY ALL RED FIELDS HAVE SOME CONTENT IN THEM
	if (!CheckField('First Name','fldFirstName')) return;
	if (!CheckField('Surname','fldSurname')) return;
	if (!CheckField('Company','fldCompany')) return;
	if (!CheckField('Email','fldEmail')) return;
	if (!CheckField('Address','fldAddress1')) return;
	if (!CheckField('Town','fldTown')) return;
	if (!CheckField('Region','fldRegion')) return;
	if (!CheckField('Post Code','fldPostCode')) return;
	if (!CheckField('Telephone','fldTelephone')) return;
	if (!CheckField('Website URL','fldURL')) return;
	if (!CheckField('Keywords','fldKeywords')) return;
	if (!CheckField('Short Description','fldByline')) return;
	if (!CheckField('Category 1','fldCat1Key')) return;
	
	// VERIFY EMAIL HAS @ AND "."
	sVal = document.getElementById('fldEmail').value;
	if ((sVal.indexOf('@') == -1) || (sVal.indexOf('.') == -1)) {
		alert2('The Email field appears to not be properly completed.');
		return;
	}
	
	// VERIFY WEBSITE HAS "."
	sVal = document.getElementById('fldURL').value;
	if (sVal.indexOf('.') == -1) {
		alert2('The Website URL field appears to not be properly completed.');
		return;
	}
	
	// OKAY, PASS TESTS, SO SUBMIT FORM
	SubmitMe();
}

function SubmitMe() {
	document.main.submit();
}

function SelectFirstListing() {
	try {
		fld = document.getElementById('fldMyListingChoice');
		fld.selectedIndex = 0;
	} catch(e1) {}
	try {
		fld2 = document.getElementById('fldMyListingChoice');
		//alert2(fld.value);
		GetListing(fld2.value);	
	} catch(e2) {}
}

function BrowseDir() {
	location.href = 'directory.php';
}

function CheckDescription(oFld) {
	sVal = oFld.value;
	if (sVal.length < 94) {
		alert2('The Short Description must be at least 94 characters to fill a line. Please add some more appropriate text.');
	}
}

function CheckEmail(oFld) {
	sVal = oFld.value;
	sMsg = 'mode=checkemail&email=' + sVal;
	AjaxSend(sMsg);
}

function CheckEmail2() {
	var oFld = document.getElementById('fldEmail');
	sVal = oFld.value;
	sMsg = 'mode=checkemail&email=' + sVal;
	AjaxSend(sMsg);
	return true;
}

function select_innerHTML(fld,innerHTML){
	if (browser != 'ie7+' && browser != 'ie6-') {
		fld.innerHTML = innerHTML;
		return true;
	}
    fld.innerHTML = "";
    var selTemp = document.createElement("micoxselect");
    var opt;
    selTemp.id="micoxselect1";
    document.body.appendChild(selTemp);
    selTemp = document.getElementById("micoxselect1");
    selTemp.style.display="none";
    if(innerHTML.indexOf("<option")<0){
        innerHTML = "<option>" + innerHTML + "  </option>";
    }
    innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span");
    selTemp.innerHTML = innerHTML;
      
    
    for(var i=0;i<selTemp.childNodes.length;i++){
  var spantemp = selTemp.childNodes[i];
  
        if(spantemp.tagName){     
            opt = document.createElement("OPTION");
    
   if(document.all){ //IE
    fld.add(opt);
   }else{
    fld.appendChild(opt);
   }       
    
   //getting attributes
   for(var j=0; j<spantemp.attributes.length ; j++){
    var attrName = spantemp.attributes[j].nodeName;
    var attrVal = spantemp.attributes[j].nodeValue;
    if(attrVal){
     try{
      opt.setAttribute(attrName,attrVal);
      opt.setAttributeNode(spantemp.attributes[j].cloneNode(true));
     }catch(e){}
    }
   }
   //getting styles
   if(spantemp.style){
    for(var y in spantemp.style){
     try{opt.style[y] = spantemp.style[y];}catch(e){}
    }
   }
   //value and text
   opt.value = spantemp.getAttribute("value");
   opt.text = spantemp.innerHTML;
   //IE
   opt.selected = spantemp.getAttribute('selected');
   opt.className = spantemp.className;
  } 
 }    
 document.body.removeChild(selTemp);
 selTemp = null;
}

function AddNewListing() {
	location.href = 'listing_add.php';
}

function AddNewPinGroup() {
	location.href = 'index.php?groups#x';
}

function UpgradeListing() {
	sKey = document.getElementById('fldChosenPkey').value;
	if (sKey == '' || sKey == '-1') return;
	location.href = 'listing_upgrade.php?c=' + sKey;
}

function alert2(sText) {
	try {
		fld = document.getElementById('fldFake');
		fld.focus();
	} catch(e1) {}
	sText = '' + sText;
	dim = document.getElementById('dimmer');
	dim.style.display = 'block';
	sText = str_replace("\n",'<br />', sText);
	txt = document.getElementById('alert-text');
	txt.innerHTML = '<p>' + sText + '</p>';
	dlg = document.getElementById('alert');
	var y = document.documentElement.scrollTop + 350;
	dlg.style.top = y + 'px';
	dlg.style.display = 'block';
}

function confirm2(sText,sCallbackFunction) {
	try {
	fld = document.getElementById('fldFake');
	fld.focus();
	} catch(e1) {}
	dim = document.getElementById('dimmer');
	dim.style.display = 'block';
	sText = str_replace("\n",'<br />', sText);
	txt = document.getElementById('confirm-text');
	txt.innerHTML = '<p>' + sText + '</p>';
	dlg = document.getElementById('confirm');
	y = document.documentElement.scrollTop + 350;
	dlg.style.top = y + 'px';
	dlg.style.display = 'block';
	CONFIRM_CALLBACK = sCallbackFunction;
}

function HideConfirmYes() {
	HideAlertAndConfirm();
	try {
		eval(CONFIRM_CALLBACK);
	} catch(e1) {}
	CONFIRM_CALLBACK = '';
}

function HideAlertAndConfirm() {
	try {
		dim = document.getElementById('dimmer');
		dim.style.display = 'none';
	} catch(e1) {}
	try {
		dlg = document.getElementById('alert');
		dlg.style.display = 'none';
		dlg = document.getElementById('benefits');
		dlg.style.display = 'none';
	} catch(e2) {}
	try {
		dlg = document.getElementById('confirm');
		dlg.style.display = 'none';
	} catch(e3) {}
}

function OnLoad(sTitle) {
	fld = document.getElementById('dimmer');
	fld.style.height = GetHeight() + 'px';
	switch (sTitle) {
		case 'index.php':
			try {
				OpenListings();
			} catch(e1) {}
			fld = document.getElementById('fldWhat');
			try{fld.select();}catch(e1){}
			break;
		case 'directory.php':
			fld = document.getElementById('fldWhat');
			try{fld.select();}catch(e1){}
			break;
		case 'contact.php':
			fld = document.getElementById('fldName');
			try{fld.select();}catch(e1){}
			break;			
		case 'listing_add.php':
			fld = document.getElementById('fldFirstName');
			try{fld.focus();fld.select();}catch(e1){}			
			break;
		default:
			fld = document.getElementById('fldWhat');
			try{fld.select();}catch(e1){}
			break;
	}
	try {
	var fld2 = document.getElementById('listings');
	fld2.style.visibility = 'visible';
	} catch(e2){}
}

function RemoveListing(sUser) {
	sKey = document.getElementById('fldChosenPkey').value;
	if (sKey == '') return;
	confirm2('Do you wish to remove this listing PERMANENTLY?',"RemoveListing2('" + sUser + "');")
}

function RemoveListing2(sUser) {
	sKey = document.getElementById('fldChosenPkey').value;
	if (sKey == '') return;
	btn = document.getElementById('btnRemove');
	btn.value = 'Removing...';
	btn.disabled = true;
	sMsg = 'mode=removelisting&user=' + sUser + '&key=' + sKey;
	AjaxSend(sMsg);
}

function GetCleanFieldValue(sItem) {
	try {
		fld = document.getElementById(sItem);
		sVal = fld.value + '';
		sVal = trim(str_replace('&','and',sVal));
		sVal = str_replace('|','',sVal);
		sVal = str_replace(':','',sVal);
		return sVal;
	} catch(e1) {}
	return '';
}

function CheckRequiredField(sLabel, sVal) {
	if (sVal == '') {
		alert2(sLabel + ' is a required field.');
		return true;
	} else {
		return false;
	}
}

function UpdateListing(sUser) {
	sKey = document.getElementById('fldChosenPkey').value + '';
	if (sKey == '') return;
	sCompany = GetCleanFieldValue('fldCompany');
	sPhone = GetCleanFieldValue('fldPhone');
	sEmail = GetCleanFieldValue('fldEmail');
	sWebsite = GetCleanFieldValue('fldWebsite');
	sByline = GetCleanFieldValue('fldByline');
	sKeywords = GetCleanFieldValue('fldKeywords');
	sAddr1 = GetCleanFieldValue('fldAddr1');
	sAddr2 = GetCleanFieldValue('fldAddr2');
	sTown = GetCleanFieldValue('fldTown');
	sRegion = GetCleanFieldValue('fldRegion');
	sPostCode = GetCleanFieldValue('fldPostcode');
	sCatKey1 = document.getElementById('fldCat1Key').value + '';
	sCatKey2 = document.getElementById('fldCat2Key').value + '';
	sCatKey3 = document.getElementById('fldCat3Key').value + '';
	sCatKey4 = document.getElementById('fldCat4Key').value + '';
	sCatsUpdated = document.getElementById('fldCatsUpdated').value + '';	
	if (CheckRequiredField('Company', sCompany)) return;
	if (CheckRequiredField('Phone', sPhone)) return;
	if (CheckRequiredField('Email', sEmail)) return;
	if (CheckRequiredField('Website', sWebsite)) return;
	if (CheckRequiredField('Byline', sByline)) return;
	if (CheckRequiredField('Keywords', sKeywords)) return;
	if (CheckRequiredField('Address Line 1', sAddr1)) return;
	if (CheckRequiredField('Town', sTown)) return;
	if (CheckRequiredField('Region', sRegion)) return;
	if (CheckRequiredField('Post Code', sPostCode)) return;
	if (sCatKey1 == '' && sCatKey2 == '' && sCatKey3 == '' && sCatKey4 == '') {
		alert2('At least one category must be chosen.');
		return false;
	}
	btn = document.getElementById('btnUpdate');
	btn.value = 'Updating...';
	btn.disabled = true;	
	sMsg = 'mode=updatelisting&user=' + sUser + '&chosen=';
	sMsg = sMsg + 'key:' + sKey + '|';
	sMsg = sMsg + 'company:' + sCompany + '|';
	sMsg = sMsg + 'phone:' + sPhone + '|';
	sMsg = sMsg + 'email:' + sEmail + '|';
	sMsg = sMsg + 'website:' + sWebsite + '|';
	sMsg = sMsg + 'byline:' + sByline + '|';
	sMsg = sMsg + 'keywords:' + sKeywords + '|';
	sMsg = sMsg + 'addr1:' + sAddr1 + '|';
	sMsg = sMsg + 'addr2:' + sAddr2 + '|';
	sMsg = sMsg + 'town:' + sTown + '|';
	sMsg = sMsg + 'region:' + sRegion + '|';
	sMsg = sMsg + 'postcode:' + sPostCode + '|';
	sMsg = sMsg + 'cat1:' + sCatKey1 + '|';
	sMsg = sMsg + 'cat2:' + sCatKey2 + '|';
	sMsg = sMsg + 'cat3:' + sCatKey3 + '|';
	sMsg = sMsg + 'cat4:' + sCatKey4 + '|';
	sMsg = sMsg + 'cats_updated:' + sCatsUpdated + '|';	
	AjaxSend(sMsg);
}

function ChangeCatA(nItem) {
	fld = document.getElementById('fldCat' + nItem + 'A');
	sKey = fld.value;
	sMsg = 'mode=getsubcats&chosen=' + sKey + '&field=' + nItem;
	AjaxSend(sMsg);
}

function TranslateCats(nCatA, nCatB, nItem) {
	// check to see if this cat is already used or not
	
	for (i = 1; i <= 4; i++) {
		if (i != nItem) {
			var sKey = '' + document.getElementById('fldCat' + i + 'Key').value;
			if (sKey == nCatB) {
				alert2('That category is already selected.\nChoose another.');
				return;
			}
		}
	}	
	
	//okay to go through, then 
	fldKey = document.getElementById('fldCat' + nItem + 'Key');
	fldKey.value = '' + nCatB; 
	sMsg = 'mode=translatecats&catA=' + nCatA + '&catB=' + nCatB + '&field=' + nItem;
	AjaxSend(sMsg);
}

function SetCat(nItem) {
	spanalt = document.getElementById('catalt' + nItem);
	spanalt.style.display = 'none';
	spanarea = document.getElementById('catarea' + nItem);
	spanarea.style.display = 'inline';	
	fldA = document.getElementById('fldCat' + nItem + 'A');
	sFldAVal = fldA.value;
	fldAReset = document.getElementById('fldCat' + nItem + 'AReset');
	fldAReset.selected = true;
	fldB = document.getElementById('fldCat' + nItem + 'B');
	sFldBVal = fldB.value;
	select_innerHTML(fldB,'<option value="-1">...  </option>');	
	fldCat = document.getElementById('fldCat' + nItem);
	if (sFldAVal == '-1' || sFldBVal == '-1') {
		ClearCat(nItem);
		return;
	}
	TranslateCats(sFldAVal, sFldBVal, nItem);
	fld = document.getElementById('fldCatsUpdated');
	fld.value = '1';
}

function CancelCat(nItem) {
	spanalt = document.getElementById('catalt' + nItem);
	spanalt.style.display = 'none';
	spanarea = document.getElementById('catarea' + nItem);
	spanarea.style.display = 'inline';
	fldAReset = document.getElementById('fldCat' + nItem + 'AReset');
	fldAReset.selected = true;
	fldB = document.getElementById('fldCat' + nItem + 'B');
	select_innerHTML(fldB,'<option value="-1">...  </option>');
	fldCat = document.getElementById('fldCat' + nItem);
	if (fldCat.value == ' : ') {
		ClearCat(nItem);
	}
}

function ChangeCat(nItem) {
	spanalt = document.getElementById('catalt' + nItem);
	spanalt.style.display = 'inline';
	spanarea = document.getElementById('catarea' + nItem);
	spanarea.style.display = 'none';
}

function ClearCat(nItem) {
	fld = document.getElementById('fldCat' + nItem);
	fld.value = '';
	fldKey = document.getElementById('fldCat' + nItem + 'Key');
	fldKey.value = '';
	fld = document.getElementById('fldCatsUpdated');
	fld.value = '1';
}

function GetListing(sKey) {
	document.getElementById('fldChosenPkey').value = '';
	document.getElementById('fldPartner').value = '';
	document.getElementById('fldCompany').value = '';
	document.getElementById('fldPhone').value = '';
	document.getElementById('fldEmail').value = '';
	document.getElementById('fldWebsite').value = '';
	document.getElementById('fldByline').value = '';
	document.getElementById('fldKeywords').value = '';
	document.getElementById('fldAddr1').value = '';
	document.getElementById('fldAddr2').value = '';
	document.getElementById('fldTown').value = '';
	document.getElementById('fldRegion').value = '';
	document.getElementById('fldPostcode').value = '';
	document.getElementById('fldCat1').value = '';
	document.getElementById('fldCat2').value = '';
	document.getElementById('fldCat3').value = '';
	document.getElementById('fldCat4').value = '';
	document.getElementById('fldCat1Key').value = '';
	document.getElementById('fldCat2Key').value = '';
	document.getElementById('fldCat3Key').value = '';
	document.getElementById('fldCat4Key').value = '';
	document.getElementById('fldCatsUpdated').value = '';	
	if (sKey != '-1') {
		sMsg = 'mode=getlisting&chosen=' + sKey;
		AjaxSend(sMsg);
	} else {
		btnRenew = document.getElementById('btnUpgradeRenew');
		btnRenew.style.display = 'none';	
	}
}

function UpdateProfile(sUser) {
	sEmail = document.getElementById('fldEmail').value;
	sFullName = document.getElementById('fldFullName').value;
	sCompany = document.getElementById('fldCompany').value;
	sPassword = document.getElementById('fldPassword').value;
	btn = document.getElementById('btnUpdateProfile');
	btn.value = 'Updating...';
	btn.disabled = true;
	btn = document.getElementById('btnRemoveAccount');
	btn.disabled = true;
	sMsg = 'mode=updateprofile&user=' + sUser + '&email=' + sEmail + '&fullname=' + sFullName + '&company=' + sCompany + '&password=' + sPassword;
	AjaxSend(sMsg);
}

function RemoveAccount(sUser) {
	confirm2("Do you wish to remove this account PERMANENTLY\nand remove all its related listings and other information from this site?", "RemoveAccount2('" + sUser + "');");
}

function RemoveAccount2(sUser) {
	btn = document.getElementById('btnUpdateProfile');
	btn.disabled = true;	
	btn = document.getElementById('btnRemoveAccount');
	btn.value = 'Removing...';
	btn.disabled = true;
	sMsg = 'mode=removeaccount&user=' + sUser;
	AjaxSend(sMsg);
}

function Recategorize(sPinGroup, sUser, sListingKey) {
	sPinGroupKey = document.getElementById(sPinGroup).value;
	btn = document.getElementById('btn' + sPinGroup);
	btn.value = 'Saving...';
	sMsg = 'mode=recategorize&pingroup=' + sPinGroup + '&pingroupkey=' + sPinGroupKey + '&user=' + sUser + '&listingkey=' + sListingKey;
	AjaxSend(sMsg);
}

function RemovePinGroup(sItem, sUser, sButton) {
	confirm2("Do you wish to remove this category PERMANENTLY\nand move all of its items to the Unassigned category?","RemovePinGroup2('" + sItem + "','" + sUser + "','" + sButton + "');");
}

function RemovePinGroup2(sItem, sUser, sButton) {
	fld = document.getElementById(sItem);
	sKey = fld.value;
	if (sKey != '') {
		btn = document.getElementById(sButton);
		btn.value = 'Removing...';
		btn.disabled = false;
		sMsg = 'mode=removepingroup&key=' + sKey + '&field=' + sItem + '&button=' + sButton + '&user=' + sUser;
		AjaxSend(sMsg);
	}
}

function UpdatePinGroup(sItem, sUser, sButton) {
	fld = document.getElementById(sItem);
	sKey = fld.value;
	if (sKey == '') {
		sKey = 'NEW';
	}
	fld2 = document.getElementById(sItem + 'Val');
	sGroup = fld2.value;
	sGroup = str_replace('!','',sGroup);
	sGroup = str_replace('`','',sGroup);
	sGroup = str_replace('$','',sGroup);
	sGroup = str_replace('&','',sGroup);
	sGroup = trim(sGroup);
	btn = document.getElementById(sButton);
	fld2.value = sGroup;
	btn.value = 'Updating...';
	btn.disabled = true;
	if (sGroup == '') {
		btn.value = 'Update';
		btn.disabled = false;
	} else {
		sMsg = 'mode=updatepingroup&key=' + sKey + '&field=' + sItem + '&group=' + sGroup + '&button=' + sButton + '&user=' + sUser;
		AjaxSend(sMsg);
	}
}

function KillEnter2(oEvent) {
	var oTarget =(oEvent.target)? oEvent.target : oEvent.srcElement;
	sID = oTarget.getAttribute('id');
	if (oEvent.keyCode == 13) {
		oEvent.cancelBubble = true;
		if (oEvent.stopPropagation) {
			oEvent.stopPropagation();
		}
		return false;
	}
	return true;
}

function KillEnter(oEvent) {
  var oTarget =(oEvent.target)? oEvent.target : oEvent.srcElement;
  sID = oTarget.getAttribute('id');
  if (oEvent.keyCode == 13) {
  	if (sID == 'fldUser') {
  		fld = document.getElementById('fldPass');
  		try{fld.focus();}catch(e1){}
  	} else { //fldPass 
  		oEvent.cancelBubble = true;
  		if (oEvent.stopPropagation) {
  			oEvent.stopPropagation();
  		}
  		HandleLogin();
  		return false;
  	}
  }
  return true;
  //alert(oEvent.keyCode);	
}

function HandleLogin() {
	sUser = document.getElementById('fldUser').value;
	sPass = document.getElementById('fldPass').value;
	sRemember = 0;
	if (document.getElementById('fldRememberMe').checked) {
		sRemember = document.getElementById('fldRememberMe').value;
	}
	sMsg = 'mode=login&chosen=' + sUser + '!' + sPass + '&remember=' + sRemember;
	AjaxSend(sMsg);
	fld = document.getElementById('btnLoginSubmit');
	fld.value = '  Logging In...  ';
	fld.disabled = true;
	document.getElementById('btnCancelSubmit').disabled = true;
}

function ToggleLogin(sMsg) {
	try {
		document.getElementById('error').innerHTML = '';
	} catch(e1) {}
	if (sMsg == 'special') {
		location.href="index.php?m=login";
	} else {
		fld = document.getElementById('loginbox');
		if ((fld.style.display == 'none') || (fld.style.display == '')) {
			fld.style.display = 'block';
			fldUser = document.getElementById('fldUser');
			try{fldUser.focus();fldUser.select();}catch(e1){}
		} else {
			fld.style.display = 'none';
		}
	}
}

function HideLoginBox() {
	document.getElementById('loginbox').style.display = 'none';
	document.getElementById('error').innerHTML = '';
	return false;
}

function FocusWhat() {
	try {
		fld = document.getElementById('fldWhat');
		fld.focus();
		fld.select();
	} catch(e) {
	}
}

function ShowLoginWarning() {
	fld = document.getElementById('loginwarning');
	fld.style.display = 'block';
}

function HideLoginWarning(oEvent) {
  var oTarget =(oEvent.target)? oEvent.target : oEvent.srcElement;
  sID = oTarget.getAttribute('id');
	fld = document.getElementById('loginwarning');
	fld.style.display = 'none';
	if (sID == 'skip1' || sID == 'skip2') {
		return true;
	} else {
  		oEvent.cancelBubble = true;
  		if (oEvent.stopPropagation) {
  			oEvent.stopPropagation();
  		}
  		return false;
  	}
}

function PinIt(sKey, sUser) {
	if (sUser == '') {
		ShowLoginWarning();		
	} else {
		var sMsg = 'mode=pin&chosen=' + sKey + '!' + sUser;
		AjaxSend(sMsg);
	}
}

function intval( mixed_var, base ) {
    var tmp;
 
    if( typeof( mixed_var ) == 'string' ){
        tmp = parseInt(mixed_var);
        if(isNaN(tmp)){
            return 0;
        } else{
            return tmp.toString(base || 10);
        }
    } else if( typeof( mixed_var ) == 'number' ){
        return Math.floor(mixed_var);
    } else{
        return 0;
    }
}

function UnpinIt(sGroup, sKey, sUser) {
	fld = document.getElementById(sGroup);
	var s = fld.innerHTML;
	var s2 = s.split('&nbsp;');
	s = s2[1];
	s = s.split("").reverse().join("");
	s = s.substr(s.indexOf(')')+1,s.indexOf('(')-1);
	s = s.split("").reverse().join("");
	nGroupCount = intval(s);
	nGroupCount--;
	if (nGroupCount <= 0) {
		fld.style.display = 'none';
	} else {
		fld.innerHTML = '<img id="list-{$listings[i].pingroup}-expando" src="images/expando_open.gif" width=16 height=16 />&nbsp;' + sGroup + ' (' + nGroupCount + ')';
	}
	var sMsg = 'mode=unpin&chosen=' + sKey + '!' + sUser;
	AjaxSend(sMsg);
}

function ClearFields(oItem) {
	if ((oItem.value == 'e.g. Business Cards') || (oItem.value == '(Optional) e.g. London')) {
		fld = document.getElementById('fldWhat');
		fld.value = '';
		fld.style.color = '#404040';
		fld = document.getElementById('fldWhere');
		fld.value = '';
		fld.style.color = '#404040';
	} else {
		fld = document.getElementById('fldWhat');
		fld.style.color = '#404040';
		fld = document.getElementById('fldWhere');
		fld.style.color = '#404040';
	}
}

function GetHeight() {
	return (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight;
}

function GetAbsoluteY(oElement) {
	var iReturnValue = 0;
	while( oElement != null ) {
		iReturnValue += oElement.offsetTop;
		oElement = oElement.offsetParent;
	}
	return iReturnValue;
}

function GetAbsoluteX(oElement) {
	var iReturnValue = 0;
	while( oElement != null ) {
		iReturnValue += oElement.offsetLeft;
		oElement = oElement.offsetParent;
	}
	return iReturnValue;
}

function ChoosePartnerUpgrade(oEvent) {
	var oTarget =(oEvent.target)? oEvent.target : oEvent.srcElement;
	var sName = oTarget.name;
	var sValue = oTarget.value;
	fld = document.getElementById('fldPaymentType');
	switch (sValue) {
		case '1':
			fld.style.visibility = 'visible';
			fld.style.display = 'block';			
			break;
		default:
			fld.style.visibility = 'hidden';
			fld.style.display = 'none';
			break; 
	}
}

function ClearCategory(nWhich) {
	var fld = document.getElementById('fldCat' + nWhich + 'Val');
	fld.value = '';
}

function ChooseCategory(oEvent) {
	var oTarget =(oEvent.target)? oEvent.target : oEvent.srcElement;
	var sName = oTarget.name;
	var sID = oTarget.id;
	var sValue = oTarget.value;
	
	var tempcatchosen = document.getElementById('tempcatchosen');
	tempcatchosen.value = sID;
	
	var catchoices = document.getElementById('catchoices');
	var llen = catchoices.childNodes.length;
	for (var i = 0; i < llen; i++) {
		try {
		catchoices.childNodes[i].childNodes[2].style.display = 'none';
		try {catchoices.childNodes[i].childNodes[0].childNodes[0].src = 'images/expand.gif';} catch(e1){}
		} catch(e2) {}
	}
	
	var nTop = GetAbsoluteY(oTarget);
	var nLeft = GetAbsoluteX(oTarget);
	cat = document.getElementById('categories');
	dim = document.getElementById('dimmer');
	dim.style.display = 'block';
	cat.style.top =  nTop + 'px';
	cat.style.left = (nLeft + 80) + 'px';
	cat.style.display = 'block';
	sel1 = document.getElementById('fldUpgrade');
	sel2 = document.getElementById('fldPaymentType');
	sel1.style.display = 'none';
	sel2.style.display = 'none';
	window.scrollBy(0,GetHeight());
}

function HideCategories() {
	try {
	cat = document.getElementById('categories');
	dim = document.getElementById('dimmer');
	cat.style.display = 'none';
	dim.style.display = 'none';
	sel1 = document.getElementById('fldUpgrade');
	sel2 = document.getElementById('fldPaymentType');
	sel1.style.display = 'block';
	sel2.style.display = 'block';
	} catch(e1) {}
}

function selector(oItem) {
	var tempcatchosen = document.getElementById('tempcatchosen');
	var tempcat = document.getElementById(tempcatchosen.value + 'Val');
	var ParentVal = oItem.parentNode.parentNode.parentNode.childNodes[0].innerHTML;
	ParentVal = ParentVal.split('>')[1];
	ParentVal = trim(ParentVal);
	tempcat.value = ParentVal + ' : ' + oItem.innerHTML;
	HideCategories();
}

function toggle(oItem) {
	var li = oItem.parentNode;
	var ul = li.parentNode;
	oItem.blur();

	var capture = li.childNodes[2].style.display;

	var llen = ul.childNodes.length;
	for (var i = 0; i < llen; i++) {
		try {
		ul.childNodes[i].childNodes[2].style.display = 'none';
		try {ul.childNodes[i].childNodes[0].childNodes[0].src = 'images/expand.gif';} catch(e1){}
		} catch(e) {}
	}

	if (capture != 'block') {
		try {li.childNodes[0].childNodes[0].src = 'images/expanded.gif';} catch(e2){}
	li.childNodes[2].style.display = 'block';
	} else {
		try {li.childNodes[0].childNodes[0].src = 'images/expand.gif';} catch(e3){}
		li.childNodes[2].style.display = 'none';
	}
	try {
		cat = document.getElementById('categories');
		nBottom = GetAbsoluteY(cat) + cat.style.height + 5;
	} catch (e) {
		cat = document.getElementById('menu-sidebar');
		nBottom = GetAbsoluteY(cat) + cat.style.height + 5;
	}
	//window.scrollBy(0,nBottom); 2008.mar.17 -- wants this disabled 
}

function StartOver() {
	location.reload(true);
	return false;
}

function ListingAddCompanyUpdate() {
	f1 = document.getElementById('fldCompany').value;
	f2 = document.getElementById('company');
	sTemp = f1 + '                                                     '; //55 spaces
	sTest = trim(sTemp);
	if (sTest.length > 55) {
		sTemp = sTemp.substring(0, 52) + '...';
	}
	sTemp = sTemp.substring(0, 55);
	f2.innerHTML = sTemp;
}

function ListingAddTelephoneUpdate() {
	f1 = document.getElementById('fldTelephone').value;
	f2 = document.getElementById('phone');
	sTemp = f1 + '                                                '; //50 spaces
	sTemp = sTemp.substring(0, 50);
	f2.innerHTML = 'Tel. ' + sTemp;
}

function ListingAddBylineUpdate() {
	f1 = document.getElementById('fldByline').value;
	f2 = document.getElementById('byline');
	sTemp = f1 + '                                                '; //50 spaces
	sTest = trim(sTemp);
	if (sTest.length > 255) {
		sTemp = sTemp.substring(0, 252) + '...';
	}
	sTemp = sTemp.substring(0, 255);
	f2.innerHTML = sTemp;
}

function ListingAddTownUpdate() {
	f1 = document.getElementById('fldTown').value;
	f2 = document.getElementById('town');
	sTemp = f1 + '                                                '; //50 spaces
	sTest = trim(sTemp);
	if (sTest.length > 38) {
		sTemp = sTemp.substring(0, 35) + '...';
	}
	sTemp = sTemp.substring(0, 38);
	f2.innerHTML = trim(sTemp);
}

function ListingAddRegionUpdate() {
	f1 = document.getElementById('fldRegion').value;
	f2 = document.getElementById('region');
	sTemp = f1 + '                                                '; //50 spaces
	sTest = trim(sTemp);
	if (sTest.length > 38) {
		sTemp = sTemp.substring(0, 35) + '...';
	}
	sTemp = sTemp.substring(0, 38);
	f2.innerHTML = ', ' + trim(sTemp);
}

function ShowListing() {
	ListingAddCompanyUpdate();
	ListingAddTelephoneUpdate();
	ListingAddBylineUpdate();
	ListingAddTownUpdate();
	ListingAddRegionUpdate();
}

function OnKeyUp(oEvent) {
	var oTarget =(oEvent.target)? oEvent.target : oEvent.srcElement;
	var sName = oTarget.name;
	if (gsPageName == 'listing_add.php') {
		switch (sName) {
			case 'fldCompany':
				ListingAddCompanyUpdate();
				break;
			case 'fldTelephone':
				ListingAddTelephoneUpdate();
				break;
			case 'fldByline':
				ListingAddBylineUpdate();
				break;
			case 'fldTown':
				ListingAddTownUpdate();
				break;
			case 'fldRegion':
				ListingAddRegionUpdate();
				break;
		}
	}
}

var STR_PAD_LEFT = 1;
var STR_PAD_RIGHT = 2;
var STR_PAD_BOTH = 3;
 
function pad(str, len, pad, dir) {
 
	if (typeof(len) == "undefined") { var len = 0; }
	if (typeof(pad) == "undefined") { var pad = ' '; }
	if (typeof(dir) == "undefined") { var dir = STR_PAD_RIGHT; }
 
	if (len + 1 >= str.length) {
 
		switch (dir){
 
			case STR_PAD_LEFT:
				str = Array(len + 1 - str.length).join(pad) + str;
			break;
 
			case STR_PAD_BOTH:
				var right = Math.ceil((padlen = len - str.length) / 2);
				var left = padlen - right;
				str = Array(left+1).join(pad) + str + Array(right+1).join(pad);
			break;
 
			default:
				str = str + Array(len + 1 - str.length).join(pad);
			break;
 
		} // switch
 
	}
 
	return str;
 
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

function str_replace(search,replace,subject) {
 
  if(!(replace instanceof Array)){
    replace=new Array(replace);
    if(search instanceof Array){//If search  is an array and replace  is a string, then this replacement string is used for every value of search
      while(search.length>replace.length){
        replace[replace.length]=replace[0];
      }
    }
  }
 
  if(!(search instanceof Array))search=new Array(search);
  while(search.length>replace.length){//If replace  has fewer values than search , then an empty string is used for the rest of replacement values
    replace[replace.length]='';
  }
 
  if(subject instanceof Array){//If subject is an array, then the search and replace is performed with every entry of subject , and the return value is an array as well.
    for(k in subject){
      subject[k]=str_replace(search,replace,subject[k]);
    }
    return subject;
  }
  
  for(var k=0; k<search.length; k++){
    var i = subject.indexOf(search[k]);
    while(i>-1){
      subject = subject.replace(search[k], replace[k]);
      i = subject.indexOf(search[k],i);
    }
  }
 
  return subject;
}


/*
              AJAX STUFF
*/

var XFER = CreateAJAXObject();

function CreateAJAXObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function AjaxGet() {
	if (XFER.readyState == 4) {
		var m = XFER.responseText;
		var asPackage = m.split('|');
		var sType = asPackage[0];
		var sMsg = asPackage[1];
		switch (sType) {
			case 'login':
				HandleLoginResponse(sMsg);
				break;
			case 'pin':
				HandlePin(sMsg);
				break;
			case 'unpin':
				HandleUnpin(sMsg);
				break;	
			case 'updatepingroup':
				HandleUpdatePinGroup(sMsg);
				break;
			case 'removepingroup':
				HandleRemovePinGroup(sMsg);
				break;
			case 'updateprofile':
				HandleUpdateProfile(sMsg);
				break;
			case 'removeaccount':
				HandleRemoveAccount(sMsg);
				break;
			case 'getlisting':
				HandleGetListing(sMsg);
				break;
			case 'getsubcats':
				HandleChangeCatB(sMsg);
				break;
			case 'translatecats':
				HandleTranslateCats(sMsg);
				break;
			case 'updatelisting':
				HandleUpdateListing(sMsg);
				break;
			case 'removelisting':
				HandleRemoveListing(sMsg);
				break;
			case 'checkemail':
				HandleCheckEmail(sMsg);
				break;
			case 'recategorize':
				HandleRecategorize(sMsg);
				break;
			case 'checkunique':
				HandleCheckUnique(sMsg);
				break;
			default:
				//Error Handler can go here
				break;
		}
	}
}

function AjaxSend(sMsg) {
	XFER.open("POST", 'AJAX.php', true);
	XFER.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	XFER.onreadystatechange = AjaxGet;
	XFER.send(sMsg);
}

function HandleCheckUnique(sMsg) {
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var sResult = '';
	var sField = '';
	for (i=0; i < group.message.length; i++) {
		if (group.message[i].key == 'result') {
			sResult = group.message[i].value;
		}
		if (group.message[i].key == 'field') {
			sField = group.message[i].value;
		}
	}
	switch (sField) {
		case 'company':
			sField2 = 'Company Name';
			break;
		case 'email':
			sField2 = 'Email Address';
			break;
		case 'website':
			sField2 = 'Website URL';
			break;
		case 'phone':
			sField2 = 'Telephone Number';
			break;
	}
	if (sResult != 'OK') {
		alert2('The ' + sField2 + ' has already been used and is\neither a published listing or is awaiting moderation.');
		btn = document.getElementById('btnAddListing');
		btn.style.backgroundColor = '#3d5984';
		btn.style.color = '#bcbcbc';
		btn.disabled = true;
	} else {
		btn = document.getElementById('btnAddListing');
		btn.style.backgroundColor = '#335492';
		btn.style.color = '#FFF';
		btn.disabled = false;
	}
}

function HandleCheckEmail(sMsg) {
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var sResult = group.message[0].value;
	if (sResult != 'OK') {
		//sResult = str_replace('click here', '<a href="
		alert2(sResult);
	}
}

function HandleRecategorize(sMsg) {
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var sKey = group.message[0].value;
	btn = document.getElementById('btn' + sKey);
	btn.value = 'Set';
	pause(1000);
	btn.disabled = false;
}

function HandleRemoveListing(sMsg) {
	btn = document.getElementById('btnRemove');
	btn.value = 'Remove';
	pause(1000);
	btn.disabled = false;
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var sResult = group.message[0].value;
	if (sResult != 'OK') {
		alert2(sResult);
	} else {
		location.href = 'index.php?pinned';
	}
}

function HandleUpdateListing(sMsg) {
	btn = document.getElementById('btnUpdate');
	btn.value = 'Update';
	pause(1000);
	btn.disabled = false;
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var sResult = group.message[0].value;
	if (sResult != 'OK') {
		alert2(sResult);
	}
}

function HandleTranslateCats(sMsg) {
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	for (i=0; i < group.message.length; i++) {
		if (group.message[i].key == 'catA') {
			sCatA = group.message[i].value;
		}
		if (group.message[i].key == 'catB') {
			sCatB = group.message[i].value;
		}		
		if (group.message[i].key == 'field') {
			nItem = group.message[i].value;
		}
	}
	fld = document.getElementById('fldCat' + nItem);
	fld.value = sCatA + ' : ' + sCatB;
}

function HandleChangeCatB(sMsg) {
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var n = group.message.length - 1;
	var s = '';
	for (i=0; i < n; i++) {
		var sKey = group.message[i].key;
		var sVal = group.message[i].value;
		s = s + '<option value="' + sKey + '">' + sVal + "  </option>\n"; 
	}
	sVal = group.message[i].value;
	fld = document.getElementById('fldCat' + sVal + 'B');
	select_innerHTML(fld,s);	
}

function HandleGetListing(sMsg) {
	fld = document.getElementById('fldCatsUpdated');
	fld.value = '0';
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	for (i=0; i < group.message.length; i++) {
		var sKey = group.message[i].key;
		var sVal = group.message[i].value;
		
		try {
			fld = document.getElementById('fld' + sKey);
			fld.value = sVal;
		} catch(e1) {
		}
	}
	fldCheck = document.getElementById('fldPartner');
	if (fldCheck.value == 'Free Listing') {
		btnRenew = document.getElementById('btnUpgradeRenew');
		btnRenew.style.display = 'inline';
	} else {
		btnRenew = document.getElementById('btnUpgradeRenew');
		btnRenew.style.display = 'none';
	}		
}

function HandleUpdateProfile(sMsg) {
	btn = document.getElementById('btnUpdateProfile');
	btn.value = 'Update';
	pause(1000);
	btn.disabled = false;
	btn = document.getElementById('btnRemoveAccount');
	btn.value = 'Remove This Account';
	btn.disabled = false;
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var sResult = group.message[0].value;
	if (sResult != 'OK') {
		alert2(sResult);
		window.location.reload(true);
	}	
}

function HandleRemoveAccount(sMsg) {
	btn = document.getElementById('btnUpdateProfile');
	btn.value = 'Update';
	pause(1000);
	btn.disabled = false;
	btn = document.getElementById('btnRemoveAccount');
	btn.value = 'Remove This Account';
	btn.disabled = false;
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var sResult = group.message[0].value;
	if (sResult != 'OK') {
		alert2(sResult);
	} else {
		alert2('Account permanently deleted');
	}
	location.href = "index.php?m=logout";
}

function HandleUpdatePinGroup(sMsg) {
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	for (i=0; i < group.message.length; i++) {
		if (group.message[i].key == 'result') {
			sResult = group.message[i].value;
		}
		if (group.message[i].key == 'button') {
			sButton = group.message[i].value;
		}		
		if (group.message[i].key == 'field') {
			sField = group.message[i].value;
		}
		if (group.message[i].key == 'key') {
			sKey = group.message[i].value;
		}
	}
	btn = document.getElementById(sButton);
	fld = document.getElementById(sField);
	fld.value = sKey;
	setTimeout("btn.value = 'Update';",500);
	pause(1000);	
	btn.disabled = false;
	if (sResult != 'OK') {
		fld2 = document.getElementById(sField + 'Val');
		fld2.value = '';	
		alert2(sResult);
	}
}

function HandleRemovePinGroup(sMsg) {
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	for (i=0; i < group.message.length; i++) {
		if (group.message[i].key == 'result') {
			sResult = group.message[i].value;
		}
		if (group.message[i].key == 'button') {
			sButton = group.message[i].value;
		}		
		if (group.message[i].key == 'field') {
			sField = group.message[i].value;
		}
	}
	btn = document.getElementById(sButton);
	fld = document.getElementById(sField);
	setTimeout("btn.value = 'Remove';",500);	
	pause(1000);
	fld.value = '';
	fld2 = document.getElementById(sField + 'Val');
	fld2.value = '';
	btn.disabled = false;
}

function HandleLoginResponse(sMsg) {
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var sResult = group.message[0].value;
	fld = document.getElementById('btnLoginSubmit');
	fld.disabled = false;
	fld.value = '  Login  ';
	document.getElementById('btnCancelSubmit').disabled = false;
	if (sResult == 'PASS') {
		HideLoginBox();
		location.href = 'index.php';
		//window.location.reload(true);
	} else {
		document.getElementById('error').innerHTML = 'Bad Email or Password. Try Again.';
		fld = document.getElementById('fldPass');
		fld.value = '';
		try{fld.focus();}catch(e1){}
	}
}

function pause(millis) {
	var date = new Date();
	var curDate = null;

	do { curDate = new Date(); }
	while(curDate-date < millis);
}

function HandleUnpin(sMsg) {
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var sItem = group.message[0].value;
	fld = document.getElementById(sItem);
	fld.style.display = 'none';
}

function HandlePin(sMsg) {
	var r = eval("(" + sMsg + ")");
	var group = r.messages;
	var sResult;
	var nPincount;
	var sItem;
	for (i=0; i < group.message.length; i++) {
		if (group.message[i].key == 'result') {
			sResult = group.message[i].value;
		}
		if (group.message[i].key == 'item') {
			sItem = group.message[i].value;
		}
		if (group.message[i].key == 'pincount') {
			nPinCount = group.message[i].value;
		}
	}
	if (sResult == 'OK') { //item now pinned
		fld = document.getElementById(sItem + '-pincount');
		fld.innerHTML = nPinCount;
		fld = document.getElementById(sItem);
		fld.style.backgroundColor = '#FFF';
		setTimeout("fld.style.backgroundColor = '';", 220);
	} else { //pinned, previously
		//alert3('You already have this company PINNED\non your 118FM Dashboard.', sItem);
		alert3('alreadypinned', sItem);
		//fld = document.getElementById(sItem);
		//fld.style.backgroundColor = '#000';
		//setTimeout("fld.style.backgroundColor = '';", 220);
	}
}

