// JavaScript Document
current_car = 1;
car_timer = 0;

function showMoreProducts(prodstoshow,totalprodcount){
	
	$('showmorethrobber').show();
	$('showmoretext').hide();
	$('showmore').addClassName('showmoreloading');
	
	prodlefttoshow = prodstoshow.slice(initialprodstoshow);
	prodstoshow = prodstoshow.slice(0,initialprodstoshow);
	
	params = '';
	prodstoshow.each(function(prod){ params += '&prodstoshow[]='+prod; });

	new Ajax.Request('/misc_handler.php?getmoreproducts=1', {
		parameters: params,			 
		onSuccess: function(transport){
			var json = transport.responseText.evalJSON();
			
			if (prodlefttoshow.length) { 
				prodsnotyetshown = prodlefttoshow;
				$('showmore').insert({before:json});
				$('showmorethrobber').hide();
				$('showmoretext').show();
				$('showmore').removeClassName('showmoreloading');
			} 
			else 
			{ 
				prodsnotyetshown = Array();
				$('showmore').insert({before:json});
				$('showmore').remove();
			}
			
			$$('.totalcount').each(function(tcount) {
				showingnow = totalprodcount-prodsnotyetshown.length;
				$(tcount).update(showingnow);											
			});
		
		}
	});
	
}
function showMoreReviews(reviewstoshow,totalreviewcount){
	
	$('showmorethrobberreviews').show();
	$('showmoretextreviews').hide();
	$('showmorereviews').addClassName('showmoreloading');
	
	reviewslefttoshow = reviewstoshow.slice(20);
	reviewstoshow = reviewstoshow.slice(0,20);
	
	params = '';
	reviewstoshow.each(function(review){ params += '&reviewstoshow[]='+review; });

	new Ajax.Request('/misc_handler.php?getmorereviews=1', {
		parameters: params,			 
		onSuccess: function(transport){
			var json = transport.responseText.evalJSON();
			
			
			if (reviewslefttoshow.length) { 
			
				reviewsnotyetshown = reviewslefttoshow;
				$('showmorereviews').insert({before:json});
				$('showmorethrobberreviews').hide();
				$('showmoretextreviews').show();
				$('showmorereviews').removeClassName('showmoreloading');
			} 
			else 
			{ 
				reviewsnotyetshown = Array();
				$('showmorereviews').insert({before:json});
				$('showmorereviews').remove();
			}
			
			
		}
	});
	
}

function shownextfeedback() {
	new Ajax.Request('/misc_handler.php?getnextfeedback='+$('testimonals').readAttribute('rel'), {
		onSuccess: function(transport){
			var json = transport.responseText.evalJSON();
			showFeedback(json);
		}
	});
}

function showprevfeedback() {
	new Ajax.Request('/misc_handler.php?getprevfeedback='+$('testimonals').readAttribute('rel'), {		 
		onSuccess: function(transport){
			var json = transport.responseText.evalJSON();
			showFeedback(json);
		}
	});
}

function showFeedback(json){
	$('testim_date').update(json.date);
	
	$('testim_initials').update(json.initials);
	$('testimonals').writeAttribute('rel',json.id);
	
	comments = '<a id="tesimlink" href="testimonials.php#feedback_'+json.id+'">';
	if (json.comments.length> 228) { 
		comments += json.comments.substr(0,228)+' ... ';
	}
	else
	{
		comments += json.comments;
	}
	comments += '</a>';
	$('testim_comments').update(comments);
	$('tesimlink').href='testimonials.php#feedback_'+json.id;
}


