var is_regexp = (window.RegExp) ? true: false;
var vbDOMtype = '';
var requester = location.href;
if (document.getElementById) {
    vbDOMtype = "std";

} else if (document.all) {
    vbDOMtype = "ie4";

} else if (document.layers) {
    vbDOMtype = "ns4";

}

var vBobjects = new Array();

function fetch_object(idname, forcefetch) {
    if (forcefetch || typeof(vBobjects[idname]) == "undefined") {
        switch (vbDOMtype) {
            case "std":
            {
                vBobjects[idname] = document.getElementById(idname);

            }
            break;
            case "ie4":
            {
                vBobjects[idname] = document.all[idname];

            }
            break;
            case "ns4":
            {
                vBobjects[idname] = document.layers[idname];

            }
            break;

        }

    }
    return vBobjects[idname];

}

function set_cookie(name, value, expires) {
    if (!expires) {
        expires = new Date();
        expires.setTime(expires.getTime() + (1000 * 86400 * 365));

    }
    document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString() + "; path=/; domain=.bodxl.fr";

}

function fetch_cookie(name) {
    cookie_name = name + "=";
    cookie_length = document.cookie.length;
    cookie_begin = 0;
    while (cookie_begin < cookie_length) {
        value_begin = cookie_begin + cookie_name.length;
        if (document.cookie.substring(cookie_begin, value_begin) == cookie_name) {
            var value_end = document.cookie.indexOf(";", value_begin);
            if (value_end == -1) {
                value_end = cookie_length;

            }
            return unescape(document.cookie.substring(value_begin, value_end));

        }
        cookie_begin = document.cookie.indexOf(" ", cookie_begin) + 1;
        if (cookie_begin == 0) {
            break;

        }

    }
    return null;

}

function delete_cookie(name) {
    var expireNow = new Date();
    document.cookie = name + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT" + "; path=/";

}

function toggle_collapse(objid, onoff, set_cookie, forcefetch) {
    if (!is_regexp) {
        return false;

    }
    obj = fetch_object("collapseobj_" + objid, forcefetch);
    img = fetch_object("collapseimg_" + objid, forcefetch);
    cel = fetch_object("collapsecel_" + objid, forcefetch);
    if (!obj) {
        // nothing to collapse!
        if (img) {
            // hide the clicky image if there is one
            img.style.display = "none";

        }
        return false;

    }
    if ((obj.style.display == "none" && onoff == null) || onoff == 'on') {
        obj.style.display = "";
        if (set_cookie) {
		  		save_collapsed(objid, false);
		  }
        if (img) {
            img_re = new RegExp("_collapsed\\.gif$");
            img.src = img.src.replace(img_re, '.gif');

        }
        if (cel) {
            cel_re = new RegExp("^(thead|tcat)(_collapsed)$");
            cel.className = cel.className.replace(cel_re, '$1');

        }

    }
    else {
        obj.style.display = "none";
        if (set_cookie) {
		  		save_collapsed(objid, true);
		  }
        if (img) {
            img_re = new RegExp("\\.gif$");
            img.src = img.src.replace(img_re, '_collapsed.gif');

        }
        if (cel) {
            cel_re = new RegExp("^(thead|tcat)$");
            cel.className = cel.className.replace(cel_re, '$1_collapsed');

        }

    }

    return obj.style.display == 'none' ? 0 : 1;

}

function toggle_collapse_on(objid, set_cookie, forcefetch) {
    return toggle_collapse(objid, 'on', set_cookie, forcefetch);

}

function toggle_collapse_off(objid, set_cookie, forcefetch) {
    return toggle_collapse(objid, 'off', set_cookie, forcefetch);

}

function get_collapsed(objid) {
    var collapsed = fetch_cookie("collapse" + objid);
    if (collapsed == "false") toggle_collapse(objid);

}

function save_collapsed(objid, addcollapsed) {
    set_cookie("collapse" + objid, addcollapsed);

}

