/*
Created By: Joe Robertson
Website: http://www.robertsonandassociates.org.uk
Date: 25/02/2010

Part of the StarterTheme module
*/

var sliding = 0;

Event.observe(window, 'load', addObservers);
function addObservers() {
	if($('newsletter-subscribe-button'))
	$('newsletter-subscribe-button').observe('click', subscribeNewsletter);
	if($('newsletter-validate-detail'))
	$('newsletter-validate-detail').observe('submit', subscribeNewsletter);
	/*$$('#nav > li').each( function(elem) {
		$(elem).observe('mouseover', function(event) {
		elem.down('ul').style.display = 'none';
			if(sliding !== 1) {
				var effect = new Effect.BlindDown(elem.down('ul'), {afterFinish : function() { sliding = 0; } });
				sliding = 1;
				slidingelem = effect.element;
			}
			else {
				slidingelem.hide();
				var effect = new Effect.BlindDown(elem.down('ul'), {afterFinish : function() { sliding = 0; } });
				sliding = 1;
				slidingelem = effect.element;
			}
		});
		$(elem).observe('mouseout', function(event) {
			
		});
	}); */
}

  

function showBusy(button) {

	Effect.toggle(button, 'appear', {duration: 0});
	$(button).insert({ after: "<img id='" + $(button).id + '-ajax-busy' + "' src='" + ajaxSrc + "'>" });
	id = $(button).id + '-ajax-busy';
	return id;
	
}

function endBusy(button, ajaxBusy) {
	
	$(ajaxBusy).remove();
	Effect.toggle(button, 'appear', {duration: 0});
	
}

function displayMessage(id, message) {
	$(id).update(message);
	Effect.toggle(id, 'appear', {duration: 0});
	new Effect.Highlight(id);
	var fade = setTimeout("fadeOut('" + id + "')",2000);
}

function displayError(id, message) {
	$(id).update(message);
	Effect.toggle(id, 'appear', {duration: 0});
	new Effect.Highlight(id, {
		startcolor: "#FFA9A9"
	});
	var fade = setTimeout("fadeOut('" + id + "')",2000);
}

function fadeOut(id) {
	Effect.Fade(id);
	clearWindows();
}

function removeWishlist(id)
	{
		new Ajax.Request( baseUrl + 'startertheme/product/removeWishlist/' , {method:'get',
			parameters: { item: id },
			onCreate: function() {
				ajaxBusy = showBusy('remove-from-wishlist-' + id);
			},
			onComplete: function(request) { 
				var obj = eval('(' + request.responseText + ')');
				if(obj.result == 'success') {
					endBusy('remove-from-wishlist-' + id, ajaxBusy);
					$('sidebar-wishlist-block').replace(obj.wishlist);
					wishlistlinks = $$('.top-link-wishlist');
					for(i=0; i<wishlistlinks.length; i++) {
						wishlistlinks[i].update(obj.link);
					}v
				}
			}
	});
	}
	
function addToCartFromWishlist(id)
	{
		new Ajax.Request( baseUrl + 'startertheme/product/cart/' , {method:'get',
			parameters: { item: id },
			onCreate: function() {
				ajaxBusy = showBusy('add-from-wishlist-' + id);
			},
			onComplete: function(request) { 
				var obj = eval('(' + request.responseText + ')');
				if(obj.result == 'success') {
					endBusy('add-from-wishlist-' + id, ajaxBusy);
					$('sidebar-wishlist-block').replace(obj.wishlist);
					wishlistlinks = $$('.top-link-wishlist');
					for(i=0; i<wishlistlinks.length; i++) {
						wishlistlinks[i].update(obj.link);
					}
					$('cart-sidebar').replace(obj.cart);
					cartlinks = $$('.top-link-cart');
					for(i=0; i<cartlinks.length; i++) {
						cartlinks[i].update(obj.cartlink);
					}
				}
			}
	});
	}

