/********************************/
/* 	Lancôme v4 AJaX object  	*/
/********************************/
jQuery(document).ready(function(){
	//if(self.location==parent.location) lcmAjaxObj.documentHeight=getTotalHeight();
});

/** toggle navigation layers for IE **/
function toggleNav() {
	if(jQuery.browser.msie) {
		jQuery("#udm li").hover(function(){
			jQuery(this).find("ul:first").show();
		},function(){		
			jQuery(this).find("ul:first").hide();
		});
	}
	jQuery("#udm li").hover(function(){
			jQuery(this).find('a:first').addClass('hover');
		},function(){
			jQuery(this).find('a:first').removeClass('hover');	
		});
}
/** set sub-menu arrow in list items **/
function setPicto() {
	jQuery("#udm li li").each(function(i){
		if(jQuery(this).children("ul").length > 0) {
			jQuery(this).find("a:first").after('<img src="/img/arrow_nav.gif" alt="" />');
			//jQuery(this).addClass('picto');
		}
	});
}

jQuery(document).ready(function(){
	/** hover added for IE 6 on top navigation **/
	toggleNav();
	setPicto();
	/** actions regarding the width of the current window, to adapt website **/
	adaptSiteToWindowWidth();		
});
jQuery(window).resize(function(){
	/** actions regarding the width of the current window, to adapt website **/
	adaptSiteToWindowWidth();
});

/** check current winndow width, to adapt website **/
function adaptSiteToWindowWidth(){
		var myWidth = getWindowWidth();	
		if(jQuery('.modalBackground').length>0)jQuery('.modalBackground:eq(0)').css('width',myWidth-15+"px");
		if(myWidth>1018){
			if(myWidth<1037){
				jQuery('#lcmCenter').removeClass('widescreen').addClass('mediumscreen');
			
			}else if(myWidth>1036){
				jQuery('#lcmCenter').addClass('widescreen').removeClass('mediumscreen');
			}
		}else{
			jQuery('#lcmCenter').removeClass('widescreen').removeClass('mediumscreen');
		}
}

/** get the current windows width **/
function getWindowWidth(){	
	var myWidth = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myWidth = window.innerWidth;    
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
	}	
	return parseInt(myWidth);
}