function imgSwap(oImg) {
    var strOver = "_on";
    // image to be used with mouse over
    var strOff = "_off";
    // normal image
    var strImg = oImg.src;
    if (strImg.indexOf(strOver) != -1) {
        oImg.src = strImg.replace(strOver, strOff);

    }
    else {
        oImg.src = strImg.replace(strOff, strOver);

    }

}

function popupWindow(url) {
    window.open(url, 'popupWindow', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=200,height=200,screenX=150,screenY=150,top=150,left=150');

}

function phpOnlinePopupWindow() {
    var url = "/chat/client.php";
    window.open(url, 'popupWindow', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=no,width=550,height=400,screenX=150,screenY=150,top=150,left=150')

}

function rowOverEffect(object) {
    if (object.className == 'moduleRow') {
        object.className = 'moduleRowOver';

    }

}
function rowOutEffect(object) {
    if (object.className == 'moduleRowOver') {
        object.className = 'moduleRow';

    }

}

function write_email(type) {
	if(type == 'com') {
		var seg1 = 'com';
		var seg2 = 'mandes';
	} else {
		var seg1 = 'cont';
		var seg2 = 'act';		
	}
    var seg3 = '@';
    var seg4 = 'bod';
    var seg5 = 'xl';
    var seg6 = '.fr';
    return (seg1 + seg2 + seg3 + seg4 + seg5 + seg6);

}

function prechargimg() {
    var doc = document;
    if (doc.images) {
        if (!doc.precharg) {
            doc.precharg = new Array();

        }
        var i,
        j = doc.precharg.length,
        x = prechargimg.arguments;
        for (i = 0; i < x.length; i++) {
            if (x[i].indexOf("#") != 0) {
                doc.precharg[j] = new Image;
                doc.precharg[j++].src = x[i];

            }

        }

    }

}

function objectFlash(theFile, largeur, hauteur, flashvars, Return) {
	var result = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width=\"' + largeur + '\" height=\"' + hauteur + '\">' + '<param name=\"movie\" value=\"' + theFile + '\">' + '<param name="quality" value="high">' + '<param name="wmode" value="transparent">' + '<param name=\"FlashVars\" value=\"' + flashvars + '\">' + '<embed src=\"' + theFile + '\" width=\"' + largeur + '\" height=\"' + hauteur + '\" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" FlashVars=\"' + flashvars + '\">' + ' </object>';
	if(Return) {
   	return result;
	} else {
		document.write(result);
	}
}

function replaceTrayCorner() {
    if (fetch_object("Tray").offsetHeight > 31) {
        var CornerPic = fetch_object("TrayCorner");
        CornerPic.src = CornerPic.src.replace('_1', '_2');
        CornerPic.style.width = 12;

    }
}

function getMenuBubblePosition() {
	var Menu = fetch_object("menuButton");
	var Coordinates = new Array();
	Coordinates[0] = findPosX(Menu) + 25;
	Coordinates[1] = findPosY(Menu) + 20;
	return Coordinates;
}

function findPosX(obj)
{
	var curleft = 0;
	if(obj.offsetParent)
	while(1) 
	{
		curleft += obj.offsetLeft;
		if(!obj.offsetParent)
		break;
		obj = obj.offsetParent;
	}
	else if(obj.x)
	curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if(obj.offsetParent)
	while(1)
	{
		curtop += obj.offsetTop;
		if(!obj.offsetParent)
		break;
		obj = obj.offsetParent;
	}
	else if(obj.y)
	curtop += obj.y;
	return curtop;
}

function multiClass(eltId, tabs_id, length) {
	if(length == null) {
		length = 4;
	}
	if(tabs_id == null) {
		tabs_content_prefix = "menu";
		tabs_button_prefix = 't_';
	} else {		
		tabs_content_prefix = tabs_id;
		tabs_button_prefix = tabs_id + '_';		
	}
    arrLinkId = new Array();
	for (i = 0; i < length; i++) {
		arrLinkId[i] = tabs_button_prefix + i;
	}
    intNbLinkElt = new Number(arrLinkId.length);
    arrClassLink = new Array('current', 'ghost');
    strContent = new String();
    for (i = 0; i < intNbLinkElt; i++) {
        strContent = tabs_content_prefix + arrLinkId[i];
        if (arrLinkId[i] == eltId) {
            if (fetch_object(arrLinkId[i])) {
                fetch_object(arrLinkId[i]).className = arrClassLink[0];
                fetch_object(strContent).className = 'on content';

            }

        } else {
            if (fetch_object(arrLinkId[i])) {
                fetch_object(arrLinkId[i]).className = arrClassLink[1];
                fetch_object(strContent).className = 'off content';

            }

        }

    }

}

function swapFooterTab(id, obj) {
	multiClass(id, 'foot');
	set_cookie('obj', obj);
	if(obj == 'energ') {
		toggle_collapse_off('topArrow');
	} else {
		toggle_collapse_on('topArrow');		
	}
}

function ToggleDescriptions() {
    toggle_collapse('conseils');
    toggle_collapse('RightBoxes');
    toggle_collapse('close');
    toggle_collapse('expand');
    toggle_collapse('switchcarousel');	
	 initMovableMenu();
}

function email_warning(field)
{
	var tmp = field.value.split('@');
	if(tmp[1]) {
		tmp = tmp[1].split('.');
		email_host = tmp[0];

		if (email_host == 'hotmail' || email_host == 'msn' || email_host == 'gmail' || email_host == 'yahoo' || email_host == 'laposte') 	{
			toggle_collapse_on('email_warning');
		}
		else {
			toggle_collapse_off('email_warning');
		}
	} else 	{
			toggle_collapse_off('email_warning');
	}
}

function getScrollXY() {
    var scrOfX = 0,
    scrOfY = 0;
    if (typeof(window.pageYOffset) == 'number') {
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;

    } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;

    } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;

    }

    if (navigator.appName == "Netscape") {
        iH = window.innerHeight;
        iW = window.innerWidth;

    }
    else {
        iH = document.body.clientHeight;
        iW = document.body.clientWidth;

    }
    return [scrOfX, scrOfY, iW, iH];

}

