function zapOneReview(handler, pt, pid, rt, rid) {
    setFormField('del_rev', 'rem_rt', rt);
    setFormField('del_rev', 'rem_rid', rid);
    setFormField('del_rev', 'call', handler);
    setFormField('del_rev', 'pt', pt)
    setFormField('del_rev', 'pid', pid)
    submitForm('del_rev');
}

function zapOneProduct(handler, pt, pid, rt, rid) {
    setFormField('del_product', 'rem_pt', pt);
    setFormField('del_product', 'rem_pid', pid);
    setFormField('del_product', 'call', handler);
    setFormField('del_product', 'pt', pt)
    setFormField('del_product', 'pid', pid)
    submitForm('del_product');
}

//opens help page
function helpPage() {
    opener.location = "/memberhelp.html";
    window.close();
}

//recipes hides and shows comment div
function setDivVis(divId, disp) {
    var div = document.getElementById(divId);
    if (div) {
        var style = div.style;
        if (style) {
            style.display = disp;
        }
    }
}

function showDiv(divId) {
    setDivVis(divId, 'block');
}

function hideDiv(divId) {
    setDivVis(divId, 'none');
}

//submit form for reviews - at least reviews, mebbe more
function submitForm(id) {
    if (document.getElementById(id)) {
        var form = document.getElementById(id).submit();
    } else {
        alert('Form ' + id + ' doesn\'t seem to exist ');
	}
}


//variables used here and there
var map;
var ord=Math.random()*10000000000000000;

//the following are for the reviews pages
//the product upgrade image swap
function MM_findObj(n, d)
{ //v4.01
	  var p,i,x;
	if(!d) d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length) {
	    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage()
{ //v3.0
	  var i,j=0,x,a=MM_swapImage.arguments;
	document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){
		document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];
	}
}

function MM_swapImgRestore()
{ //v3.0
	  var i,x,a=document.MM_sr;
	for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages()
{ //v3.0
	 var d=document; if(d.images)
	{ if(!d.MM_p) d.MM_p=new Array();
	   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}
	}
}

//opening the voting explanation window
function voting() {
    var options = 'width=600,height=400,location=no,resizable=yes'
    var url = '/voting_explained.html'
    var ordo = new Date().getTime()
    window.open(url, ordo, options)
}

//Price Grabbers page search thingy
function pgSearch(prod) {
    var prodStr = prod.replace(/s/g, "+");
    var srchStr = '<a class="rev_link" href="http://mumsnet.pgpartner.co.uk/search.php?topcat_search=1&form_keyword=' + prodStr + '&Search=">Compare prices</a>';
    document.write(srchStr);
}


//I am not sure what this does
function classChange(styleChange, item) {
    item.className = styleChange;
}

//Form functions
function setField(name, val) {
    if (document.getElementById(name)) {
        var input = document.getElementById(name);
        input.value = val;
    } else {
        alert('Input ' + name + ' doesn\'t seem to exist ');
	}
}

function setFormField(form, name, val) {
    if (form) {
        var inputs = document.getElementById(form);
        for (i = 0; i < inputs.length; i++) {
            var input = inputs[i];
            if (input.name == name) {
                input.value = val;
            }
        }
    } else {
        alert('Input ' + name + ' doesn\'t seem to exist in ');
	}
}

//casts a vote
function castVote(pt, pid, rid, direction) {
    var form = document.getElementById('vote_form')

    setFormField('vote_form', 'pt', pt);
    setFormField('vote_form', 'pid', pid);
    setFormField('vote_form', 'rid', rid);
    setFormField('vote_form', 'vote_change', direction)
    submitForm('vote_form')
}

//For Local, I think, for maps definitely
function loadNewMarkers() {
    setElementContent('rlist_div', '<img src="/gifn/loading_list.gif"  border="0" hspace="0" vspace="0">')
    var query = '/Local?call=MarkerLoader&lat=' + map.getCenter().lat() + '&zoom=' + map.getZoom() + '&lng=' + map.getCenter().lng() + '&o=' + new Date().getTime();
    var request = GXmlHttp.create();
    request.open("GET", query, true);
    request.onreadystatechange = function() {
        if (request.readyState == 4) {
            if (request.status == 200) {
                var responseDoc = request.responseXML;
                useMarkerXml(responseDoc);
            }
        }
    }
    request.send(null);
}

