/*
 * We will have some object to provide internal maintenance functionality to OSC
 * */

SmartCheckout = {
	JSURL : XCart.SkinDir + '/modules/Smart_Checkout/js',
	APIURL : XCart.WebDir + '/cart.php',
	loadingIndicator: loadingIndicator,
	requiredShippingFields: requiredShippingFields
}

	$_.$_DOM.$_.OSCLoader = {
		init : function(obj){
			obj.loading = function(s){
				if(!obj.loader){
					obj.loader = document.createElement('div');
					$_(obj.loader).CSS({
						height:'32px',
						lineHeight:'16px',
						verticalAlign:'middle',
						background:'no-repeat url('+XCart.SkinDir+'/modules/Smart_Checkout/img/'+SmartCheckout.loadingIndicator+') right top',
						paddingRight:'48px'
					})
					
				}
				if(obj.loader.parentNode) obj.removeChild(obj.loader)
				if(s && obj.childNodes.length){
					$_(obj.childNodes).CSS({display:'none'})
					obj.appendChild(obj.loader)
				}else if(obj.childNodes.length){
					
					$_(obj.childNodes).CSS({display:''})
				}
					
				return obj;
			}
			
			obj.loadingBig = function(msg){
				obj.oldHTML = obj.innerHTML;
				var h = obj.offsetHeight;
				var w = obj.offsetWidth
				
				obj.innerHTML = '<div></div>'; 
				$_(obj.firstChild).CSS({
						height:h+'px',
						width:w+'px',
						lineHeight:'16px',
						verticalAlign:'middle',
						margin:'0 auto',
						background:'no-repeat url('+XCart.SkinDir+'/modules/Smart_Checkout/img/'+SmartCheckout.loadingIndicator+') 50% 50%'
				})
			}
		}
	}








	

	


	OSCSwitchTo = function(mode, hideButton){
		/* Hide top buttons
		*  0 - not hide, 1 - first button, 2 - second button, 3 - both buttons		 
		*/
		var els = $_('#OSCBtnCheckout', '#OSCBtnCart');
		for(var i=1; i< els.length+1; i++){
			if(i==hideButton || hideButton==els.length+1){
				els[i-1].CSS({display:'none'})
			}else
				els[i-1].CSS({display:''})
		}
		switch(mode){
			case 'checkout':
				$_('#OSCBigCart', '#OSCBtnShopping').CSS({display:'none'});
				$_('.PPGButtons').CSS({display:''});
				$_('#OSCTotal').CSS({display:''});
				Totals.initOffset = $_('.OSCMainArea').getXY().y
				Totals.container.style.top = Totals.initOffset + 'px';
		//		OSCUpdateDiscountCoupon();
		//		OSCOnCartChanged();
		//		OSCOnPersonalInfoChanged();
				$_('#OSCLogin').style.display= (Profile.mode != 'view') ? 'block':'none';
				$_('#OSCCheckoutPage').CSS({display:'', opacity:'0'})
				$_('#OSCCheckoutPage').mutate({opacity:0},{opacity:1}, 30)
			break;
			default:
				$_('.PPGButtons').CSS({display:'none'});
				$_('#OSCCheckoutPage').CSS({display:'none'})
				$_('#OSCBigCart').loadingBig();
				$_('#OSCTotal').CSS({display:'none'});
				$_('#OSCBigCart','#OSCBtnShopping').CSS({display:''})
				
				$_('#OSCLogin').style.display='none';
				
				$_(SmartCheckout.APIURL+'?ax=1&function=get_big_cart').GET(function(data){
					$_('#OSCBigCart').CSS({display:''})
					$_('#OSCBigCart').innerHTML = data.stdout;
		

				})
				
				
		}
	}

	OSCPreload = function(){
		start_js_states = init_js_states = change_states = function(){};
		
		$_('#BBCheckout').onclick = function(){
			OSCSwitchTo('checkout',1)
			return false;
		}
		$_('#BBCart').onclick = function(){
			OSCSwitchTo('cart',2)
			return false;
		}		
		
		$_('#OSCLoader').CSS({display:'none'})
		$_('.OSCMainArea').CSS({display:'block'})

		Profile = new __Profile;
		PaymentMethod = new __PaymentMethod;
		ShippingMethod = new __ShippingMethod;
		Cart = new __Cart;
		
		Totals = new __Totals;
		DiscountCoupon = new __DiscountCoupon;
		Order = new __Order;
		Login = new LiveLogin();
		
		Profile.checkShip2DiffState()
	
		
		

		

	}