function SetFocus(field) {
fetch_object(field).focus();
}

var LMAnchor;
var LMMove;
function initMovableMenu() {
	LMAnchor = fetch_object('LeftMenuAnchor');
	LMMove = fetch_object('LeftMenuMove');
	LM = fetch_object('LeftMenu');
	if(LMAnchor && LMMove) {
		InitMenuY = findPosY(LMAnchor);
		LeftMenuHeight = LMMove.offsetHeight;
		var Screen = getScrollXY();
		if(LeftMenuHeight < Screen[3] && InitMenuY + LeftMenuHeight < document.body.scrollHeight) {
			LMMove.style.position = 'absolute';
			if (navigator.appName == "Netscape") {
				h = ".left";
				v = ".top";
				sD = ".style";
				y = "window.pageYOffset";
			}
			else {
				h = ".pixelLeft";
				v = ".pixelTop";
				sD = ".style";
				y = "document.body.scrollTop";
			}
			var FCache = fetch_object('FooterCache');
			if(FCache) {
				MaxLeftMenuScroll = findPosY(FCache) - LeftMenuHeight;
			} else {
				MaxLeftMenuScroll = 100000;
			}
			ystart = eval(y);
			moveMenu();
		}
	}
}

function moveMenu() {
	yy = eval(y);
	ydiff = ystart - yy;
	if ((ydiff < (-1)) || (ydiff > (1))) movey = Math.round(ydiff / 10), ystart -= movey;
	var currentScroll = getScrollXY();
	var currentMenuY = parseFloat(eval("LMMove" + sD + v));
	eval("LMMove" + sD + v + '=' + ystart);
	if(parseFloat(eval("LMMove" + sD + v)) < InitMenuY) {
		eval("LMMove" + sD + v + '=' + InitMenuY);
	}
	if(parseFloat(eval("LMMove" + sD + v)) > MaxLeftMenuScroll) {
		eval("LMMove" + sD + v + '=' + MaxLeftMenuScroll);
	}		
	eval("LMMove" + sD + h + '=' + findPosX(LMAnchor));
	setTimeout("moveMenu()", 10);
}