//in Local
function microList() {
    var options = 'width=500,height=500,location=no,resizable=yes';
    var ordo = new Date().getTime();
    var url = 'Local?call=SiteChooserPage';
    window.open(url, ordo, options);
}

//in member (ie MyMumsnet)

//checks nickname availability
function openNickPop() {
    var entered = document.joinproblem.nickname.value;
    var url = '/JoinMumsnet.html?checknick=1';
    if (entered && entered != "")
    url = url + '&entered=' + entered;
    var options = 'width=400,height=350,location=no,resizable=yes';
    var ordo = new Date().getTime();
    window.open(url, ordo, options);
}

// ************* Adam ****************
// otp ad bit
var docloc = String(document.location);
url = docloc.split('/');
var last = url.length - 1;
if(url[url.length - 1].substr(0,12) == "AllOnOnePage") {
  last = url.length - 2;
}


// url[last] = url[last].replace(/.site=/,'/' + local);
url[last] = url[last].replace(/\?.*=/,'/');
url[last] = url[last].replace(/\&.*=/,'/');
url[last] = url[last].replace(/com.mumsnet./,'');
url[last] = url[last].replace(/#.*/,'');

var otp = '';
var channel = '';
var a = '';
var j = '';

for (j = 3; j <= last; j++) {
	url[j] = url[j].replace(/a[0-9]+-.*/, '');
    url[j] = url[j].replace(/^[0-9]+-.*/, '');
    url[j] = url[j].replace(/[^a-zA-Z 0-9 _ -]+/g, '/');
    url[j] = url[j].replace(/[0-9 _ -]+/g, '');
    //otp = otp + '/' + url[j].toLowerCase();
}

if (url[last] == '') {
    last = last - 1;
}

for (j = 3; j <= last; j++) {
    otp = otp + '/' + url[j].toLowerCase();
}

otp = otp.replace('/agerange/','');
otp = otp.replace('//','');

if ((otp == '/') || (otp == '')) {
    otp = '/home';
}
otp = otp.replace(/local\/([^\/]*)\/.+/, 'local/$1');
otp = otp.replace(/^\/profile.+/, '/profile');
otp = otp.replace(/^\/session.+/, '/session');
otp = otp.replace(/^\/babynamefinder.+/, '/babynamefinder');
otp = otp.replace(/^\/member.+/, '/mymumsnet');
otp = otp.replace(/^\/joinmums.+/, '/mymumsnet');
otp = otp.replace(/^\/reporttalkpost.+/, '/reporttalkpost');
channel = otp;
// End otp ad bit

// Read cookies

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;
}

// End Read cookies
function markAsWinner(obj, id ) {
    if (confirm("Are you sure ? Do you want to change the status ?")) {
        if (obj.checked) {
            document.frmname.flagvalue.value = 1;
        } else {
            document.frmname.flagvalue.value = 0;
        }
        document.frmname.compentid.value = id;
        document.frmname.action = "./Page?call=com.mumsnet.competitions.CompetitionResultPage";
        document.frmname.method = "post";
        document.frmname.submit();
    }
}

// Hide beacon images from advertorials
jQuery(document).ready(function()
{
	jQuery('.advo_box img[align="right"], .home_advertorial img[align="right"]').hide(0);
});

var ord=Math.random()*10000000000000000;

function showAcronyms() {
	var options ='resizable=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,width=425,height=500';
	window.open('/acronyms.html','acWin',options);
}

function searchbyoption() {
    if (document.Search.searchoption.options[document.Search.searchoption.options.selectedIndex].value == "talk") {
        action = "/SearchArch";
    }
    document.Search.action = action;
}


/* Inbox icon pulsing */

function pulse_inbox() {
	jQuery("#header_links .inbox a.unread_messages span").animate({
		opacity: 0.5
	}, 1000, function() {
		jQuery("#header_links .inbox a.unread_messages span").animate({
			opacity: 1.0
		}, 1000, pulse_inbox);
	});
}

jQuery(document).ready(function() {
  // can't apply opacity on background-image only, only the entire element or solid background colours
  // so we prepend an empty element, move the background image from the container to the child span
  // and then we can set opacity on the span
	jQuery("#header_links .inbox a.unread_messages").prepend("<span></span>");
	jQuery("#header_links .inbox a.unread_messages span").css({
		"padding-left": "18px",
		"background-image": jQuery("#header_links .inbox a.unread_messages").css("background-image"),
		"background-repeat": "no-repeat"
	});
	jQuery("#header_links .inbox a.unread_messages").css({
		"background-image": "none",
		"padding-left": 0
	});
	pulse_inbox();
});

