if (typeof(FANDS)=='undefined') {FANDS={version: '.1',uid: '',member: {},lib: {}, appDescription: 'JANDS Shopping Cart'}}
FANDS.serviceCalls_products ={
	sUrl:'yuiservice_products.php',
	functions:{
		general:{},
		ui:{
			showProducttsInOverlay:function(productId){
					
			}
		}
	},
	GetProduct:{
		response:false,
		execute:function(cPath, productId, e, singlePage){
			if(e){
				Yue.stopEvent(e);
			}
			var sUrl = FANDS.serviceCalls_products.sUrl;
			var postData = "op=GetProduct&main_page=product_info&cPath="+cPath+"&id="+productId;
			
			var handleSuccess_singlePage = function(o){
				FANDS.serviceCalls_products.GetProduct.response = eval("("+o.responseText+")");
				var _FsGr = FANDS.serviceCalls_products.GetProduct.response;
				if(_FsGr.FANDSServiceResponse.response === 'Success'){	
					// boe hide/show 'View more Images link'
					if(_FsGr.FANDSServiceResponse.result.product_images.length === 1 || _FsGr.FANDSServiceResponse.result.product_images.length === 0){
						//alert(_FsGr.FANDSServiceResponse.result.product_images.length);
						Dom.addClass('viewMoreImagesLink', 'displayNone');
					}else if(_FsGr.FANDSServiceResponse.result.product_images.length > 1){
						Dom.removeClass('viewMoreImagesLink', 'displayNone');
					}
					// boe hide/show 'View more Images link'
				}
			}
			
			var handleSuccess = function(o){
				FANDS.serviceCalls_products.GetProduct.response = eval("("+o.responseText+")");
				var _FsGr = FANDS.serviceCalls_products.GetProduct.response;
				if(_FsGr.FANDSServiceResponse.response === 'Success'){					
					FANDS.serviceCalls_products.GetProduct.panels.productPanel();
				
					Dom.removeClass('product_panel', 'displayNone');
					Dom.addClass('product_panel_c', 'yui-skin-sam');
					// hide flash before showing panel
					if(Dom.get('flashMainHeader')){
						Dom.setStyle('flashMainHeader', 'visibility', 'hidden');	
					}
					FANDS.productPanel.panel.show();
				// boe subscribe to panel hide event
					FANDS.productPanel.panel.hideEvent.subscribe(function(){ 
						Dom.get('productMainImage').innerHTML = '<img id="mainProductImage_panel" src="" alt="" title=" " width="500" height="375" />';
						Dom.get('mainProductImage_panel').src = '';
						
						if(Dom.get('flashMainHeader')){
							Dom.setStyle('flashMainHeader', 'visibility', 'visible');	
						}
					}); 
				// eoe subscribe to panel hide event
				// boe hide/show 'View more Images link'
					if(_FsGr.FANDSServiceResponse.result.product_images.length === 1 || _FsGr.FANDSServiceResponse.result.product_images.length === 0){
						//alert(_FsGr.FANDSServiceResponse.result.product_images.length);
						Dom.addClass('viewMoreImagesLink', 'displayNone');
					}else if(_FsGr.FANDSServiceResponse.result.product_images.length > 1){
						Dom.removeClass('viewMoreImagesLink', 'displayNone');
					}
				// boe hide/show 'View more Images link'
					Dom.get('productName_panel').innerHTML = _FsGr.FANDSServiceResponse.result.product_name;
					Dom.get('productName').innerHTML = _FsGr.FANDSServiceResponse.result.product_name;
					Dom.get('mainProductImage_panel').src = (_FsGr.FANDSServiceResponse.result.product_image !== '')?'images/'+_FsGr.FANDSServiceResponse.result.product_image:'images/no_picture_LRG.gif';
					Dom.get('mainProductImage_panel').width = _FsGr.FANDSServiceResponse.result.imageWidth;
					Dom.get('mainProductImage_panel').height = _FsGr.FANDSServiceResponse.result.imageHeight;
					Dom.get('mainProductImage_panel').alt = '';
					Dom.get('mainProductImage_panel').title = _FsGr.FANDSServiceResponse.result.product_name;
					Dom.get('productModel').innerHTML = 'Code: '+_FsGr.FANDSServiceResponse.result.product_model;
					if(_FsGr.FANDSServiceResponse.result.product_width != 0){
						Dom.get('productWidth').innerHTML = 'Width: '+_FsGr.FANDSServiceResponse.result.product_width+' inches';
					}else{
						Dom.get('productWidth').innerHTML = '';
					}
					Dom.get('productPrices').innerHTML = 'Price: $'+_FsGr.FANDSServiceResponse.result.product_price+'/yard';
					var main_page = _FsGr.FANDSServiceResponse.result.main_page;
					var cPath = _FsGr.FANDSServiceResponse.result.cPath;
					var product_id = _FsGr.FANDSServiceResponse.result.product_id;
					// if description is => 684 then only 684 characters and ...[more]
					Dom.get('productDescription').innerHTML = _FsGr.FANDSServiceResponse.result.product_description.substring(0, 680);
					if(_FsGr.FANDSServiceResponse.result.product_description.length > 680){
							Dom.get('productDescription').innerHTML = Dom.get('productDescription').innerHTML+"...<span class='redFont'>[<a href='http://stage.fandstest.com/index.php?main_page=product_info&cPath="+cPath+"&products_id="+product_id+"'>more</a>]</span>";
					}
					
					//http://fands.tinodesigns.com/index.php?main_page=product_info&cPath=1_8&products_id=2&action=add_product
					Dom.get('cart_quantity_panel').action = 'index.php?main_page='+main_page+'&cPath='+cPath+'&products_id='+product_id+'&action=add_product';
					Dom.get('products_id_panel').value = _FsGr.FANDSServiceResponse.result.product_id;
					
					/* boe hack for the sewing machines */
					
					if(productId === '75' || productId === '86' || productId === '76'){
						Dom.get('cart_quantity').value = '1';
						Dom.addClass('orderValueUnits', 'displayNone');
						Dom.addClass('getFreeSwatch', 'displayNone');
						Dom.get('productPrices').innerHTML = 'Price: $'+_FsGr.FANDSServiceResponse.result.product_price;
						Dom.get('minPurchaseInfo').innerHTML = '';
					}
				/* eoe hack for the sewing machines */
				}
				//alert("success: "+o.responseText);
			};
			var handleFailure = function(o){
				//alert("failure: "+o.responseText);
			};
			if(!singlePage){
				var callback =
				{
				  success:handleSuccess,
				  failure:handleFailure
				};
			}else{
				var callback =
				{
				  success:handleSuccess_singlePage,
				  failure:handleFailure
				};	
			}
			var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
			// return json object	
		},
		functions:{
			ui:{
				showMoreImagesInPanel:function(){ //FANDS.serviceCalls_products.GetProduct.functions.ui.showMoreImagesInPanel()
					var _FsGr = FANDS.serviceCalls_products.GetProduct.response;
					Dom.get('productMainImage').innerHTML = '';
					var imagesLayoutHTML = '<table><tr>';
					//alert(_FsGr.FANDSServiceResponse.result.product_images.length);
					for(var i = 0;i<_FsGr.FANDSServiceResponse.result.product_images.length;i++){
						imagesLayoutHTML += '<td valign="top"><img src="images/'+_FsGr.FANDSServiceResponse.result.product_images[i].image+'" width="144" height="108" onclick="FANDS.serviceCalls_products.GetProduct.functions.ui.loadChoosenImageInPanel(\''+_FsGr.FANDSServiceResponse.result.product_images[i].image+'\');"/></td>';
						
						if(i!== 0 && (i === 2 || i%2 === 0)){
							imagesLayoutHTML += '</tr><tr>';
						}
					}
					imagesLayoutHTML += '</tr></table>';
					Dom.get('productMainImage').innerHTML = imagesLayoutHTML;
				},
				loadChoosenImageInPanel:function(image){
					Dom.get('productMainImage').innerHTML = '<img height="375" width="500" title="Silver with Lavender Chantilly lace" alt="" src="images/'+image+'" id="mainProductImage_panel"/>';
					
				}
			},
			general:{
			}
		},
		panels:{
			productPanel:function(){
				var cfg = {container:'product_panel', config:{width: "800px", height:'500px', 
										  fixedcenter: true, 
										  close: true, 
										  draggable: true, 
										  zindex:4,
										  modal: true,
										  underlay:'shadow',
										  visible: false}
				};	
				FANDS.productPanel = {
					panel: (function(){ return FANDS.lib.panel.Configure(cfg); }())
				}		
			}	
		},
		buttons:{
			viewMoreImagesLink:(function(){
				Yue.on('viewMoreImagesLink', 'click', function(ev){
					Yue.stopEvent(ev);
					FANDS.serviceCalls_products.GetProduct.functions.ui.showMoreImagesInPanel();
				 });
			})()	
		}
	},
	getFreeSwatch:{
		execute:function(){
			var sUrl = FANDS.serviceCalls_products.sUrl;
			var postData = 'op=getFreeSwatch';
			var productId = Dom.get('products_id_panel').value;
			postData += '&productId='+productId;
			var handleSuccess = function(o){
				var response = eval("("+o.responseText+")");
				if(response.FANDSServiceResponse.response === 'Success'){
					Dom.get('getFreeSwatch_count').innerHTML = response.FANDSServiceResponse.count;
					alert(response.FANDSServiceResponse.message);
				}else if(response.FANDSServiceResponse.response === 'Failure'){
					alert(response.FANDSServiceResponse.message);
				}
			};
			var handleFailure = function(o){
				//alert("failure: "+o.responseText);
			};
			var callback =
			{
			  success:handleSuccess,
			  failure:handleFailure
			};
			var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
		},
		buttons:{
			getFreeSwatch:(function(){
				Yue.on('getFreeSwatch', 'click', function(ev){
					Yue.stopEvent(ev);
					FANDS.serviceCalls_products.getFreeSwatch.execute();
				 });
			})()
		}
	},
	removeFreeSwatch:{
		execute:function(index){
			var sUrl = FANDS.serviceCalls_products.sUrl;
			var postData = 'op=removeFreeSwatch&index='+index;
			var handleSuccess = function(o){
				//alert(o.responseText);
				FANDS.serviceCalls_products.getFreeSwatchSession.execute();
				var response = eval("("+o.responseText+")");
				if(response.FANDSServiceResponse.response === 'Success'){
					Dom.get('getFreeSwatch_count').innerHTML = response.FANDSServiceResponse.count;
					//alert(response.FANDSServiceResponse.message);
				}else if(response.FANDSServiceResponse.response === 'Failure'){
					//alert(response.FANDSServiceResponse.message);
				}
			};
			var handleFailure = function(o){
				//alert("failure: "+o.responseText);
			};
			var callback =
			{
			  success:handleSuccess,
			  failure:handleFailure
			};
			var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
		},
		buttons:{
			deleteSwatch_style_01:(function(){
				Yue.on('deleteSwatch_style_01', 'click', function(ev){
					Yue.stopEvent(ev);
					if(Dom.get('style_01').value){
						Dom.get('style_01').disabled = false;
						Dom.get('description_01').disabled = false;
						Dom.get('description_01').value = '';
						Dom.get('style_01').value = '';
						FANDS.serviceCalls_products.removeFreeSwatch.execute('0');
					}
				 });
			})(),
			deleteSwatch_style_02:(function(){
				Yue.on('deleteSwatch_style_02', 'click', function(ev){
					Yue.stopEvent(ev);
					if(Dom.get('style_02').value){
						Dom.get('style_02').disabled = false;
						Dom.get('description_02').disabled = false;
						Dom.get('description_02').value = '';
						Dom.get('style_02').value = '';
						FANDS.serviceCalls_products.removeFreeSwatch.execute('1');
					}
				 });
			})(),
			deleteSwatch_style_03:(function(){
				Yue.on('deleteSwatch_style_03', 'click', function(ev){
					Yue.stopEvent(ev);
					if(Dom.get('style_03').value){
						Dom.get('style_03').disabled = false;
						Dom.get('description_03').disabled = false;
						Dom.get('description_03').value = '';
						Dom.get('style_03').value = '';
						FANDS.serviceCalls_products.removeFreeSwatch.execute('2');
					}
				 });
			})(),
			deleteSwatch_style_04:(function(){
				Yue.on('deleteSwatch_style_04', 'click', function(ev){
					Yue.stopEvent(ev);
					if(Dom.get('style_04').value){
						Dom.get('style_04').disabled = false;
						Dom.get('description_04').disabled = false;
						Dom.get('description_04').value = '';
						Dom.get('style_04').value = '';
						FANDS.serviceCalls_products.removeFreeSwatch.execute('3');
					}
				 });
			})(),
			deleteSwatch_style_05:(function(){
				Yue.on('deleteSwatch_style_05', 'click', function(ev){
					Yue.stopEvent(ev);
					if(Dom.get('style_05').value){
						Dom.get('style_05').disabled = false;
						Dom.get('description_05').disabled = false;
						Dom.get('description_05').value = '';
						Dom.get('style_05').value = '';
						FANDS.serviceCalls_products.removeFreeSwatch.execute('4');
					}
				 });
			})()
		}
	},
	getFreeSwatchSession:{
		execute:function(){
			var sUrl = FANDS.serviceCalls_products.sUrl;
			var postData = 'op=getFreeSwatchSession';
			var handleSuccess = function(o){
				var response = eval("("+o.responseText+")");
				if(response.FANDSServiceResponse.response === 'Success'){
					for(var j=0;j<5;j++){
						Dom.get('description_0'+(j+1)).value = '';	
						Dom.get('style_0'+(j+1)).value = '';
					}
					var _rFs = response.FANDSServiceResponse.swatch_id;
					for(var i=0;i<_rFs.length;i++){
						Dom.get(_rFs[i].htmlId).value = _rFs[i].products_model;
						Dom.get('description_0'+(i+1)).value = _rFs[i].products_name;
						Dom.get(_rFs[i].htmlId).disabled = true;
						Dom.get('description_0'+(i+1)).disabled = true;
					}
				}
			};
			var handleFailure = function(o){
				//alert("failure: "+o.responseText);
			};
			var callback =
			{
			  success:handleSuccess,
			  failure:handleFailure
			};
			var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
		}
	},
	submitFreeSwatchOrder:{
		execute:function(){
			// argument formId can be the id or name attribute value of the
			// HTML form, or an HTML form object.
			var formObject = document.getElementById('swatchSubmittionForm');
			YAHOO.util.Connect.setForm(formObject);
			// This example facilitates a POST transaction.
			// An HTTP GET can be used as well.
			var handleSuccess = function(o){
				//alert("success: "+o.responseText);
				Dom.get('orderSwatchLeftFLoat').innerHTML = o.responseText;
			};
			var handleFailure = function(o){
				//alert("failure: "+o.responseText);
			};
			var callback =
			{
			  success:handleSuccess,
			  failure:handleFailure
			};
			var cObj = YAHOO.util.Connect.asyncRequest('POST', 'yuiservice_products.php', callback);
		},
		functions:{
			general:{
				validateSwatchSubmittion:function(){
					var htmlElements = [
										{id:'name'},{id:'address'},{id:'email'},{id:'phone'}
										];
					var errorDetected = false;
					for(var i =0;i<htmlElements.length;i++){
						if(	!Dom.get(htmlElements[i].id).value){
							Dom.setStyle(htmlElements[i].id, 'backgroundColor', 'red');
							errorDetected = true;
						}
					}
					if(errorDetected){
						return false;
					}else{
						return true;
					}
				}
			}
		},
		buttons:{
			freeSwatch_submit:(function(){
				Yue.on('freeSwatch_submit', 'click', function(ev){
					Yue.stopEvent(ev);
					for(var i = 1;i<6;i++){
						Dom.get('style_0'+i).disabled = false;
						Dom.get('description_0'+i).disabled = false;
					}
					var formValid = FANDS.serviceCalls_products.submitFreeSwatchOrder.functions.general.validateSwatchSubmittion();
					if(Dom.get('style_01').value){
						if(formValid){
							FANDS.serviceCalls_products.submitFreeSwatchOrder.execute();
						}else{
							alert('Please fill in all required fields.');	
						}
					}else{
							alert('Please choose up to 5 free swatches and fill in all required fields.');	
					}
				 });						
			}())
		}
	}
}