var productOpen=0;
var windowProduct=0;
var loadWait=0;
var dimensionless=0;

window.callmanager={
	loaders: [],
	load: function(target,url,params,f){
		var t=this.loaders[target];
		if(t) t.abort();
		t=$.get(url,params,function(data){ window.callmanager.loaded(target,url,f,data);});	
		this.loaders[target]=t;
	},
	loaded: function(target,url,f,data){
		$(target).html(data).evalScripts();
		this.loaders[target]=0;		
		f();	
	}
};

$(document).ready(function(){
	

	var flashPreloader=document.createElement("img");
	flashPreloader.src=PATH+"journeyplanner.swf";
	
	if($('#chooseProduct')){
		$('#chooseProduct').ajaxForm({target:'#product'});	
	}
	
	if($('#extrasForm')){
		$('#extrasForm').ajaxForm({
		target:'#extrasResult',
		beforeSubmit: function(){ if(loadWait) return false; loadWait=1; $('.extra_added').fadeIn('fast'); return true;},
		success: function(response){extrasResponse(response);} });	
	}
	
	if($('#blindsForm')){
		$('#blindsForm').ajaxForm({
		target:'#blindsResult',
		beforeSubmit: function(){ if(loadWait) return false; loadWait=1; $('.blinds_added').fadeIn('fast'); return true;},
		success: function(response){blindsResponse(response);} });	
	}
	
	reloadBasket();
	showSection('windows');

});


var WAITING_HTML='<div><img src="'+PATH+'img/loading.gif" alt="Please wait..." border="0" /></div>';
var BASKET_WAITING_HTML='<li><a href="#" onClick="showBasket(); return false" id="basket_link">View your plan <img style="position: absolute; top: 0; right: 0;" src="'+PATH+'img/basket_loading.gif" alt="Please wait..." border="0" /></a></li>';

var imgCounter=0;
function changeImageLeft(){
	if(images.length>0){
		imgCounter=imgCounter-1;
		if(imgCounter<0) imgCounter=images.length-1;				
	}
	$('#prodImage').attr("src",images[imgCounter]);
}

function changeImageRight(){
	if(images.length>0){
		imgCounter=imgCounter+1;
		if(imgCounter>=images.length) imgCounter=0;				
	}
	$('#prodImage').attr("src",images[imgCounter]);
}

var prodImages=[];
var prodImgCounter=[];
var preload=[];
function changeProductImageLeft(id){	
	changeProductImage(id,-1);
}

function changeProductImageRight(id){	
	changeProductImage(id,1);
}


function changeProductImage(id,d){
	if(!prodImgCounter[id]) prodImgCounter[id]=0;
	var c=prodImgCounter[id];
	var images=prodImages[id];
	if(images){	
		if(images.length>0){
			c=c+d;
			if(c>=images.length) c=0;					
			prodImgCounter[id]=c;
		}	
		$('#prodImage'+id).attr("src",prodImages[id][c]);
	}
}


lastOption=0;
function getOptionSizes(id){
	loadWait=1;
	$('#unitPrice').html(WAITING_HTML);
	prices=[];
	dimensions=[];
	dimcodes=[];
	dimids=[];
	dimimg=[];
	if(dimensionless){
		$('#d_dimensions').hide();	
		callmanager.load('#d_dimensions',"getOptionCosts.php?idProductOption="+id,{},function(){ loadWait=0;});		
	}else{
		$('#d_dimensions').html('');
		$('#d_dimensions').show();	
		callmanager.load('#d_dimensions',"getOptionCosts.php?idProductOption="+id,{},function(){ loadWait=0;});	
	}
	if(lastOption){
		$('#lnk_option_'+lastOption).removeClass("option_link_active");
	}
	lastOption=id;
	$('#lnk_option_'+id).addClass("option_link_active");
	
}


currentAccessory=0;
function selectAccessory(id){
	$('#accPrice').html('');
	if(currentAccessory){
		$('#lnk_accessory_'+currentAccessory).removeClass("accessory_link_active");
	}
	currentAccessory=id;
	$('#lnk_accessory_'+id).addClass("accessory_link_active");
	
	$('#idAccessory').attr("value",id);
	calculateAccessoryPrice();
}

function calculateAccessoryPrice(){
	var quantity=$('#accessoryQuantity').attr("value");
	if(!quantity) quantity=0;	
	var price=accessoryPrice[currentAccessory];
	if(!price) price=0;
	$('#accPrice').html(getCash(price*quantity));
}	
var currentPrice=0;
var finishPrice=[];
function calculateProductPrice(){
	var quantity=$('#quantity').attr("value");
	if(!quantity) quantity=0;
	var price=currentPrice;
	if(!price) price=0;
	var finish=0;
	finish=$('#idFinish').attr("value");
	if(finish && finishPrice[finish]) price+=finishPrice[finish];
	$('#unitPrice').html(getCash(price*quantity));
}	
	