/* limiting length of text areas */

function textareaLengthLimit(t, max) {
	if(jQuery(t).val().length > max){
		jQuery(t).val(jQuery(t).val().substr(0, max));
		jQuery(t).addClass("textLimitReached");
	}
	else
		jQuery(t).removeClass("textLimitReached");
	
	jQuery(t).parent().find('.charsRemaining').html((max - jQuery(t).val().length) + ' characters remaining');
}


/* PM private messaging functions */

function pm_composeFormInit() {
	// setup the form for ajax
	var options = { 
		dataType: 'text',
		beforeSubmit: pm_disableComposeFormSendButton,
	    success: pm_processComposeResponse
	};
	jQuery("#pm_composeForm").ajaxForm(options);
}

function pm_disableComposeFormSendButton() {
	jQuery("#pm_sendButton").attr("disabled", "disabled");
}

function pm_processComposeResponse(response) {
	jQuery("#pm_sendButton").removeAttr("disabled");
	if (response != "success")
		alert(response);
	else {
		jQuery("#pm_composeRow").fadeOut("slow", function() {
			jQuery("#pm_sentMessageRow").fadeIn('slow');
			setTimeout('pm_cancelCompose()', 2000);
		});
	}
}

function pm_cancelCompose() {
	jQuery("#pm_composeDiv").dialog('close');
}

function pm_composeMessage(recipientNickname, subject, nicknameHidden) {
	jQuery("#pm_recipientsField").val(recipientNickname);
	if (nicknameHidden) {
		jQuery("#pm_recipientNicknameCell").text("(recipient has chosen not to show his/her nickname)");
		jQuery("#pm_nicknameHiddenField").val(1);
	}
	else {
		jQuery("#pm_recipientNicknameCell").text(recipientNickname);
		jQuery("#pm_nicknameHiddenField").val(0);
	}
	jQuery("#pm_subjectField").val(subject);
	jQuery("#pm_composeRow").show();
	jQuery("#pm_sentMessageRow").hide();
	jQuery("#pm_composeDiv").dialog('open');
	if (subject == null || subject.length <= 0)
		jQuery("#pm_subjectField").focus();
	else
		jQuery("#pm_messageField").val("").focus();
	return false;
}

/* end of PM private messaging functions */


/* tell a friend */

function taf_composeFormInit() {
	// setup the form for ajax
	var options = { 
		dataType: 'text',
		beforeSubmit: taf_disableComposeFormSendButton,
	    success: taf_processComposeResponse
	};
	jQuery("#taf_composeForm").ajaxForm(options);
}

function taf_disableComposeFormSendButton() {
	jQuery("#taf_sendButton").attr("disabled", "disabled");
}

function taf_processComposeResponse(response) {
	jQuery("#taf_sendButton").removeAttr("disabled");
	if (response != "success")
		alert(response);
	else {
		jQuery("#taf_composeRow").fadeOut("slow", function() {
			jQuery("#taf_sentMessageRow").fadeIn('slow');
			setTimeout('taf_cancelCompose()', 2000);
		});
	}
}

function taf_cancelCompose() {
	jQuery("#taf_composeDiv").dialog('close');
}

function taf_composeMessageAuto() {
	taf_composeMessage(
		document.title,
		window.location.href,
		document.title + "...sent to you from Mumsnet",
		"page on Mumsnet"
	);
}

function taf_composeMessage(title, url, subject, introSuffix) {
	jQuery("#taf_title").val(title);
	jQuery("#taf_url").val(url);
	jQuery("#taf_subjectField").val(subject);
	jQuery("#taf_composeRow").show();
	jQuery("#taf_sentMessageRow").hide();
	jQuery("#taf_composeDiv").dialog('open');
	jQuery("#taf_introSuffix").val(introSuffix);
	if (jQuery("#taf_fromNickname").size() > 0) {
		taf_nickname = jQuery("#taf_fromNickname").val();
		taf_msg = taf_nickname + " thought you'd be interested in this " + introSuffix + "\n\n"
			+ title + "\n"
			+ url + "\n\n"
			+ "Regards\n\nMNHQ";
		jQuery("#taf_messageField").val(taf_msg);
		jQuery("#taf_toEmailField").focus();
	}
	return false;
}

/* end of tell a friend */