/**** modal builder ****/
modalBuilder = function(){
			 /**
		 *  The layer of the whole modal window (object)
		 */
		var _backgroundElement=null;
		var _isIE6 = $.browser.msie && ($.browser.version == "6.0") && !$.support.style;
		
		this._IsforegroundElementLarge=false;
		
	   
		/**
		 * _Initialize
		 */
		this._Initialize=function() {
			if (_backgroundElement==null) {
			
				if(_isIE6) {
				
					_backgroundElement = document.createElement('div');
					_backgroundElement.style.display = 'none'; //none
					_backgroundElement.style.position = 'absolute';
					_backgroundElement.className = 'modalBackgroundLoading';
					jQuery('body').append(_backgroundElement);
				} else {
					_backgroundElement = document.createElement('div');
					_backgroundElement.style.display = 'none'; //none
					_backgroundElement.style.position = 'fixed';
					_backgroundElement.className = 'modalBackgroundLoading';
					jQuery('body').append(_backgroundElement);
				}
			}
		}
	
				/**
		  * Show Modal
		  */
		this.ShowModal=function () {
			if ((_backgroundElement==null) || (typeof(_backgroundElement)=='undefined') ) {
				this._Initialize()
			}						
			// [AS] - Set the background here.
			jQuery("select").css('visibility','hidden');
			
			//var clientArea = Array((document.documentElement && document.documentElement.clientWidth) || window.innerWidth || self.innerWidth || document.body.clientWidth,(document.documentElement && document.documentElement.clientHeight) || window.innerHeight || self.innerHeight || document.body.clientHeight);
			var clientArea = Array((document.documentElement && document.documentElement.clientWidth) || window.innerWidth || self.innerWidth || document.body.clientWidth, jQuery(document).height());
			clientArea[1]=(clientArea[1]>lcmAjaxObj.documentHeight)?clientArea[1]:lcmAjaxObj.documentHeight;

			if(_isIE6) {
				_backgroundElement.style.left = '0px';
				_backgroundElement.style.top = '0px';
				_backgroundElement.style.width = clientArea[0] + 'px';
				_backgroundElement.style.height = clientArea[1] + 'px';
				_backgroundElement.style.display = 'block';
			} else {
				_backgroundElement.style.width = '100%';
				_backgroundElement.style.height = '100%';
				_backgroundElement.style.display = 'block';
			}
		 }
	
		/**
		 * Hide with event
		 */
		this.Hide=function() {
			this.HideModal();
			if (this.beforeClose!=null) {
				 eval(this.beforeClose + "();");
			
			}
		}
		/**
		 * Hide without event
		 */
		this.HideModal=function() {
			if (_backgroundElement!=null) {
				_backgroundElement.className='modalBackgroundLoading';
				_backgroundElement.style.display = 'none';
				_backgroundElement.style.height='0px';
			}
			
			jQuery("select").css('visibility','visible');
		}		
	
		/**
		 * ResizeHandler 
		 */
		this.ResizeHandler=function() {
	//        [AS] - Disable the resize
	//        if (_backgroundElement!=null && _backgroundElement.style.display != 'none' ){
	//            this.ShowModal();
	//        }
		}
	
		/** 
		 * ScrollHandler    
		 */
		this.ScrollHandler=function() {
	//        [AS] - Disable the scroll
	//        if (_backgroundElement!=null && _backgroundElement.style.display != 'none' ){
	//            this.ShowModal();
	//        }
		}

}