function addReview(prodid,prodname){

	out = '<div class="oosemailform"><form id="reviewform"><h1>Add A Product Review</h1>';
	out += '<p>Would you like to share your opinion on the<br><span class="highlight">'+prodname+'</span>?</p>';
	
	out += '<table width=95% align=center style="text-align:left;margin: 0px 0px 0px 10px;">';
	out += '<tr><td><strong>Your Name:</strong>&nbsp;<br>&nbsp;<br></td><td><input id="rev_name" name="rev_name" type="text" style="width: 250px" >';
	
	out += '</td></tr><tr><td><strong>Your Email Address:</strong></td><td><input id="rev_email" name="rev_email" style="width: 250px" ><br>';
	out += '<span class="smallnote">(Your email address will not be shown)&nbsp;<br>&nbsp;<br></span>';
	out += '</td></tr><tr><td><strong>Your Rating:</strong><br>&nbsp;<br></td><td>';
	out += '<span class="highlight">1 - Poor&nbsp;&nbsp<input type=radio name="rating"  value=1 > ';
	out += '<input type=radio name="rating" value=2 > ';
	out += '<input type=radio name="rating" value=3 > ';
	out += '<input type=radio name="rating" value=4 > ';
	out += '<input type=radio name="rating" value=5 > 5 - Excellent</span>';
	
	
	out += '</td></tr><tr><td><strong>Your Review:</strong></td><td><textarea style="width: 300px; height: 80px;" id="rev_review" name="rev_review"></textarea>&nbsp;<br>&nbsp;<br>';
	out += '</td></tr><tr><td colspan=2 style="text-align:center">';
	out += '<input type="button" name="Submit Review" value="Submit Review" onClick="submitReview('+prodid+');return false;"></td></tr></table>';
	
 	out += '</div>';
	out += '<p style="margin-top:5px;font-size:0.85em;">(<a href="#" onClick="lb.deactivate();">cancel</a>)</p></form></div>';
	
	$('placeholder').update(out);
	scroll(0,0);
	showLB(500,355);
	
}

function submitReview(prodid){
	
	if ($F('rev_name').length < 3) { alert('Please provide your name.'); $('rev_name').focus(); return; }
	if ($F('rev_email').length < 3) { alert('Please provide your email address.');$('rev_email').focus();  return; }
	if ($F('rev_review').length < 3) { alert('Please fill in your review details.');$('rev_review').focus();  return; }
	if (! $RF('reviewform','rating')) { alert('Please select your rating of this product.');  return; }
	
	params = 'name='+encodeURIComponent($F('rev_name'));
	params += '&email='+encodeURIComponent($F('rev_email'));
	params += '&rating='+$RF('reviewform','rating');
	params += '&review='+encodeURIComponent($F('rev_review'));
	
	new Ajax.Request('/misc_handler.php?submitreview='+prodid, {	
		parameters: params,
		onSuccess: function(transport){
			var json = transport.responseText.evalJSON();
			alert("Thank you.\n\nYour review has been submitted and will be published shortly.");
			lb.deactivate();
		}
	});
	
}
function getOOSemail(prodid,prodname){
	out = '<div class="oosemailform"><h1>Temporarily out of stock</h1>';
	out += '<p>Would you like to be sent an email as soon as the<br><span class="highlight">'+prodname+'</span> is back in stock?</p>';
	out += '<p style="font-weight:bold">Simply enter your email address here:</p>';
	out += "<div><input id='email' autocomplete='on' placeHolder='your email address' name='email' style='width:150px; margin-right: 5px;'>";
  	out += '<input type="button" name="Email Me" value="Email Me" onClick="submitOOS('+prodid+');return false;"></div>';
	out += '<p style="margin-top:5px;font-size:0.85em;">(<a href="#" onClick="lb.deactivate();">cancel</a>)</p></div>';
	
	$('placeholder').update(out);
	scroll(0,0);
	showLB(420,170);
}

function submitOOS(prodid) {

	params = "email="+$F('email');
	params += '&id='+prodid;
	new Ajax.Request('/misc_handler.php?addoosemail=1', {
		parameters: params,			 
		onSuccess: function(transport){
			alert('Thank you!\n\nWe will automatically email the moment the product is back in stock.');
			lb.deactivate();
			}
		});
}
function basket_add_on() {
	
	
	$('placeholder').update($('basket_add_on').innerHTML);
	scroll(0,0);
	showLB(520,230);
		
}

