window.addEventListener?window.addEventListener("load",basket_init,false):window.attachEvent("onload",basket_init);
window.addEventListener?window.addEventListener("load",externalLinks,false):window.attachEvent("onload",externalLinks);
window.addEventListener?window.addEventListener("load",redirectForm,false):window.attachEvent("onload",redirectForm);


function redirectForm() {
if (document.getElementById('checkoutConf')) {
document.getElementById('checkoutConf').submit();
}
}//end function



/*Common AJAX stuff for the site*/
var xmlHttp;
var requestType;

function createXMLHttpRequest() {
    if(window.ActiveXObject) {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
    xmlHttp = new XMLHttpRequest();
    }
}//end function

/*banner link function*/
function jumpTo(url,dest) {
var curWin = getScreenSize();

var width = curWin[0];
var height = curWin[1];

var windowParams = "menubar=yes,toolbar=yes,location=yes,directories=yes,fullscreen=no,titlebar=yes,hotkeys=yes,status=yes,scrollbars=yes,resizable=yes,width="+width+",height="+height;

var newLink = window.open(url,'_blank',windowParams);
}
/*end banner link*/


/*Functions*/
function externalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
        var anchor = anchors[i];
        if (anchor.getAttribute("href") &&
            anchor.getAttribute("rel") == "external")
        anchor.target = "_blank";
        }
    }

function basket_init() {
    var url = "getBasket.php";
        createXMLHttpRequest();
        xmlHttp.onreadystatechange = handleStateChange;
        xmlHttp.open("GET",url,true);
        xmlHttp.send(null);
}//end basket_init() function 



function handleStateChange() {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
    document.getElementById('totAmt').innerHTML = xmlHttp.responseText;
/*check to see if we're on the viewBasket.php page - if so we'll run the generateCartList() function,
This is hack to get around the restrictions imposed by some browsers' on the number of concurrent
asynchronous connection allowed at any one time. We're using a RegExp to extract the desired pattern.
*/
var sUrl = /viewBasket.php$/;
var str = document.location;
var isin = sUrl.test(str);
if (isin) {
generateCartList();
}
}
}


function addToCart(c,b) {
var qF = "P_"+c+"_qty";
    var pQty = document.getElementById(qF).value;
if (pQty && pQty > "0") {
    var url="addToBasket.php?p="+c+"&qty="+pQty+"&br="+b;
    createXMLHttpRequest();
        xmlHttp.onreadystatechange = handleBasketState;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
}}//end function

function handleBasketState() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var rt = xmlHttp.responseText;
if (rt == "ok") {
    basket_init();
//add DOM-induced "adding product" popup here
    added_to('Your selection has been added');}

else if (rt == "updated") {
basket_init();
//add DOM-induced "adding product" popup here
    added_to('Your selection has been updated');}
else {
//do nothing
added_to('Sorry. Please try again');
}

}//end if
}

function getScreenSize() {
if (window.innerWidth) {
var w = window.innerWidth;
var h = window.innerHeight;
}
else if (document.documentElement.clientWidth) {
var w = document.documentElement.clientWidth;
var h = document.documentElement.clientHeight;
}
return [w,h];
}

function enlargeImage(i,p) {
//remove any existing versions of the element - needed for IE browsers
if (document.getElementById('popUpPic')) {
dropPopUp();
}

if (p) {
var srcUrl = "cane.php?class=fullsize&src="+i;
} else {
var srcUrl = "image.php?class=fullsize&src="+i;
}
//use the DOM to create an overlay for the image. Note - using PNG means it will look crap on IE6 and below, but if anyone's still using that then it's their own fault.
var pd = document.createElement('img');
pd.setAttribute('id','popUpPic');
pd.setAttribute('src',srcUrl);
pd.setAttribute('onclick','closePopUp()');
pd.onclick = new Function('closePopUp()');


//get browser window size for positioning
var w = getScreenSize();
//do the maths for calculating the center

if (document.documentElement.scrollTop) {
var pageTop = document.documentElement.scrollTop;
}
else if (document.body.scrollTop) {
var pageTop = document.body.scrollTop;
}
else if (window.pageYOffset) {
var pageTop = window.pageYOffset;
}
if (isNaN(pageTop)) {pageTop = 1;}
var divLeftPos = Math.round((w[0]/2) - 265);
var divTopPos = Math.round((w[1]/2) - 265 + pageTop) ;
if (divTopPos < 0) {
divTopPos = 0;
}

var pe = document.getElementById('contentDiv').parentNode;
pe.appendChild(pd);
document.getElementById('popUpPic').style.left = divLeftPos+"px";
document.getElementById('popUpPic').style.top = divTopPos+"px";
changeOpac(0,'popUpPic');
document.getElementById('popUpPic').style.visibility = 'visible';
opacity('popUpPic',1,100,300);
}//end function

function closePopUp() {
opacity('popUpPic',100,0,300);
}


function dropPopUp() {
var pd = document.getElementById('popUpPic').parentNode;
pd.removeChild(pd.lastChild);
}
//opacity functions

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) {
if (opacity < 1) {
document.getElementById(id).style.visibility = 'hidden';
}

opacity = (opacity == 100)?99.999:opacity;
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + opacity + ")";
} 

