﻿function ReviewKeyPress(element) {
    var NewLength = 255 - element.value.length;
    if (NewLength <= 0) {
        NewLength = 0;
        element.value = element.value.substr(0, 255);
    }
    document.getElementById('ReviewTextCounter').innerHTML = NewLength;
}
//product image
function setImage(zoomImageURL, ThumbURL, lightboxImageURL) {

    mainImage1 = document.getElementById("MainProductImage1");
    mainImage1.src = ThumbURL;
    imageSpan = document.getElementById("spanMainImage");
    if (imageSpan) {
        imageSpan.style.display = "block";
    }
}

//Favourites
function AddToFavs(stockCode) {
    ProductWebservice.AddToFavourites(stockCode, AddToFavsResponse);
}

function AddToFavsResponse(message) {
    alert(message);
}

function updateQty(clientID, method) {
	var target; // = document.getElementById(clientID)
	var qty; // = parseInt(target.value);

	// if the 'clientID' passed in is actually the element then we don't need to find it in the document
	if (clientID.value || clientID.value != null) {
		target = clientID;
	}
	else {
		target = document.getElementById(clientID);
	}

	try {
		qty = parseInt(target.value);
	} catch (err) {
		qty = 1;
	}
    
    if (method == 'update') {
        if (target === null || target.value === undefined || target.value === null || target.value == '') {
        	qty = '';
        	
        	//target.value = '1';
        }
        else if (isInteger(target.value)) {
            //ignore
        }
        else {
        	target.value = '1';
        }
    }
    else if (method == 'plus') {
        qty += 1;
        target.value = qty.toString();
    }
    else {
        if (qty > 0) {
            qty -= 1;
        }
        target.value = qty.toString();
    }

}
 

//function to fix radio button issues in the customised repeater
function ChangeCheckBox(repeatName, current, quantityBox, priceString, variantID, stockMessage) {
    if ($get(repeatName) != null) {
        UncheckRadioChildren($get(repeatName));
        ChangeTextBoxStyle($get(repeatName),'Hidden');
    }
    current.checked = true;
    $get(quantityBox).className = 'Shown';
    price = priceString;
    QuantityTextBoxID = quantityBox;
    code = variantID;

    if (stockMessage === '') {
        $get('AddToBasketButton').style.display = "";
        $get('stockMessage').innerHTML = '';
    }
    else {
        $get('AddToBasketButton').style.display = "none";
        $get('stockMessage').innerHTML = stockMessage;
    }
}

function ShowAddToBasket() {
    $get('AddToBasketButton').style.display = "";
    $get('stockMessage').innerHTML = "";
    $get('stockMessage').style.display = "none";
}

function HideAddToBasket(stockMessage) {
    if (stockMessage != '') {
        $get('AddToBasketButton').style.display = "none";
        $get('stockMessage').innerHTML = "<div class='StockMessage'>" + stockMessage + "</div>";
        $get('stockMessage').style.display = "";
    }
}

function UncheckRadioChildren(element) {
    try {
        if (element.hasChildNodes) {
            for (var ix = 0; ix < element.childNodes.length; ix++) {
                if (element.childNodes[ix].type === 'radio') {
                    element.childNodes[ix].checked = false;
                }
                else {
                    UncheckRadioChildren(element.childNodes[ix]);
                }
            }
        }
    }
    catch (err) {
    }
}

function ChangeTextBoxStyle(element, styleName) {
    try {
        if (element.hasChildNodes) {
            for (var ix = 0; ix < element.childNodes.length; ix++) {
                if (element.childNodes[ix].type === 'text') {
                    element.childNodes[ix].className = styleName;
                }
                else {
                    ChangeTextBoxStyle(element.childNodes[ix], styleName);
                }
            }
        }
    }
    catch (err) {
    }
}
//Model Functions

var emailPopup;
var addToBasketPopup;
var installationPopup;

function OpenModal(targetName) {
    switch (targetName) {
        case 'EmailAFriend':
            emailPopup = ModalPopup(document.getElementById(targetName), null, null);
            emailPopup.Open();
            break;
        case 'AddToBasket':
            addToBasketPopup = ModalPopup(document.getElementById(targetName), null, null);
            addToBasketPopup.Open();
            break;
        case 'InstallationPopup':
            installationPopup = ModalPopup(document.getElementById(targetName), null, null);
            installationPopup.Open();
            break;
    }
}

function CloseModal(targetName) {
    switch (targetName) {
        case 'EmailAFriend':
            emailPopup.Close();
            emailPopup = null;
            break;
        case 'AddToBasket':
            addToBasketPopup.Close();
            addToBasketPopup = null;
            break;
        case 'InstallationPopup':
            installationPopup.Close();
            installationPopup = null;
            break;
    }
}

//add to basket functions
function AddToBasket() {
    var qty = $get(QuantityTextBoxID).value;

    
    if (qty != '') {
        if (qty > 0) {
            var MyArray = new Array(1)

            MyArray[1] = code + ':' + qty + ':' + price;

            
            ProductWebservice.AddItemsToBasket(MyArray, AddToBasketResponse);
        }
    }

}

//add to basket for supplementary areas
function AddProductToBasket(qtyTextBoxID, varcode, varprice) {
    var qty = $get(qtyTextBoxID).value;


    if (qty != '') {
        if (qty > 0) {
            var MyArray = new Array(1)

            MyArray[1] = varcode + ':' + qty + ':' + varprice;


            ProductWebservice.AddItemsToBasket(MyArray, AddToBasketResponse);
        }
    }
}

function AddToBasketResponse(result) {
    $get('spanAddToBasketHeader').innerHTML = result[0];
    $get('spanAddToBasketPanel').innerHTML = result[1];
    $get('BasketSummaryTotal').innerHTML = result[2];
    $get('spanAddToBasketAccessories').innerHTML = result[3];
    
    $get('spanErrorMessage').innerHTML = result[4];

    
    
    if (result[4] == '') {
        $get('spanErrorMessage').style.display = 'none';
    }
    else {
        $get('spanErrorMessage').style.display = '';
    }
    OpenModal('AddToBasket');
}


//common functions
function isInteger(s) {
    var i;

    if (isEmpty(s))
        if (isInteger.arguments.length == 1) return 0;
    else return (isInteger.arguments[1] == true);

    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }

    return true;
}

function isEmpty(s) {
    return ((s == null) || (s.length == 0))
}

function isDigit(c) {
    return ((c >= '0') && (c <= '9'))
}