function add_upsell() {
	 $('buy_tinn_add').value = $("additional_prodid0").value;
	 if ($('upsell_select_container')) { 
	  	$('buy_tinn_add_id').value = $('upsell_select_container').down('#additional_prod_select_0').value;
		$('buy_tinn_add_ref').value = $('upsell_select_container').down('#additional_prod_select_0').readAttribute('ref');
	 }
	 if ($('additional_prodid1')) { $('buy_tinn1_add').value = $("additional_prodid1").value; }
	 if ($('additional_prodid2')) { $('buy_tinn2_add').value = $("additional_prodid2").value; }
	 lb.deactivate();
	 $('thebasketform').submit();
	 
 }
 
 function dont_add_upsell() {
	 lb.deactivate();
	 $('thebasketform').submit();
 }
 
 function startCar() {
	 
	// only start the carousel once the ALL the document has finished loading AND the images have be pre-cached
	preloadimgs = new Array();
	car.each(function(pic){preloadimgs.push('/images/homepage/carousel/'+pic[1])});
	 
	Event.observe(window, 'load', function() { 
		Preloader.load(preloadimgs,function(){ showCar(); });
	});
											 
	
	 
 }
 
 function showImg(imgtoshow,snap){
	
	//console.log('goingtoshow',imgtoshow)
	// fade out current
	if (snap == 1) { $('car_'+current_car).hide(); } else { $('car_'+current_car).fade(); }
	$('car_number_'+current_car).removeClassName('car_selected');
	
	// fade in new
	if (snap == 1) { $('car_'+imgtoshow).show(); } else { $('car_'+imgtoshow).appear(); }
	$('car_number_'+imgtoshow).addClassName('car_selected');
	current_car = imgtoshow;
	
 }
 function showCar(){
	
	car.each(function(pic){
			// skip the first
			if ( pic[3]==1 ) { return; }
			
			// add the preloaded images to the dom
			var div = document.createElement("div");
			div.id = "car_"+pic[3];
			div.style.display = "none";
			div.className = "car_div";
		
			var a = document.createElement("a");
			a.href = pic[2];
			
			var img = document.createElement("img");
			img.src = '/images/homepage/carousel/'+pic[1];
			img.alt = pic[0];
			img.width=975;
			img.height=300;
			img.border=0;
			img.style.position = "absolute";
	
			a.appendChild(img);
			div.appendChild(a);		  
			$('home_car').appendChild(div);		  
	});
	
	Effect.SlideDown('home_car_controls');
	
	$$('.car_number').each(function(item) {
			Event.stopObserving(item,'mouseover');
			Event.observe(item,'mouseover',function(elem){
			imgtoshow = item.readAttribute('rel');
			imgtoshow++;imgtoshow--;
			showImg(imgtoshow,1);
			clearTimeout(cartime);
			});
			Event.stopObserving(item,'mouseout');
			Event.observe(item,'mouseout',function(elem){
			cartime = setTimeout('adv_to_next()',6000);
			//console.log(current_car,"erm",car);
			});
	});
	
	$$('.car_div').each(function(item) {
			Event.stopObserving(item,'mouseover');
			Event.observe(item,'mouseover',function(elem){
													//console.log('paused');
			clearTimeout(cartime);
			});
			Event.stopObserving(item,'mouseout');
			Event.observe(item,'mouseout',function(elem){
			cartime = setTimeout('adv_to_next()',6000);
															//	console.log('resumed');
			});
	});
	
	cartime = setTimeout('adv_to_next()',6000);

	
 }
 
 function adv_to_next(){
	//console.log('started',car);
	total = car.length;
	//console.log(current_car,total);
	if (current_car == total) { showImg(1,0); }  else { showImg(current_car+1,0);  }
	cartime = setTimeout('adv_to_next()',6000);
 }
 
 
 var Preloader = {
    load: function() {
        var args = $A(arguments);
        var callback = Object.isFunction(args.last()) ? args.pop() : Prototype.emptyFunction;
        var urls = Object.isArray(args[0]) ? $A(args[0]) : args;
        var loaded = 0;
        var images = $A();

        var onload = function() {
            if (++loaded == urls.length) {
                callback();

                // cleanup
                images.each(function(i) { delete i });
                images = callback = urls = null;
            }
        };

        urls.each(function(url) {
            var image = new Image();
            image.onload = image.onerror = onload;
            image.src = url;
            images.push(image);
        });
    }
};