var ProdFreeShipping = new Array();
function free_shipping(id, price) {
	var cart = fetch_cookie('free_shipping_threshold');
	ProdFreeShipping[id] = price;
	if(cart && cart != '' && cart - price <= 0) {
		toggle_collapse_on('fs_' + id, false, true);		
	} else {
		toggle_collapse_off('fs_' + id, false, true);			
	}
}

function refresh_free_shipping() {
	for (keyVar in ProdFreeShipping) {
		free_shipping(keyVar, ProdFreeShipping[keyVar]);
	}
}
//***************** AJAX
function initAjax() {
		var httpAjax;	
    if (window.XMLHttpRequest) {
        // Mozilla, Safari, ...
        httpAjax = new XMLHttpRequest();

    }
    else if (window.ActiveXObject) {
        // Internet Explorer
        httpAjax = new ActiveXObject("Microsoft.XMLHTTP");

    }
    return httpAjax;

}

function handleAJAXReturn(httpAjax, Element) {
    if (httpAjax.readyState == 4) {
        if (httpAjax.status == 200) {
            var Content = httpAjax.responseText;
						if(Content == '') {
	            return ( - 1)							
						}
						if(Element != 'none') {
	            setAndExecute(Element, Content);
						}
            return 1;

        } else {
						if(Element != 'none') {
							fetch_object(Element).innerHTML = "<strong>N/A</strong>";
						}
            return ( - 1);

        }

    }
    return 0;

}

function setAndExecute(Element, Content)
{
    var Elem = fetch_object(Element);
    Elem.innerHTML = Content;
    var search = Content;
    var script;
         
    while( script = search.match(/(<script[^>]+javascript[^>]+>\s*(<!--)?)/i))
    {
      search = search.substr(search.indexOf(RegExp.$1) + RegExp.$1.length);
      
      if (!(endscript = search.match(/((-->)?\s*<\/script>)/))) break;
      
      block = search.substr(0, search.indexOf(RegExp.$1));
      search = search.substring(block.length + RegExp.$1.length);
      
      var oScript = document.createElement('script');
      oScript.text = block;
      document.getElementsByTagName("head").item(0).appendChild(oScript);
    }
} 

function Ajax(Popup, Execute, Method, Parameters, Target, PopupPosition, HideLoaderBar, handle) {

    if (Method == null) {
        Method = 'get';

    }
    if (PopupPosition == null) {
        PopupPosition = 'screen-center';

    }
    if (Target == null) {
        Target = 'popup_content';

    }
    if (Popup) {
        ShowVoile();

    }
		if(!HideLoaderBar) {
	    ShowAjaxLoaderBar(Popup);
			
		}
		if(handle == null) {
			handle = '';
		}

    eval('httpAjax' + handle + ' = initAjax()');
    eval('httpAjax' + handle + '.onreadystatechange = function() {result = handleAJAXReturn(httpAjax' + handle + ', Target);if (result == 1) {if(!HideLoaderBar) {HideAjaxLoaderBar();}if (Popup) {popup_show(\'popup\', \'popup_drag\', \'voile\', PopupPosition, 10, 10);}} else if (result == -1) {if (Popup) {popup_exit()}}}');
    eval('httpAjax' + handle + '.open(Method, Execute, true)');
    if (Method == 'post' && Parameters != '') {
        eval('httpAjax' + handle + '.setRequestHeader("Content-type", "application/x-www-form-urlencoded")');
        eval('httpAjax' + handle + '.setRequestHeader("Content-length", Parameters.length)');
        eval('httpAjax' + handle + '.setRequestHeader("Connection", "close")');
        eval('httpAjax' + handle + '.send(Parameters)');

    } else {
        eval('httpAjax' + handle + '.send(null)');

    }
}

