String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

var xmlHttp = false;
function getXmlHttpRequestObject() {
	// check for native XMLHttpRequest object
	if(window.XMLHttpRequest && !(window.ActiveXObject)) {
		try {
			xmlHttp = new XMLHttpRequest();
		}
		catch(e) {
			xmlHttp = false;
		}
	}
	// check for IE/Windows ActiveX version
	else if(window.ActiveXObject) {
		try {
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) {
			try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) {
				xmlHttp = false;
			}
		}
	}
}

function DoSignUp(nameTextBoxID, emailTextBoxID) {
    getXmlHttpRequestObject();
    xmlHttp.onreadystatechange = CallbackMethod;

    var nameTextBox = document.getElementById(nameTextBoxID);
    var emailTextBox = document.getElementById(emailTextBoxID);

    var name = nameTextBox ? nameTextBox.value : '';
    var email = document.getElementById(emailTextBoxID).value;

    name.trim();
    email.trim();

    var errorMessage = nameTextBox ? 'You must enter name and email address to sign up' : 'You must enter email address to sign up';

    if (nameTextBox && ((name == "enter name") || (name == ""))) {
        alert(errorMessage);
        return false;
    }

    if ((email == "enter e-mail address") || (email == "")) {
        alert(errorMessage);
        return false;
    }


    if (!(email.indexOf('@') > 0 && email.lastIndexOf('.') > email.indexOf('@'))) {
        alert('You have not entered a valid e-mail address');
        return false;
    }

    var pattern = /^[\w-\.']+@([\w-]+\.)+[\w-]{2,4}$/;
    if (!pattern.test(email)) {
        alert('You have not entered a valid e-mail address');
        return false;
    }

    if (nameTextBox)
        var url = "/SignUpNewsletter.aspx?SignUpName=" + name + "&SignUpEmail=" + email;
    else
        var url = "/SignUpNewsletter.aspx?SignUpEmail=" + email;

    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader("IsSignUpNewsletter", "true");
    xmlHttp.send(null);

    return false;
}

function DoAddToBasket(productId, basketControlId, addToBasketControlId)
{
	getXmlHttpRequestObject(); 
	xmlHttp.onreadystatechange = CallbackMethod;
	
	var url = "/AJAX/AddToBasketHandler.aspx?ProductId= " + productId + "&BasketControlId=" + basketControlId;
	
	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader("IsAddToBasket", "true");	
	xmlHttp.send(null);

	return false;
}

function RefreshControl(controlId, html)
{
	var e = document.getElementById(controlId);
	e.outerHTML = html;
	var e = document.getElementById(controlId);
	flash(e.children[0], 0, e.children[0].className);
}

function flash(div, count, defaultClass) {
    div.className = (div.className == defaultClass) ? defaultClass + ' Flash' : defaultClass;
    if (count > 6)
        return;
    window.setTimeout(function() {
        flash(div, count+1, defaultClass);
    }, 200);
}

//CallbackMethod will fire on state Change
function CallbackMethod(){ 
    try{
        //readyState of 4 or 'complete' 
        //represents that data has been returned 
        if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){ 
            var response = xmlHttp.responseText; 
			if (response.length > 0)
            {
				if (response.indexOf('URL:') == 0)
					window.location.href = response.substring(4);
				else if (response.indexOf('RC:') == 0) // refresh control
				{
					var splitResponse = response.substring(3).split('|');
					RefreshControl(splitResponse[0], splitResponse[1]);
				}
				else
					alert(response);			// simple message returned	
            } //if
        }//if
    }//try
catch(e){}
}//end CallbackMethod

// Method to check if url has parameters
// specifically custid or catid
function CheckOffersParameterExists(parameter) {
    
    var field = 'custid';
    var url = window.location.href;
    
    if(url.indexOf('?' + field + '=') != -1)    
    {
    	return true;
    }
    else if(url.indexOf('&' + field + '=') != -1)    
    {
    	return true;
    }
    else
    {
    	field = 'catid';
	if(url.indexOf('?' + field + '=') != -1)    
	{
		return true;
	}
	else if(url.indexOf('&' + field + '=') != -1)    
	{
		return true;
	}
	else
	{
		return false;
	}
    }

    return false;
}

