/****************************************************************************
THERE SHOULD BE NO REASON TO EDIT THIS FILE

ALL THE DATA IS PULLED FROM THE GIVE PAGE HTML ITSELF THIS JUST SORTS IT

FOLLOWING THE FORMAT FROM THE EXISITING PAGE WILL ALLOW YOU TO CHANGE 
ANYTHING YOU MAY WANT TO CHANGE

FOR EXAMPLE: TO CHANGE THE PRICE OF AN ITEM JUST CHANGE THE PRICE IN THE SPAN BOX
*******************************************************************************/

var generalDonationCount = 0;

	function addrec(gift, quantity) {
		string = $$('#'+gift+' div');
		if(string.length < quantity) {
		rap = new Element('div');
		recNo = string.length + 1;
		rap.set('html', '<label for="name['+gift+'][]" class="errorlabel">Recipient '+recNo+':</label> <input type="text" name="name['+gift+'][]" value="Enter Name" onfocus="if(this.value == \'Enter Name\'){this.value = \'\';}" /><br/><label for="email['+gift+'][]"> Send Ecard: </label><input type="text" onfocus="if(this.value == \'Enter Email Address\'){this.value = \'\';}" name="email['+gift+']['+string.length+']" value="Enter Email Address" id="ecardemail"/>&nbsp;(Optional)');
		rap.inject(gift);
		} else {
		alert("Sorry, but you have already sent this gift to everyone you can");
		}
	}
	
	function changeform(where) 
	{
	    var peopled = $$('#'+where+' input');
	    var err = false;
	    var f = document.getElementById('frmsemiform');
	    var lineNumber;
	    var radioValue;
	    var nameField;
	    var i;
	    var textReg = /^[\"+&\(\)a-zA-Z0-9\.,\'\- ]*$/;
	    var mailReg = /^[a-zA-Z0-9][a-zA-Z0-9\-\.'_]*@[a-zA-Z0-9][a-zA-Z0-9\-\.]*\.([a-zA-Z]{2,6})$/; 
	    var moneyReg = /^[0-9]*$/;

	    peopled.each(function(element) {
	        checkingd = element.get('value');
	        if(checkingd == "Enter Name"){checkingd = "";}
	        if(checkingd == "Enter Email Address"){checkingd = "";}
	        var tmpId = new String(element.get('id'));
	        var tmpName = new String(element.get('name'));
	        if (where == 'give-gifts') {
	            //Radio buttons not submitted if no option selected in FF and IE,
	            // so use ecardemail{id} field to control things
	            if ((tmpId.length > 9) && (tmpId.substr(0,10)=="ecardemail")) {
	                lineNumber = tmpId.substr(10);
                    radio = eval('f.cardType'+lineNumber);
                    radioValue = "";
                    for (i=0; i < radio.length; i++) {
                       if (radio[i].checked){
                          var radioValue = radio[i].value;
                       }
                    }
                    if (radioValue=="") {
                        err = true;
                    } else if (radioValue=="E-card") {
                        //checkingd is the email field, nameField is the name field
                        nameField = document.getElementById('ecardname'+lineNumber);
                        if (checkingd=="" || nameField.value=="" || nameField.value=="Enter Name") {
                            err = true;
                        } else if (!textReg.test(nameField.value)) {
                        	
                        //alert(nameField.value);
                            //err = "textFormat";
                        } else if (!mailReg.test(checkingd)) {
                            err = "email";
                        }
                    }
	            }
	        } else {
	            if(checkingd == "" && element.get('id') != 'email' && element.get('id') != 'address2' && element.get('id') != 'title' && element.get('id') != 'town' && element.get('id') != 'phone' && element.get('id') != 'additional_donation' && element.get('id') != 'whereDidYouHear' && element.get('id') != 'whereDidYouHearOther' && element.get('id') != 'postcode' && element.get('id') != 'mobile') {
    	            err = true;
    	        } 
    	        if (element.get('id') == "email") {
    	            if  ((checkingd != "") && !mailReg.test(checkingd)) {
    	                err = "email";
    	            }
        	    } else if  (element.get('id') == "additional_donation") {
        	        if ((checkingd != "") && !moneyReg.test(checkingd)) {
        	            err = "money";
        	        }
	            } else if ((checkingd != "") &&  (!textReg.test(checkingd))) {
	                //err = "textFormat";
	            }
	            //Make sure EITHER email or phone are filled
        	    if ((f.email.value=="") && (f.phone.value=="") && (f.mobile.value=="")) {
        	        err = true;
        	    }
	        }
	    });
	    
	    

	    //peopled doesn't get selects, so check these separately
	    if (where != "give-gifts") {
	        if ((f.county.value=="" && f.country.value=="Ireland") || f.country.value=="") {
	            err = true;
	        }
	    }
	    
	    if(err == false) {
	        if(where == 'give-gifts') {
	            $('give-gifts').setStyle('display', 'none'); 
	            $('give-contact').setStyle('display', 'inline');
	        } else {
	            $('frmsemiform').submit();
	        }
	    } else if (err == "email" ) {
	        alert("Please enter valid email addresses in email fields.");
	    } else if (err == "money" ) {
	        alert("Please enter a valid euro amount, without a decimal point, for your additional donation.");
	    } else if (err == "textFormat") {
	        alert("You have entered a field containing invalid characters. \nWe only accept letters, numbers and standard punctuation in text fields.");
	    } else {
	        alert("You have left an entry blank. \nAll required fields are highlighted in red.");
	    }
	}




function addtobasket(product) {

if(product == "generalDonation"){
	quantityfrm = 1; 
	giftname = $$('#'+product+' a strong');
	giftprice = $$("#generalDonationAmount");
	gifttotal = Number(quantityfrm*giftprice.get('value'));
	if (!(gifttotal > 0)) {
	    return;
	}
}else{
	selectd = $$('#'+product+' .quantity');
	quantityfrm = Number(selectd.get('value')); 
	giftname = $$('#'+product+' a strong');
	giftprice = $$('#'+product+' a span');
	gifttotal = Number(quantityfrm*giftprice.get('html'));
}






if((product == "generalDonation") || (!$('basket-'+product))) {

rap = new Element('div', { 'class': 'basket-row', 'id': 'basket-'+product});
gift = new Element('div', { 'class': 'basket-row-gift'});
quantity = new Element('div', { 'class': 'basket-row-quantity'});
quantityinput = new Element('input', { 'type': 'hidden', 'value': quantityfrm  });
amount = new Element('div', { 'class': 'basket-row-amount'});
total = new Element('div', { 'class': 'basket-row-total'});
clera = new Element('div', { 'class': 'clear' });


formnm = $('frmbasket');
if(product == "generalDonation"){
    frmname = new Element('input', { 'type': 'hidden', 'id': 'frm-'+product+generalDonationCount, 'name': product+product+generalDonationCount, 'value': giftname.get('html')+'---' +quantityfrm+'---'+giftprice.get('value')});
    generalDonationCount++;
} else {
    frmname = new Element('input', { 'type': 'hidden', 'id': 'frm-'+product, 'name': product, 'value': giftname.get('html')+'---' +quantityfrm+'---'+giftprice.get('html')});
}
frmname.inject(formnm);


gift.set('html', giftname[0].get('html'));
quantity.set('html', quantityfrm);
if(product == "generalDonation"){
    amount.set('html', giftprice.get('value'));
} else {
    amount.set('html', giftprice.get('html'));
}
total.set('html', gifttotal);

gift.inject(rap);
quantityinput.inject(rap);
quantity.inject(rap);
amount.inject(rap);
total.inject(rap);
clera.inject(rap);

itemd = '';
rap.inject('basket-cart');



} else {
	currentquantity = Number($$('#basket-'+product+' input').get('value'));
	newquantity = Number(Number(currentquantity)+Number(quantityfrm));
	if (product == "generalDonation") {
	   newtotal = (Number($$('#basket-'+product+' .basket-row-total').get('html')) + Number(giftprice.get('value')));
	} else {
	   newtotal = (Number(newquantity)*Number(giftprice.get('html')));
	}
	
	frm = $('frm-'+product).get('value');
	frms = frm.split('---');
	$('frm-'+product).set('value', frms[0]+'---'+newquantity+'---'+frms[2]);
	
	
	//quantityinput = new Element('input', { 'type': 'hidden', 'value': newquantity });	
	$$('#basket-'+product+' input').set('value', newquantity);
	$$('#basket-'+product+' .basket-row-quantity').set('html', newquantity);
	$$('#basket-'+product+' .basket-row-total').set('html', newtotal);
	
		
}





objectsize = $(product).getSize();
overlay = new Element('div', { align: 'center', id: product+'-overly', styles: { 'position': 'absolute', 'z-index': 4,  'height': objectsize.y, 'width':objectsize.x, 'background-color': '#FFFFFF'}});
imagd = new Element('img', { src: 'images/basketaddd.gif'});
overlay.setStyle('opacity', 0);
imagd.inject(overlay);
overlay.injectTop(product);
overlay.tween('opacity', 1);
var prodact = $(product+'-overly');

fx = function(product) {
	prodact.tween('opacity', 0);
}.delay(2000);


savecart();

update_price();
//reset to 1
selectd.set('value','1');

}


function update_price() {
	totals = $$(".basket-row-total");
	i=0;
	total = 0;
	lengt = totals.length-1;
	
	totals.each(function(element) {

		if(i!=0 && i!=lengt) {
			total = (Number(total)+Number(element.get('html')));
		}
		i++;
	});
	
	$$('#basket-total .basket-row-total span').set('html', total);
	
}

function clear_cart() {
	
		var myRequest = new Request({url: '/give-clear', method: 'post'}).send('clear=true');	
	
	
	$('basket-cart').set('html', '');
	$('frmbasket').set('html', '');
	update_price();
}






function makeoverlay(gift) {
	
	colorlayer = $(gift).getParent().get('id');
	
	windowsize = window.getSize();
	midx = (windowsize.x/2)-450;
	midy = (windowsize.y/2)-287;
	
	//THIS IS IMPORTANT TO KEEP THE OVERLAY ON THE SCREEN WHILE SOMEONE SCROLLS!
    rap = new Element('div', { id: 'fixme', styles: {'width': windowsize.x, 'height': windowsize.y}});
	//IF YOU REMOVE THIS IT WILL JUST CREATE A BLACK BOX THE SIZE OF THE SCREEN AND LEAVE IT AT THE TOP
	
	backgroundo = new Element('div', {'class': 'overlay', styles: {'width': windowsize.x, 'height': windowsize.y} });

	//Main coloured box and image
	box = new Element('div', {'class': 'overlay-box overlay-'+colorlayer, styles: { 'top': midy, 'left': midx}});
	gortaimg = new Element('img', { 'src': 'images/overlay-'+colorlayer+'.jpg', 'id': 'overlay-colorlogo' });
	innerrap = new Element('div', { 'styles' : { 'position': 'relative'}});
	
	//white box with image
	whitebox = new Element('div', {'class': 'overlay-text-box'});
	whiteimage = new Element('img', { 'src': 'images/'+gift+'.jpg', 'width': 450, 'height': 338, 'align': 'left'   });
	whitetext = new Element('div', { 'class': 'overlay-text-box-text' });
	
	//set text of box
	giftname = $$('#'+gift+' a');
	gifttitle = $$('#'+gift+' a strong').get('html');
	giftprice = $$('#'+gift+' a span').get('html');
	
	$$('body select').setStyle('visibility', 'hidden');
	$$('body #fixme select').setStyle('visibility', 'visible');
	
	whitetext.set('html', '<h1>'+giftname[0].get('html')+'</h1>'+$(gift+'-text').get('html'));
	
	//Header with title and close action
	titlebar = new Element('div', {'class': 'overlay-header', styles: {'opacity': 1, 'width': windowsize.x, 'top': 10, 'z-index': 99999} });
	titleStr = gifttitle+' &euro;'+giftprice;
	titleHtml = "<div class='inner'><table cellspacing='0' cellpadding='0' border='0'><tbody><tr><td id='caption' class='caption' width='40%'>"+titleStr+"</td><td id='middle' class='middle' width='20%'/><td class='close' width='40%'><a href='javascript:closelightbox()'><img src='http://www.gorta.org/assets/js/greybox/g_close.gif'/></a></td></tr></tbody></table></div>";
	titlebar.set('html', titleHtml);
	
	buttonbox = new Element('div', { 'class': 'overlay-text-box-buttons' });
	
	if (gift == "generalDonation") {
	   buttonbox.set('html', 'AMOUNT: <input type="text" class="quantity" id="quan" size="8" style="border:1px solid #3E5424;" /><a href="javascript:displayad(\''+gift+'\')"><img src="images/addtobasket.jpg" class="giftimg" border="0" /></a>&nbsp;<a href="javascript:closelightbox()"><img src="images/cancel.gif" class="giftimg" border="0" /></a>');
	} else {
	   buttonbox.set('html', 'QTY: <select class="quantity" id="quan"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option><option value="10">10</option></select><a href="javascript:displayad(\''+gift+'\')"><img src="images/addtobasket.jpg" class="giftimg" border="0" /></a>&nbsp;<a href="javascript:closelightbox()"><img src="images/cancel.gif" class="giftimg" border="0" /></a>');
	}
	
	whiteimage.inject(whitebox);
	whitetext.inject(whitebox);
	buttonbox.inject(whitebox);
	titlebar.inject(rap);
	
	whitebox.inject(innerrap);
	
	gortaimg.inject(box);
	innerrap.inject(box);
	box.setStyle('opacity', 0);
	backgroundo.setStyle('opacity', 0);
	
	box.inject(rap);
	backgroundo.injectTop(rap);
	
	rap.injectBottom(document.body);
	
	backgroundo.tween('opacity', 0.7);
	box.tween('opacity', 1);
}



function displayad(gift) {
	//Get quantity
	var doc = document.getElementById('quan');
	quantity = doc.value;
	closelightbox();
	//If quantity is not 0 add to basket
	if(quantity != 0){
	    if (gift == "generalDonation") {
	        giftprice = $$("#generalDonationAmount");
	        giftprice = giftprice.set('value', quantity);
	    } else {
    		selectd = $$('#'+gift+' .quantity');
    		quantityfrm = selectd.set('value', quantity); 
	    }
        addtobasket(gift);
	}
	

}

function closelightbox(){
	
	backo = $('fixme');

	backo.tween('opacity', 0);
	fx = function() {
		backo.destroy();
	}.delay(1000);
	$$('body select').setStyle('visibility', 'visible');
}

function checkout() {
	
	$('frmbasket').submit();
	
}


function savecart() {
	gifts = $$('.gift');
	frmdata = $('frmbasket').toQueryString();
	var myRequest = new Request({url: '/give-save', method: 'post', onComplete: function() {
																						 
	fx = function(product) {
		giftsd = $$('.gift');
		giftsd.each(function(product) { 
							 product.getFirst().tween('opacity', 0.0);
							 	$$('body select').setStyle('visibility', 'visible');
							 });
	}.delay(1000);	 
																						 }}).send(frmdata);	
	
	
	gifts.each(function(product) { 
	objectsize = $(product).getSize();
	topd = (objectsize.y/2)-30;
	bottomd = (objectsize.x/2)-15;
		$$('body select').setStyle('visibility', 'hidden');
	
	overlay = new Element('div', { align: 'center', id: product+'-overly', styles: { 'position': 'absolute', 'z-index': 4,  'height': objectsize.y, 'width':objectsize.x, 'background-color': '#FFFFFF'}});
	
	imagd = new Element('img', { src: 'images/loader.gif', styles: { 'position': 'absolute', 'top': topd, 'left': bottomd}});
	overlay.setStyle('opacity', 0);
	imagd.inject(overlay);
	overlay.injectTop(product);
	overlay.tween('opacity', 0.5);
	var prodact = $(product+'-overly');
	fx = function(product) {
		giftsd = $$('.gift');
		giftsd.each(function(product) { 
							 product.getFirst().tween('opacity', 0.0);
							 });
		prodact.tween('opacity', 0);
	}.delay(2000);
						});
	
	
	
}




window.addEvent('domready', function() {

	giftsimg = $$('.gift img');
	giftsimg.each(function(element) {
		if(!element.hasClass('giftimg')) {
			element.setStyle('cursor', 'pointer');
			element.addEvent('click', function(element) {
				gift = this.getParent().get('id');
				makeoverlay(gift);
			});
		}
	});
	


	giftsimg = $$('.gift a');
	giftsimg.each(function(element) {
		if(element.get('href') == "#") {
			element.setStyle('cursor', 'pointer');
			element.addEvent('click', function(element) {
				gift = this.getParent().get('id');
				makeoverlay(gift);
			});
		}
	});

	if($('basketclear')) {
	$('basketclear').addEvent('mouseover', function() {
									this.src = '/images/basketclear-ovr.gif';
													});
	$('basketclear').addEvent('mouseout', function() {
									this.src = '/images/basketclear.gif';
													});
	$('basketcheckout').addEvent('mouseout', function() {
									this.src = '/images/basketcheckout.gif';
													});
	$('basketcheckout').addEvent('mouseover', function() {
									this.src = '/images/basketcheckout-ovr.gif';
													});
	}
});

function helpoverlay() {
	
	colorlayer = 'dark';
	
	windowsize = window.getSize();
	midx = (windowsize.x/2)-450;
	midy = (windowsize.y/2)-287;
	
	//THIS IS IMPORTANT TO KEEP THE OVERLAY ON THE SCREEN WHILE SOMEONE SCROLLS!
    rap = new Element('div', { id: 'fixme', styles: {'width': windowsize.x, 'height': windowsize.y}});
	//IF YOU REMOVE THIS IT WILL JUST CREATE A BLACK BOX THE SIZE OF THE SCREEN AND LEAVE IT AT THE TOP
	
	backgroundo = new Element('div', {'class': 'overlay', styles: {'width': windowsize.x, 'height': windowsize.y} });

	//Main coloured box and image
	box = new Element('div', {'class': 'overlay-box overlay-'+colorlayer, styles: { 'top': midy, 'left': midx}});
	innerrap = new Element('div', { 'styles' : { 'position': 'relative'}});
	
	//white box with image
	whitebox = new Element('div', {'class': 'helpoverlay-text-box'});
	whitetext = new Element('div');
	
	$$('body select').setStyle('visibility', 'hidden');
	$$('body #fixme select').setStyle('visibility', 'visible');
	
	whitetext.set('html', '<div class="helpText"><h3>1. E-card</h3><p>Select this option if you would like an ecard to be sent immediately by email. You will be asked to enter the name and email of the recipient.</p></div><img src="/images/e-card.jpg" class="helpImage" /><hr /><div class="helpText"><h3>2. Gift Card</h3><p>Select this option if you would like a gift card in the post. We will send you a card that you can present to a friend, family member or work colleague with your own personal written message.</p></div><img src="/images/gift_card_front.jpg" class="helpImage" /><img src="/images/gift_card_inside.jpg" class="helpImage" /><hr /><div class="helpText"><h3 style="padding-top:0;">3. No Card</h3><p>Select this option if you would prefer not to receive any card.</p></div>');
	
	//Header with title and close action
	titlebar = new Element('div', {'class': 'overlay-header', styles: {'opacity': 1, 'width': windowsize.x, 'top': 10, 'z-index': 99999} });
	titleStr = 'Help on card choices';
	titleHtml = "<div class='inner'><table cellspacing='0' cellpadding='0' border='0'><tbody><tr><td id='caption' class='caption' width='40%'>"+titleStr+"</td><td id='middle' class='middle' width='20%'/><td class='close' width='40%'><a href='javascript:closelightbox()'><img src='http://www.gorta.org/assets/js/greybox/g_close.gif'/></a></td></tr></tbody></table></div>";
	titlebar.set('html', titleHtml);
	
	buttonbox = new Element('div', { 'class': 'overlay-text-box-buttons' });
	
	buttonbox.set('html', '<a href="javascript:closelightbox()"><img src="images/cancel.gif" class="giftimg" border="0" style="padding-left:380px;padding-top:20px" /></a>');
	
	whitetext.inject(whitebox);
	buttonbox.inject(whitebox);
	titlebar.inject(rap);
	
	whitebox.inject(innerrap);
	
	innerrap.inject(box);
	box.setStyle('opacity', 0);
	backgroundo.setStyle('opacity', 0);
	
	box.inject(rap);
	backgroundo.injectTop(rap);
	
	rap.injectBottom(document.body);
	
	backgroundo.tween('opacity', 0.7);
	box.tween('opacity', 1);
}