function added_to(msg) {
if (document.getElementById('addedPopUp')) {
var pd = document.getElementById('addedPopUp').parentNode;
pd.removeChild(pd.lastChild);
}
var pd = document.createElement('p');
pd.setAttribute('id','addedPopUp');

//get browser window size for positioning
var w = getScreenSize();
//do the maths for calculating the center

if (document.documentElement.scrollTop) {
var pageTop = document.documentElement.scrollTop;
}
else if (document.body.scrollTop) {
var pageTop = document.body.scrollTop;
}
else if (window.pageYOffset) {
var pageTop = window.pageYOffset;
}
if (isNaN(pageTop)) {pageTop = 1;}
var divLeftPos = Math.round((w[0]/2) - 125);
var divTopPos = Math.round((w[1]/2) - 25 + pageTop) ;
if (divTopPos < 0) {
divTopPos = 0;
}

var pe = document.getElementById('contentDiv').parentNode;
pe.appendChild(pd);
document.getElementById('addedPopUp').innerHTML = msg;
document.getElementById('addedPopUp').style.left = divLeftPos+"px";
document.getElementById('addedPopUp').style.top = divTopPos+"px";
changeOpac(0,'addedPopUp');
document.getElementById('addedPopUp').style.visibility = 'visible';
opacity('addedPopUp',1,100,300);
setTimeout("opacity('addedPopUp',100,0,300)",4000);
}



function generateCartList() {
var url="showCart.php";
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleCartState;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function handleCartState() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
if (document.getElementById('basketListHolder')) {
var p = document.getElementById('basketListHolder').parentNode;
p.removeChild(p.lastChild);
}
var rte = xmlHttp.responseText;
var pe = document.getElementById('content');
var nd = document.createElement('div');
nd.setAttribute('id','basketListHolder');
pe.appendChild(nd);
document.getElementById('basketListHolder').innerHTML = rte;
}//end readyState if
}//end function



function updateBasket(p,c) {
var qF = p+"_qty";
var qty = document.getElementById(qF).value;
var uid = new RegExp(/(\d{1,}$)/);
var uArr = p.match(uid);
var url= "basketManager.php?cmd="+c+"&bid="+uArr[1]+"&qty="+qty;
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleManagerState;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}//end function

function handleManagerState() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var rte = xmlHttp.responseText;

if (rte == "updated") {
basket_init();
added_to("Your basket has been updated");
}
else if(rte == "deleted") {
basket_init();
added_to("The product has been deleted");
}
}
}

function setFrameColour(f) {
var url="caneManager.php?cmd=frame&col="+escape(f);
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleFrameReturn;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function handleFrameReturn() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var msg = xmlHttp.responseText+" has been selected";
added_to(msg);
//activate the BUY NOW button if no fabrics are to be selected.
if (!document.getElementById('fabricFrame')) {
document.getElementById('buyCaneNow').disabled = false;
}
}
}

function chooseFabric(f,b) {
var url="caneManager.php?cmd=fabric&col="+escape(f)+"&band="+b;
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleFabricReturn;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function handleFabricReturn() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var msg = "Your fabric has been added";
added_to(msg);
document.getElementById('price').innerHTML = "&pound;"+xmlHttp.responseText;
//activate the BUY NOW button so we can continue - assuming everything else is filled in
document.getElementById('buyCaneNow').disabled = false;
}}//end function


function addCaneProduct(c) {
var pCode = c;
var pQtyField = "C_"+c+"_qty";
var qty = document.getElementById(pQtyField).value;
var url="caneManager.php?cmd=add&code="+c+"&qty="+qty;
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleCartResponse;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function handleCartResponse() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var r = xmlHttp.responseText;
switch(r) {
case 'ok':
added_to("Your selection has been added");
document.getElementById('buyCaneNow').disabled = false;
}}}//end function

function gotoNextPage(p) {
document.location.href=p;
}


/*POSSIBLY WON'T NEED THESE ENCLOSED FUNCTIONS IF THE SITE UPDATE IS ADOPTED

function addCaneToCart(c) {
var url="caneManager.php?cmd=add&code="+c;
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleCartResponse;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}//end function


function handleCartResponse() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
var r = xmlHttp.responseText;
switch(r) {
case 'frame':
added_to("You must select a frame colour");
break;
case 'fabric':
added_to("You must select a fabric");
break;
case 'ok':
document.location.href="viewBasket.php";
}}}//end function
*/

function showFabricPopUp(i) {
//remove any existing versions of the element - needed for IE browsers
if (document.getElementById('popUpPic')) {
dropPopUp();
}
var srcUrl = "fabric.php?class=full&src="+i;
//use the DOM to create an overlay for the image. Note - using PNG means it will look crap on IE6 and below, but if anyone's still using that then it's their own fault.
var pd = document.createElement('img');
pd.setAttribute('id','popUpPic');
pd.setAttribute('src',srcUrl);
pd.setAttribute('onclick','closePopUp()');
pd.onclick = new Function('closePopUp()');


//get browser window size for positioning
var w = getScreenSize();
//do the maths for calculating the center

if (document.documentElement.scrollTop) {
var pageTop = document.documentElement.scrollTop;
}
else if (document.body.scrollTop) {
var pageTop = document.body.scrollTop;
}
else if (window.pageYOffset) {
var pageTop = window.pageYOffset;
}
if (isNaN(pageTop)) {pageTop = 1;}
var divLeftPos = Math.round((w[0]/2) - 265);
var divTopPos = Math.round((w[1]/2) - 265 + pageTop) ;
if (divTopPos < 0) {
divTopPos = 0;
}

var pe = document.getElementById('contentDiv').parentNode;
pe.appendChild(pd);
document.getElementById('popUpPic').style.left = divLeftPos+"px";
document.getElementById('popUpPic').style.top = divTopPos+"px";
changeOpac(0,'popUpPic');
document.getElementById('popUpPic').style.visibility = 'visible';
opacity('popUpPic',1,100,300);
}//end function


function checkValid() {
var isValid = true;
var f = document.getElementById('checkout');
var l= 5;
for (c=0;c<=l;c++) {
if (!f[c].value) {
added_to("You must provide all the information");
isValid = false;
break;
}
}
return(isValid);
}