function AjaxExecuteQuite(Execute, Method, Parameters) {
    Ajax(false, Execute, Method, Parameters, 'none');
}

function ShowVoile() {
    var voile = fetch_object('voile');
    if (voile) {
        voile.style.position = "absolute";
        voile.style.visibility = 'visible';
        voile.style.display = 'block';
        voile.style.height = document.body.clientHeight > document.body.scrollHeight ? document.body.clientHeight: document.body.scrollHeight;
        voile.style.width = document.body.clientWidth > document.body.scrollWidth ? document.body.clientWidth: document.body.scrollWidth;

    }

}

function HideVoile() {
    var voile = fetch_object('voile');
    if (voile) {
        voile.style.visibility = 'hidden';
        voile.style.display = 'none';

    }

}

function ShowAjaxLoaderBar(Popup) {
    var currentScroll = getScrollXY();
    scrOfX = currentScroll[0];
    scrOfY = currentScroll[1];

    var loader = fetch_object('loader');
    if (loader) {
		  if(Popup) {
			  loader.className = "Popup";
		  } else {
			  loader.className = "noPopup";			  
		  }
        loader.style.position = "absolute";
        loader.style.zIndex = "500";
        loader.style.left = (scrOfX + (document.body.clientWidth - 65) / 2) + 'px';
        loader.style.top = (scrOfY + (document.body.clientHeight - 13) / 2) + 'px';
        loader.style.visibility = 'visible';
        loader.style.display = 'block';

    }

}

function HideAjaxLoaderBar() {
    var loader = fetch_object('loader');
    if (loader) {
        loader.style.visibility = 'hidden';
        loader.style.display = 'none';

    }

}

function HideAjaxLoaderBar() {
    var loader = fetch_object('loader');
    if (loader) {
        loader.style.visibility = 'hidden';
        loader.style.display = 'none';

    }

}

function OnKeyPress(e) {
	var kC  = (window.event) ?  event.keyCode : e.keyCode;
	var Esc = (window.event) ? 27 : e.DOM_VK_ESCAPE;
    if (kC == Esc) {
        var popup = fetch_object('popup');
        if (popup) {
            if (popup.style.visibility == "visible") {
                popup_exit();

            }

        }

    }

}

function GetFormElements(form) {
    var FormObj = document.forms[form];
    var getstr = "";
    for (i = 0; i < FormObj.elements.length; i++) {
				var tagName = String(FormObj.elements[i].tagName).toLowerCase();
				var type = String(FormObj.elements[i].type).toLowerCase();
				
        if (tagName == "input") {
            if (type == "text" || type == "hidden" || type == "password") {
                getstr += FormObj.elements[i].name + "=" + encodeURIComponent(FormObj.elements[i].value) + "&";

            }
            if (type == "checkbox") {
                if (FormObj.elements[i].checked) {
                    getstr += FormObj.elements[i].name + "=" + encodeURIComponent(FormObj.elements[i].value) + "&";

                } else {
                    getstr += FormObj.elements[i].name + "=&";

                }

            }
            if (type == "radio") {
                if (FormObj.elements[i].checked) {
                    getstr += FormObj.elements[i].name + "=" + encodeURIComponent(FormObj.elements[i].value) + "&";

                }

            }

        } else
        if (tagName == "select") {
            var sel = FormObj.elements[i];
            getstr += sel.name + "=" + encodeURIComponent(sel.options[sel.selectedIndex].value) + "&";

        }

    }
    return (getstr);

}