lcmAjaxObj = {	
	customerId:CurrentCustomerID,
	prd:'',
	ean:'',	
	documentHeight:'600',
	buildLoaderMask: new modalBuilder(),
	AddToBasket:function(ean,qty,prdcode){
		
		if(parent.lcmAjaxObj && parent.lcmAjaxObj!=lcmAjaxObj){			
			parent.lcmAjaxObj.AddFromOpenBuy(ean,qty,prdcode)			
		}else{
			this.buildLoaderMask.ShowModal();
			var preprod=false;
			if(window.location.href.indexOf('contentmanager')!=-1)preprod=true;
			
			var ws = (preprod)?"/ContentManagerData/Sites/aspnet/ws/ajax/shoppingcart.asmx/AddSingleItem":"/ws/ajax/shoppingcart.asmx/AddSingleItem";
			var json_string = "customerId="+this.customerId+"&productCode="+ean+"&quantity="+qty;
			this.errorId ="#error_msg";
			this.prd = prdcode;
			this.ean = ean;
			this.wscall("GET",json_string,ws,this.checkAddedCallBack,this.showError);
			
		}
	},
	
	AddFromOpenBuy:function(ean,qty,prdcode)	
	{		
		jQuery('#openbuy').hide();
		jQuery('#openbuy').remove();
		this.AddToBasket(ean,qty,prdcode);
		
	},
	
	checkAddedCallBack:function(xml){		
		jQuery(xml.responseXML).find("Status").each(function(){
			ActivityStatus = jQuery(this).find('ActivityStatus').text();
			ErrorString = jQuery(this).find('ErrorString').text();
			if(ActivityStatus!='false'){
				lcmAjaxObj.changeBasketTotal(lcmAjaxObj.showConfirm);
			}else{
				lcmAjaxObj.showError(lcmAjaxObj.errorId,'/_zh/_cn/catalog/error_add2bag.aspx?prdcode='+lcmAjaxObj.prd+'&eancode='+lcmAjaxObj.ean);
			}
		 });	
	},
	changeBasketTotal:function(nextCall){
		/** TODO : mutualiser en un seul appel **/
		var btnCheckout = $("#lcmShoppingRight img").attr("src");
		var bagImg = $("#bagImg").attr("src");
		$("#lcmShoppingBag").load('/_zh/_cn/checkout/smallbag.aspx?'+Math.round(Math.random()*10000)+' #lcmShoppingBag');
		$("#lcmShoppingRight").load('/_zh/_cn/checkout/smallbag.aspx?'+Math.round(Math.random()*10000)+' #lcmShoppingRight');	
		if(nextCall)nextCall();
		jQuery('.modalBackgroundLoading').removeClass('modalBackgroundLoading').addClass('modalBackground');
		$("#bagImg").attr("src", bagImg);
		$("#lcmShoppingRight img").attr("src", btnCheckout);	
		//alert(bagImg);
	},
	showError:function(objDisplayError,errormsg){
		
		jQuery('.modalBackground').removeClass('modalBackground').addClass('modalBackgroundLoading');
			
		jQuery('body').append('<iframe class="popConfirmAddedToBasket" id="errorAdd" style="z-index:1"></iframe>');	
		_PopinElement = $('#errorAdd');
		jQuery('#errorAdd').attr('src',errormsg).load(function(){
			var contentHeight=jQuery(this).contents().find('#lcmCenter').css('position','absolute').height();		
			contentHeight+=40;
			contentHeight+="px";
			jQuery('#errorAdd').css('height',contentHeight);	
			
			var posTop = $('#errorAdd').css('top').replace('px','');
			posTop = parseInt(posTop)+getScrollHeight()+"px";			
			$('#errorAdd').css('top',posTop);
			
			jQuery('#errorAdd').css('z-index',901);	
			jQuery('#errorAdd').fadeIn();
			jQuery('.modalBackgroundLoading').removeClass('modalBackgroundLoading').addClass('modalBackground');						
		});	
		
	},
	showConfirm:function(){
		
		$('body').append('<div class="popConfirmAddedToBasket" id="confirm" style="z-index:1"></div>');	
		_PopinElement = $('#confirm');

		$('#confirm .closePopin').live("click",function(){
			_PopinElement.hide();	
			lcmAjaxObj.buildLoaderMask.HideModal();
			_PopinElement.remove();
			document.body.style.cursor='default';
			$('#confirm .closePopin').die("click");
		});

		var _isIE6 = $.browser.msie && ($.browser.version == "6.0") && !$.support.style;
		var posTop = $(window).height();
		var _scrollTop = $(document).scrollTop();
		
		if(_isIE6) {
			$('#confirm').css('position','absolute');
		} else {
			$('#confirm').css('position','fixed');
			posTop = parseInt((posTop-350)/2);
			posTop = posTop + "px";
			$('#confirm').css('top',posTop);
		}
				
		$('#confirm').css('z-index',901);
		$('#confirm').load('/_zh/_cn/catalog/confirm_add2bag.aspx?prdcode='+lcmAjaxObj.prd+'&eancode='+lcmAjaxObj.ean+'&v='+Math.random()).show();	
		
	},
	returnProductInformation:function(productCode){
		
	},
	checkStock:function(ean){
		
	},
	wscall:function(type,json_string,urlws,successFnct,errorFnct){
			$.ajax({
					type: type,
					url: urlws,
					data: json_string,
					dataType: "xml",
					success: function(data){
						myData = data;	
					},
					complete: function(data){						
						
						successFnct(data);
					},
					error: function(data){
						errorFnct(this.errorId,data);
					}
				});
	},
	openBuy:function(prdcode,url){
		this.buildLoaderMask.ShowModal();
		var ws = url+"?prdcode="+prdcode;		
		$('body').append('<iframe class="popConfirmOpenBuy" id="openbuy" frameborder="0" border="0" style="z-index:1" scrolling="no"></iframe>');
		_PopinElement2 = $('#openbuy');
		
		
		$('#openbuy').attr('src',ws).load(function(){
			var contentHeight = $(this).contents().find('#lcmCenter').css('position','absolute').height();
			var _isIE6 = $.browser.msie && ($.browser.version == "6.0") && !$.support.style;
			var posTop = $(window).height();
			var _scrollTop = $(document).scrollTop();
			
			contentHeight+=40;
			contentHeight+="px";
			$('#openbuy').css('height',contentHeight);
			
			if(_isIE6) {
				$('#openbuy').css('position','absolute');
			} else {
				$('#openbuy').css('position','fixed');
				posTop = posTop - contentHeight.replace('px','');
				posTop = parseInt(posTop/2) + "px";
				$('#openbuy').css('top',posTop);
			}
			//var posTop = $('#openbuy').css('top').replace('px','');
			//posTop = parseInt(posTop) + getScrollHeight() + "px";		
			//posTop = parseInt(document.documentElement.scrollTop);
			
			
			//alert(posTop);
			
			
			$('#openbuy').css('z-index',901);
			$('#openbuy').fadeIn();
			jQuery('.modalBackgroundLoading').removeClass('modalBackgroundLoading').addClass('modalBackground');
		});		
		
	},
	openInfo:function(prdcode){
		this.buildLoaderMask.ShowModal();
		var ws = "/_zh/_cn/catalog/ow_infos.aspx?prdcode="+prdcode;		
		$('body').append('<iframe class="popConfirmOpenBuy" id="prdInfo" frameborder="0" border="0" style="z-index:1"></iframe>');
		_PopinElement2 = $('#prdInfo');
		
		$('#prdInfo').attr('src',ws).load(function(){
			var contentHeight=$(this).contents().find('#lcmCenter').css('position','absolute').height();
			var _isIE6 = $.browser.msie && ($.browser.version == "6.0") && !$.support.style;
			contentHeight+=40;
			contentHeight+="px";
			$('#prdInfo').css('height',contentHeight);
			if(_isIE6) {
				$('#prdInfo').css('position','absolute');
			} else {
				$('#prdInfo').css('position','fixed');
			}
			$('#prdInfo').css('z-index',901);	
			$('#prdInfo').fadeIn();
			jQuery('.modalBackgroundLoading').removeClass('modalBackgroundLoading').addClass('modalBackground');						
		});	
	},
	closePopin:function(obj){
		jQuery('#openbuy,#errorAdd,#prdInfo,#checkoutLogin').hide();
		jQuery('#openbuy,#errorAdd,#prdInfo,#checkoutLogin').remove();		
		lcmAjaxObj.buildLoaderMask.HideModal();
	},
	errorId:"#error_msg"
};