var finished=false;
function showJourney(){
	hideBasket();
	//swap link graphics
	$('#journey_planner_link').attr({src: "../img/menu_journey_planner_on.gif"});
	$('#budget_planner_link').attr({src: "../img/menu_budget_planner.gif"});
	$('#budget_planner').hide('fast');
	$('#budget_stub').show();
	$('#d_journey').animate({height:250},'slow',0,function(){	
		if(!window.finished){
			window.finished=true;						
			var so = new SWFObject(PATH+"journeyplanner.swf", "journeyplanner", "733", "250", "8", "#FFFFFF");
			so.addParam("menu", "false");
			so.addParam("scale", "noscale");
			so.addParam("salign", "t"); 
			so.addVariable("server",SERVER);
			so.addVariable("currency",(CURRENCY==="&pound;"?"GBP":"euro"));				
			so.addParam("swLiveConnect", "true"); 
			so.write("d_journey");
		}
	});
}

function hideJourney(){
	$('#journey_planner_link').attr({src: "../img/menu_journey_planner.gif"});
	$('#budget_planner_link').attr({src: "../img/menu_budget_planner_on.gif"});
	$('#budget_stub').hide();
	window.finished=false;
	$('#d_journey').html('');
	$('#d_journey').animate({height:0},'fast');
	$('#budget_planner').show('fast');	
}

function getCash(pennies){


	var pounds=Math.floor(pennies/100);
	var pence=pennies-pounds*100;
	if(pence<10) pence="0"+pence;
	if(pounds>1000){
		thou=Math.floor(pounds/1000);
		pounds=pounds-thou*1000;
		if(pounds<10) pounds="00"+pounds;
		else if(pounds<100) pounds="0"+pounds;
		val=thou+","+pounds+"."+pence;
	}else{
		val=pounds+"."+pence;
	}
	return CURRENCY+val;
}

function accessorySubmit(){
	if(loadWait) return false;
	loadWait=1;	
	$('#accessoryAddToPlan').attr("src",PATH+'img/btn_addtoplan_over.gif');
	
	$('#accessory_added').fadeIn('fast');
	return true;
}

function accessoryResponse(text){	
	selectAccessory(0);
	
	$('#accessory_added').fadeOut('slow',
		function(){
			loadWait=0;	
			$('#accessoryQuantity').attr("value",1);	
			$('#accessoryAddToPlan').attr("src",PATH+'img/btn_addtoplan.gif');
			$('#basket_added').fadeIn('slow',
				function(){
					$('#basket_added').fadeOut('slow',
						function(){ 
							reloadBasket();
							calculateAccessoryPrice();
						}
					);
				}
			);
		}
	);

	
	
}

function productSubmit(){
	if(loadWait) return false;
	loadWait=1;		
	$('#productAddToPlan').attr("src",PATH+'img/btn_addtoplan_over.gif');
	$('#product_added').fadeIn('fast');
	
	return true;
}

function productTypeResponse(text){
	
	$('#product_added').fadeOut('slow',
		function(){
			loadWait=0;	
			$('#quantity').attr("value",1);
			$('#productAddToPlan').attr("src",PATH+'img/btn_addtoplan.gif');						
			$('#basket_added').fadeIn('slow',
				function(){				
					$('#basket_added').fadeOut('slow',
						function(){ 
							reloadBasket();
							calculateProductPrice();
						}
					);
				}
			);
		}
	);	
}

function extrasResponse(text){
	
			$('.extra_added').fadeOut('slow',
				function(){
				 loadWait=0; 
					$('#basket_added').fadeIn('slow',
						function(){
							$('#basket_added').fadeOut('slow',
								function(){ 
									reloadBasket();
								}
							);
						}
					);
				}
			);
	
	
}

function blindsResponse(text){
	
			$('.blinds_added').fadeOut('slow',
				function(){
				 loadWait=0; 
					$('#basket_added').fadeIn('slow',
						function(){
							$('#basket_added').fadeOut('slow',
								function(){ 
									reloadBasket();
								}
							);
						}
					);
				}
			);
	
	
}

function reloadBasket(){
	//$('#basket').html(BASKET_WAITING_HTML);
	callmanager.load('#basket',"getBasket.php");	
	$('#basket').css("z-index",100);
}

function chooseWindowProduct(id){
	loadWait=1;
	$('#windowproduct').html(WAITING_HTML);
	$('#windowproduct').show('slow');
	lastSection=currentSection;	
	showSection(0);
	callmanager.load('#windowproduct',"getProduct.php?idProduct="+id,{},function(){			
		productOpen=1;
		windowProduct=1;
		loadWait=0;
	});
}


var lastPreview=0;
function previewProduct(id){
	if(lastPreview!=id){
		if(lastPreview) $('#info_product_'+lastPreview).hide('slow');
		$('#info_product_'+id).show('slow');
		lastPreview=id;
	}
}

function chooseOtherProduct(id){
	loadWait=1;
	$('#otherproduct').html(WAITING_HTML);	
	$('#otherproduct').show('slow');
	lastSection=currentSection;	
	showSection(0);	
	
	callmanager.load('#otherproduct',"getProduct.php?idProduct="+id,{},function(){	
			
		productOpen=1;
		windowProduct=0;
		loadWait=0;
	});

}