//***********************
function AjaxShowChilds(prod_id, cat_id) {
    requester = location.href;
    Ajax(true, '/catalog/products_childs.php?products_id=' + prod_id + "&categories_id=" + cat_id);

}

function AjaxAddToCart(prod_id, bundle) {
    if (bundle == true) {
        var action = 'add_bundle';

    } else {
        var action = 'add_product';

    }
    if(requester.indexOf('back_to_cart') > 0) {
    	var FormObj = document.forms['cart_' + prod_id];
    	FormObj.action = '/catalog/shopping_cart.php?action=add_product';
    	FormObj.submit();
    } else {
	    var tmp1 = requester.split('/').reverse();
	    var tmp2 = tmp1[0].split('?');
		 var tmp3 = tmp2[0].split('#');
	    if (tmp3[0] == 'shopping_cart.php') {
	        Ajax(false, '/catalog/big_cart.php?action=' + action + '&ajax=true', 'post', GetFormElements('cart_' + prod_id), 'cart_content');
	        popup_exit();

	    } else {
	        Ajax(true, '/catalog/small_cart.php?action=' + action + '&ajax=true', 'post', GetFormElements('cart_' + prod_id));

	    }
	}
}

function AjaxAddFromCart(prod_id) {
    Ajax(false, '/catalog/big_cart.php?action=fast_add&products_id=' + prod_id + '&ajax=true', 'get', '', 'cart_content');

}

function AjaxRemoveFromCart(prod_id) {
    Ajax(true, '/catalog/small_cart.php?action=ajax_remove_product&products_id=' + prod_id);

}

function AjaxUpdateStockQuantities(prod_id, quantity, options_id, options_values_id) {
    Ajax(false, '/catalog/update_quantities.php?prod_id=' + prod_id + '&quantity=' + quantity + '&options_id=' + options_id + '&options_values_id=' + options_values_id);

}

function AjaxUpdateProducts(ProdID, AttrID, Field, Value) {
	Ajax(false, "/catalog/update_products.php?prod_id=" + ProdID + "&attr_id=" + AttrID + "&field=" + Field +  "&value=" + Value);
}

function AjaxSubmitForm(action, form, target) {
	if(target == null) {
		target = 'none';
	}
  Ajax(false, action, 'post', GetFormElements(form), target);

}

function get_customers_restock(products_id) {
	Ajax(false, '/catalog/get_customers_restock.php?products_id=' + products_id, 'get', '', 'd_restock_' + products_id, null, null, products_id);
}

function PhoneLink(action) {
	Ajax(false, '/catalog/phone_link.php?action=' + action, null, null, null, null, (action == 'get'));
	if(action == 'set') {
		expires = new Date();
		expires.setTime(expires.getTime() + (1000 * 3600));
		set_cookie('follow_me', 'true', expires);
	}
}

function SwapLeftMenu(menu_type) {
		if(menu_type == null) {
				var CurrentType = fetch_cookie('menu_type');			
				if(CurrentType == null) {
						CurrentType = 'obj';
				}
				var NewType = (CurrentType == 'obj' ? 'cat' : 'obj');			
		} else {
			var NewType = CurrentType = menu_type;
		}
		if(NewType == 'cat') {
			set_cookie('menu_id', '');
		}
    var Menu = fetch_object('LeftMenu');

		Menu.innerHTML = objectFlash('/pic/template/LeftMenu/menu.swf', 132, 536, 'menu_type=' + NewType, true);
		set_cookie('menu_type', NewType);
		oImg = fetch_object('menuButton');
    var strImg = oImg.src;
		oImg.src = strImg.replace(CurrentType, NewType);

}

sfHover = function() {
	var sfEls = fetch_object("nav");
	if(sfEls) {
		sfEls = sfEls.getElementsByTagName("LI")
		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}
}

//*********************
if (window.attachEvent) {
	window.attachEvent("onload", sfHover);
}