function addToWishlist(id)
	{
		new Ajax.Request( baseUrl + 'startertheme/product/wishlist/' , {method:'get',
			parameters: { product: id },
			onCreate: function() {
				ajaxBusy = showBusy('add-to-wishlist-link-' + id);
			},
			onComplete: function(request) { 
				var obj = eval('(' + request.responseText + ')');
				if(obj.result == 'success') {
					endBusy('add-to-wishlist-link-' + id, ajaxBusy);
					if($('sidebar-wishlist-block')) {
						$('sidebar-wishlist-block').replace(obj.wishlist);
					}
					else {
						$('right-sidebar').insert({ top: obj.wishlist });
					}
					wishlistlinks = $$('.top-link-wishlist');
					for(i=0; i<wishlistlinks.length; i++) {
						wishlistlinks[i].update(obj.link);
					}
				}
				else if(obj.result == 'error') {
					endBusy('add-to-wishlist-link-' + id, ajaxBusy);
					displayError('product-add-ajax-result', obj.response);
				}
			}
	});
	}

function submitReview() {
	var dataForm = new VarienForm('review-form');
	if(dataForm.validator && dataForm.validator.validate()){
	$('review-form').action = baseUrl + 'startertheme/review/post/';
	$('review-form').request({
		onCreate: function() {
			ajaxBusy = showBusy('rating-submit-button');
		},
		onComplete: function(request) { 
			var obj = eval('(' + request.responseText + ')');
			if(obj.result == 'success') {
				var result = new Element('p',{
    				className: 'ajax-result',
    				style: 'display: none;',
    				id: 'review-ajax-result'
    			});
				$('review-form-container').replace(result);
				displayMessage('review-ajax-result', obj.response);
			}
			else if(obj.result == 'error') {
				var result = new Element('p',{
    				className: 'ajax-result',
    				style: 'display: none;',
    				id: 'review-ajax-result'
    			});
				$('review-form-container').replace(result);
				displayError('review-ajax-result', obj.response);
			}
			endBusy('rating-submit-button', ajaxBusy);
		}
	});
	}
}
function clearWindows() {
	$$('.window').each(function(window) {
		window.remove();
	});
}

function openRatingTip(id, button, rating, star) {
	if(rating) {
		var starobj = $(star).down(rating-1);
		var ajax_busy = new Element('img',{
    		src: ajaxSrc,
    		className: 'ajax-loader'
    	});
    	ajax_busy.id = button + '-ajax-busy';
		starobj.update(ajax_busy);
	}
	else {
	$(button).insert({ after: "<img id='" + button + '-ajax-busy' + "' src='" + ajaxSrc + "'>" });
	}
	var window_close = new Element('div',{  
        className: 'window_close'  
    });
    var window_header = new Element('div',{  
        className: 'window_header'  
    });  
    var window_title = new Element('div',{  
        className: 'window_title'  
    });
    
    clearWindows();
	var relative = new Control.Window($(button),{  
    	position: 'relative',
    	className: 'window',  
    	closeOnClick: window_close,
    	fade: false,
    	iframeshim: false,
    	offsetTop: 25,
    	offsetLeft: -100,
    	onRemoteContentLoaded: function(){  
            $(button + '-ajax-busy').remove();
        },
        afterClose: function() {
        	clearWindows();
        }
	});
	window_header.insert(window_title);  
    window_header.insert(window_close);
    window_title.update('Write Your Own Review');
	relative.container.insert(window_header);
	if(rating) {
		relative.href = baseUrl + 'startertheme/review/form/?id=' + id + '&askrating=' + rating;
	}
	else {
		relative.href = baseUrl + 'startertheme/review/form/?id=' + id;
	}
	relative.open();
}