function closeProduct(forced){
	var dv;
	if(windowProduct){
		dv=$('#windowproduct');
	}else{
		dv=$('#otherproduct');
	}	
	dv.hide('fast',function(){
		$(this).children().remove();
		productOpen=0;
		currentType=0;
		currentDimension=0;
		if(!forced)	showSection(lastSection);
	});
}


var currentType=0;
function chooseType(id){
	loadWait=1;
	if(currentType){
		oldD=$('#lnk_type_'+currentType);
		oldImg=oldD.find("img");	
		s=oldImg.attr("src");
		if(s){
			s=s.substr(0,s.length-8)+".jpg";
			oldImg.attr("src",s);
		}
		oldD.removeClass("selected_type");		
	}
	var d=new Date();	
	$('#productType').html(WAITING_HTML);
	$('#productType').load("getProductType.php?idProductType="+id+"&time="+d.getTime(),function(){
		loadWait=0;
	});	
	currentType=id;
	d=$('#lnk_type_'+id);
	img=d.find("img");
	s=img.attr("src");
	if(s){
		if(s.indexOf("_sel.jpg")==-1){
			s=s.substr(0,s.length-4)+"_sel.jpg";
			img.attr("src",s);
		}
	}
	d.addClass("selected_type");
}

var currentSection=0;
var lastShowSection=currentSection;
function showSection(name){
	if(productOpen){ closeProduct(1);}
	if(name==currentSection) return;
	if(currentSection){
	 	$('#'+currentSection).hide('fast');
	    if(name){ lastShowSection=0; $('#lnk_'+currentSection).removeClass("section_link_active");	}
	    else lastShowSection=currentSection;
	}	
	if(name && lastShowSection){
		$('#lnk_'+lastShowSection).removeClass("section_link_active");	
	}
	currentSection=name;	
	if(name){
		$('#lnk_'+name).addClass("section_link_active");
		$('#'+name).show('fast');
	}
}

function showNewUser(){
	$('#lnk_login').removeClass('title_active');
	$('#d_login').hide('fast');
	$('#d_login_frame').css('display', 'block');
	$('#lnk_newuser').addClass('title_active');
	$('#d_newuser').show('fast');
}

function showLogin(){
	$('#lnk_newuser').removeClass('title_active');
	$('#d_newuser').hide('fast');
	$('#lnk_login').addClass('title_active');
	$('#d_login_frame').css('display', 'block');
	$('#d_login').show('fast');
}


var currentFinish=0;
function chooseFinish(id){
	 $('#lnk_finish_'+currentFinish).removeClass("finish_link_active");	
		
	currentSection=name;	
	currentFinish=id;
	 $('#lnk_finish_'+currentFinish).addClass("finish_link_active");	
	$('#idFinish').attr("value",id);
	
	calculateProductPrice();
}

var currentDimension=0;
function changeDimensionLeft(){
	currentDimension=currentDimension-1;
	if(currentDimension<0){
		currentDimension=dimids.length-1;
	}
	selectPrice(dimids[currentDimension]);
}

function changeDimensionRight(){
	currentDimension=currentDimension+1;
	if(currentDimension>=dimids.length){
		currentDimension=0;
	}
	selectPrice(dimids[currentDimension]);
}
var prices=[];
var dimensions=[];
var dimcodes=[];
var dimids=[];
var dimimg=[];
lastCode=0;
function selectPrice(id){

	$('#idProductOptionCost').attr("value",id);
	dim=dimensions[id];
	if(dimimg[id]){
		$('#box_example').html('<img src="'+PATH+dimimg[id]+'" alt="" />');
		$('#box_example').css("border","none");
		$('#box_code').html('');
	}
 	else if(dim){
		bits=dim.split("x");
		$('#box_example').css("width",bits[0]/5+"px");
		$('#box_example').css("height",bits[1]/5+"px");
		$('#box_example').css("border","1px solid black");
		$('#box_code').html(dimcodes[id]);
	}else{
		$('#box_example').css("width","5px");
		$('#box_example').css("height","5px");	
		$('#box_example').css("border","1px solid black");
		$('#box_code').html(dimcodes[id]);
	}
	lastCode=dimcodes[id];
	
	$('#dimensionHolder').html(dimensions[id]);	
	currentPrice=prices[id];
	calculateProductPrice();
}

function showBasket(){
	hideJourney();
	$('#basket_contents').show('slow');
	$('#basket_total').hide();
	$('#product_menu').hide();
}

function hideBasket(){
	$('#basket_contents').hide('fast',function(){
		$('#basket_total').show();
		$('#product_menu').show();
	});
}

function removeAccessory(id){
	$('#btn_remove_acc_'+id).attr("src",PATH+"img/remove_wait.gif");
	$.get("removeItem.php?idAccessory="+id,function(){$('#basket_accessory_'+id).remove();});
	calculateBasketTotal();
}
function removeItem(id){
	$('#btn_remove_'+id).attr("src",PATH+"img/remove_wait.gif");
	$.get("removeItem.php?idItem="+id,function(response){ 
		$('#basket_item_'+id).remove(); 
		$('#basket_finish_'+id).remove(); 
		$('.overall_price').html(getCash(response));
		$('#basket_total_price').html(getCash(response));
		});
}