function TogglePleaseWait(status,raiseEvent){
var _pleaseWaitObject=$get(CORE_AJAX_PLEASEWAIT_DHTMLOBJECT_ID);
    if (_pleaseWaitObject!=null) 
    {
        if (IS_MODELPOPUP_VISIBLE)
        {
            lcmAjaxObj.buildLoaderMask.Hide();
        }
        
        _pleaseWaitObject.style.visibility=_Visibility;
        if(CORE_AJAX_LOAD_PLEASEWAIT_ASMODAL) 
        {
            lcmAjaxObj.buildLoaderMask._PopupControlID=CORE_AJAX_PLEASEWAIT_DHTMLOBJECT_ID;
            if (_Visibility=='visible') 
            {
                lcmAjaxObj.buildLoaderMask.ShowModal();
            }
            else 
            {
                if (RaiseEvent) 
                {
                  lcmAjaxObj.buildLoaderMask.HideModal();
                }
                else 
                {
                  lcmAjaxObj.buildLoaderMask.Hide();
                }
            }
        }
    }
	
}

/**
 * DoWait 
 */
function DoWait() {
        window.status = "";
       document.body.style.cursor='wait';
       TogglePleaseWait('visible',false)
}


/** 
 * DoDefault 
 */
function DoDefault() {
     document.body.style.cursor='default';
     TogglePleaseWait('hidden',false)
}