function openLoginBox() {
	$('login-link').insert({ after: "<img id='" + 'login-ajax-busy' + "' src='" + ajaxSrc + "'>" });
	var window_close = new Element('div',{  
        className: 'window_close'  
    });
    var window_header = new Element('div',{  
        className: 'window_header'  
    });  
    var window_title = new Element('div',{  
        className: 'window_title'  
    });
    var window_content = new Element('div',{
    	className: 'window_content'
    });
    clearWindows();
    
	var login = new Control.Window($('login-link'),{  
    	position: 'relative',
    	className: 'window',  
    	closeOnClick: window_close,
    	fade: false,
    	iframeshim: false,
    	offsetTop: 25,
    	offsetLeft: -165,
    	insertRemoteContentAt: window_content,
    	onRemoteContentLoaded: function(){  
            $('login-ajax-busy').remove();
        },
        afterClose: function() {
        	clearWindows();
        }
	});
	window_header.insert(window_title);  
    window_header.insert(window_close);
    window_title.update('Login');
	login.container.insert(window_header);
	window_header.insert({ after: window_content });
	login.href = baseUrl + 'startertheme/customer/loginform';
	login.open();
}

function showOptionsTip(button, content) {
	var window_close = new Element('div',{  
        className: 'window_close'  
    });
    var window_header = new Element('div',{  
        className: 'window_header'  
    });  
    var window_title = new Element('div',{  
        className: 'window_title'  
    });
    var window_content = new Element('div',{
    	className: 'window_content'
    });
    clearWindows();
    
	var options = new Control.Window($(button),{  
    	position: 'relative',
    	className: 'window',  
    	closeOnClick: window_close,
    	fade: false,
    	iframeshim: false,
    	offsetTop: 5,
    	offsetLeft: 0,
        afterClose: function() {
        	clearWindows();
        }
	});
	window_header.insert(window_title);  
    window_header.insert(window_close);
    window_content.update(content);
    window_title.update('Select Options');
	options.container.insert(window_header);
	window_header.insert({ after: window_content });
	options.open();
}

function login() {
	var loginForm = new VarienForm('mini-login-form');
	$('mini-login-form').action = baseUrl + 'startertheme/customer/login';
	$('mini-login-form').request({
		onCreate: function() {
			ajaxBusy = showBusy($('mini-login-button'));
		},
		onComplete: function(request) { 
			var obj = eval('(' + request.responseText + ')');
			if(obj.result == 'success') {
				displayMessage('mini-login-ajax-result', obj.response);
				location.reload(true);
				endBusy('mini-login-button', ajaxBusy);
			}
			else if(obj.result == 'error') {
				displayError('mini-login-ajax-result', obj.response);
				endBusy('mini-login-button', ajaxBusy);
			}
		}
	});
}

function logout() {
	new Ajax.Request( baseUrl + 'startertheme/customer/logout' , {method:'get',
			onCreate: function() {
				$('logout-link').insert({ after: "<img id='" + 'logout-ajax-busy' + "' src='" + ajaxSrc + "'>" });
			},
			onComplete: function(request) { 
				var obj = eval('(' + request.responseText + ')');
				if(obj.result == 'success') {
					$('logout-ajax-busy').remove();
					location.reload(true);
				}
			}
	});
}

function addToCart() {
	var productAddToCartForm = new VarienForm('product_addtocart_form');
	if(productAddToCartForm.validator && productAddToCartForm.validator.validate()){
	$('product_addtocart_form').action = baseUrl + 'startertheme/cart/add/';
	$('product_addtocart_form').request({
		onCreate: function() {
			ajaxBusy = showBusy('add-to-cart-button');
		},
		onComplete: function(request) { 
			var obj = eval('(' + request.responseText + ')');
			if(obj.result == 'success') {
				$('cart-sidebar').replace(obj.cart);
				cartlinks = $$('.top-link-cart');
					for(i=0; i<cartlinks.length; i++) {
						cartlinks[i].update(obj.link);
					}
				endBusy('add-to-cart-button', ajaxBusy);
				clearWindows();
			}
			else if(obj.result == 'error') {
				displayError('add-to-cart-ajax-result', obj.response);
				endBusy('add-to-cart-button', ajaxBusy);
				clearWindows();
			}
		}
	});
	}
}

















