var tRollout = null;



function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }

    return vars;
}

function printIt(link,width,height) {
	var oProps = {};
	// SET DIMENSIONS
	oProps.width = width;
	oProps.height = height;
	// CENTER THE WINDOW
	oProps.screenx = oProps.left = ((screen.availWidth/2)-(oProps.width/2));
	oProps.screeny = oProps.top = ((screen.availHeight/2)-(oProps.height/2));
	// CONVERT THE PROPERTIES ARRAY INTO A STRING
	var strProps = '';
	for (var key in oProps) {
		if (oProps.hasOwnProperty(key)) {
			strProps += key + '=' + oProps[key] +',';
		}
	}
	// REMOVE THE LAST COMMA
	strProps = strProps.substring(0,strProps.length-1);
	var w = window.open("",link.target,strProps);
	if(w) { 
		w.document.write('<body style="width:100%;height:100%;margin:0;padding:0;" onload="window.focus(); window.print()"><a href="#" onclick="window.close(); return false"><img style="border:none;" title="click to close" src="'+link.href+'" /></a></body>');
		w.document.close();
		return false; // cancel link
	}
	return true;
}

function formDisable (e) {
	$(e).fadeTo(0,0.5).find('[name]').attr('disabled',true);
}
function formEnable (e) {
	$(e).fadeTo(0,1).find('[name]').attr('disabled',false);
}

function hideEventPopup() {
	$("#eventPopup").hide().offset({
		top:0,
		left:0
	});
	$('#eventCalendar .ui-datepicker .ui-state-active').removeClass('ui-state-active');
}

function hideEventPopupTimer() {
	tRollout = setTimeout(function(){
		hideEventPopup();
	},500);
}



function galleryWorks(parent) {
		
	$(parent).each(function(){

		var oParent = $(this),
			oHolder = $('.thumbnails .thumbHolder',oParent),
			oChildren = oHolder.children('.slab'),
			moving = false;

		oHolder.width(oChildren.eq(0).width()*oChildren.length);
		
		$(".controls .prev",oParent).hide(); // we never need the prev button on page load
		if (oChildren.length<=1) {	
			$(".controls .next",oParent).hide(); // if only 1 slab is available then we dont need the next button
		}

		$(".controls .next",oParent).click(function(){
			var obj1 = $(".thumbnails",oParent);
			var obj2 = $(".thumbnails .thumbHolder",oParent);
			var obj3 = $(".thumbnails .thumbHolder .slab",oParent);
			var wObj1 = obj1.width();
			var wObj2 = obj2.width();
			var wObj3 = obj3.width();
			var offset = function(){ return Math.round(obj1.offset().left) - Math.round(obj2.offset().left); };
			if ((wObj2-offset())>wObj1&&moving!==true) { 
				moving=true;
				if ((wObj2-offset()-wObj3)<=wObj1) {
					$(".controls .next",oParent).hide();
				}
				obj2.animate({ left:-(offset()+wObj3) }, 500, function(){
					moving=false;
				});
				$(".controls .prev",oParent).show();
			}
			return false;

		});
		
		$(".controls .prev",oParent).click(function(){
			var obj1 = $(".thumbnails",oParent);
			var obj2 = $(".thumbnails .thumbHolder",oParent);
			var obj3 = $(".thumbnails .thumbHolder .slab",oParent);
			var wObj1 = obj1.width();
			var wObj2 = obj2.width();
			var wObj3 = obj3.width();
			var offset = function(){ return Math.round(obj1.offset().left) - Math.round(obj2.offset().left); };
			if (offset()>0&&moving!==true) {
				moving=true;
				if ((offset()-wObj3)===0) {
					$(".controls .prev",oParent).hide();
				}
				obj2.animate({ left:-(offset()-wObj3) }, 500, function(){
					moving=false;
				});
				$(".controls .next",oParent).show();
			}
			return false;
		});

	});

}

$(window).load(function(){ // wait for everything to load because the dynamic font is messing with the height
	
	$('.navHolder > ul > .active > ul > .active','#navigation').each(function(){
		
		var parentHolder = $(this).parents('.navHolder');

		var posTop = $(this).offset().top - parentHolder.offset().top;
		

		var frag = document.createElement('div');
		$(frag).addClass('navShadow').css({ 'top':posTop });


		parentHolder.append(frag);
	
	});
	



});

$(document).ready(function(){

	// this is for google chrome who thinks its needs to mess with my css.
	// yes this is a hack and yes its ugly.
	/*
	if ($.browser.webkit) {
		$("form").attr('autocomplete','off');
	}
	*/

	

	galleryWorks('.gallery_lg');
	galleryWorks('.gallery_sm');


	formDisable('.checkout form .ccInfo');
	$(".checkout form [name='bPayType']").bind('change',function(){
		if ($(this).val()==3) {
			formEnable('.checkout form .ccInfo');
		} else {
			formDisable('.checkout form .ccInfo');
		}
	});

	if ($.isFunction($.fn.hint)===true) {
		$('form input[title!=""]').hint();
		$('form textarea[title!=""]').hint();
	}
	
	if ($.isFunction($.fn.colorbox)===true) {
		
		$('.gallery_lg .thumbnails .thumb a').colorbox({
		
			maxWidth: '95%',
			maxHeight: '95%',
			onComplete: function(){
				
				// hack hack hackity hack
				$("#colorbox #cboxContent #cboxCustom").remove(); // remove if already alive
				$("#colorbox #cboxContent").append('<div id="cboxCustom"><a onclick="$.fn.colorbox.close(); return false;" href="#">Close Window</a> | <a href="'+this.href+'">Download photograph</a> | <a target="printwin" onclick="return printIt(this,'+$("#cboxPhoto").width()+','+$("#cboxPhoto").height()+')" href="'+this.href+'">Print photograph</a></div>');

			}
		
		});
	}
	
	$('.gallery_sm').each(function(){
	
		$('.thumbnails',this).find('.thumb a').click(function(){
			
			var src = $(this).attr('href'),
				index = $(this).parent().index(),
				parent = $(this).parents('.gallery_sm');
			
			parent.find('.canvas img').attr('src',src);
			parent.find('.thumb').removeClass('active').eq(index).addClass('active');
			
			return false;

		}).eq(0).trigger('click'); // init: click first thumbnail 


	});
	
	
	/*
	$(".meetingRoomGalleryImage").each(function(){
	
		var src = $(this).parent().next().find('.thumb').eq(0).attr('href');
		$(this).attr('src',src);
	
	});
	*/

	if ($.isFunction($.fn.datepicker)===true) {
		
		

		$("#eventPopup").bind('mouseenter mouseleave',function(event){
			
			if (event.type == 'mouseenter') {
				clearTimeout(tRollout);
			} else if (event.type == 'mouseleave') {
				hideEventPopupTimer();
			}

		}).hide();


		$.ajax({
			url: "_customelements/_ajax/getCalendarDates.php", 
			dataType: "json",
			success: function(data){
				
				var calendarEvents = data;

				$("#eventCalendar").datepicker({

					dateFormat: 'dd/mm/yy',
					numberOfMonths: 2,
					dayNamesMin: ['S','M','T','W','Th','F','Sat'],
					firstDay: 1,
					prevText: 'PREVIOUS MONTH',
					nextText: 'NEXT MONTH',
					
					beforeShowDay: function(date){
						
						var formattedDate =  date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate();

						// loop over events and add popup event if needed
						for (var i in calendarEvents) {
							if (calendarEvents.hasOwnProperty(i)) {
								
								if (formattedDate == calendarEvents[i].strDate) {
									return [true,"ui-state-event",calendarEvents[i].event]; 
								}

							}
						}
						return [true]; //enable all other days
					}
					
				});

				hideEventPopup();
				
				$('#eventCalendar .ui-datepicker .ui-state-default').live('mouseenter',function(){
					
					var oState = $(this),
						oParent = oState.parents('#eventCalendar'),
						eventPopup = $("#eventPopup");

					if (oState.parent().hasClass('ui-state-event')===true) {
						
						clearTimeout(tRollout);
						
						//oState.trigger('click');

						oState.bind('mouseleave',function(){
							
							hideEventPopupTimer();
							$(this).unbind('mouseleave'); // should prevent memory leaks
						
						});
						
						/*
						var currDate = oParent.datepicker("getDate"),
							newDate = currDate.getFullYear()+'-'+(currDate.getMonth()+1)+'-'+oState.text();
						*/
						
						// this is such a hack
						var arrEventString = oState.parent().attr('onclick').toString().split(',');
						var eventMonth = parseFloat(arrEventString[1],10)+1;
						var eventYear = parseFloat(arrEventString[2],10);
						var eventDay = parseFloat(oState.text(),10);
						var newDate = eventYear+'-'+eventMonth+'-'+eventDay;

						var oStateOffset = oState.offset();
						
						eventPopup.addClass('loading');
						
						$(".overlay",eventPopup).empty();
						
						eventPopup.show().offset({ 
							top: oStateOffset.top - eventPopup.height(), 
							left: oStateOffset.left + oState.width()
						});

						$(".overlay",eventPopup).load("_customelements/_ajax/getCalendarPopupContent.php",{
						
							'strDate':newDate
						
						},function(e){

							eventPopup.removeClass('loading');
							
							$(".thumbnail",eventPopup).load(function(){
								
								eventPopup.offset({ 
									top: oStateOffset.top - eventPopup.height()
								});
								
							});

						});
						
						


					}
				});



			}
		});


	}


	$("#paymentForm").each(function(){
		this.reset();
	});
	
	if ($("#paymentForm :input[name='bAcceptTerms']").is(":not(:checked)")) {
		$("#paymentForm :submit").attr('disabled',true).addClass('disabled');
	}
	$("#paymentForm :input[name='bAcceptTerms']").bind('change',function(){
		if ($(this).is(":checked")) {
			$("#paymentForm :submit").attr('disabled',false).removeClass('disabled');
		} else {
			$("#paymentForm :submit").attr('disabled',true).addClass('disabled');
		}
	});
	
	if ($("#paymentForm :input[name='bPayType']:checked").val()!='3') {
		$("#paymentForm .ccInfo").hide();
	}
	$("#paymentForm :input[name='bPayType']").bind('change',function(){
		if ($(this).val()=='3') {
			$("#paymentForm .ccInfo").slideDown(500);
		} else {
			$("#paymentForm .ccInfo").slideUp(500);
		}
	});


	// another fix for you know who
	$("div#banner div.txtBar ul li").hover(function(){
		$(this).addClass('ie6hover');
	},function(){
		$(this).removeClass('ie6hover');
	});
	

	$(".cartDisplay :input[name='quantity']").bind('keyup',function(){
		
		this.value = this.value.replace(/[^0-9\.]/g,'');
		if (this.value) {

			$("#paymentItems").addClass("loading");

			$.post("_customelements/_ajax/updateQuantity.php",{
			
				'nCartID':$(this).attr('nCartID'),
				'nQuantity':this.value
			
			},function(){
				
				$("table tbody","#paymentItems").load("_customelements/_ajax/getPaymentTableItems.php",function(e){

					$("#paymentItems").removeClass("loading");

				});
			});
		}
	
	}).trigger('keyup');


	$(".overlayBG").bind('click',function(){
	
		$(this).hide();
		$("#storeWindow",this).removeClass('loading');
		return false;
	
	});

	$("#storeWindow").bind('click',function(){
		return false; // stop bubble
	});

	$("[rel='storeDetailsWindow']",".item").bind('click',function(){
			
		$currColor = "";
		$currColorID = 0;
		$nStoreitemsID = $(this).attr('nStoreitemsID');
		$currCost = $(this).attr('nCost').replace(/[^0-9\.]/g,'');

		$("#storeWindow").addClass('loading').parent().show();
		
		$("#storeWindow").load("_customelements/_ajax/getStoreItemDetails.php",{
			
			'nStoreitemsID':$nStoreitemsID
		
		},function(e){
			
			var oParent = $(this);

			oParent.removeClass('loading').css({
				'marginTop':-oParent.height()/2
			});
			
			// CLOSE WINDOW
			$(":input.close",oParent).bind('click',function(){
	
				oParent.removeClass('loading').parent().hide();
				return false;
			
			});
			
			// CHANGE COLOR
			$(".colorBoxes a",oParent).bind('click',function(){ 
				
				$(".colorBoxes a",oParent).removeClass('active');
				$(this).addClass('active');
				$currColor = $(this).find('span').text();
				$currColorID = $(this).find('span').attr('nColorID');
			
			}).eq(0).trigger('click');
			
			// CHANGE QUANTITY
			$(":input[name='quantity']",oParent).bind('keyup',function(){
		
				this.value = this.value.replace(/[^0-9\.]/g,'');
				$currQuantity = this.value;
				var total = 0;
				if ($currQuantity) {
					total = ($currCost * $currQuantity).toFixed(2);
				}
				$(".currCost",oParent).text('$'+addCommas(total));
				$(".currColor",oParent).text($currColor.toUpperCase());
			
			}).trigger('keyup');
			
			// ADD TO CART MANAGER
			$(":input[name='addToCart']",oParent).bind('click',function(){
				
				var url = 'http://' + window.location.host + '/_customelements/_actions/addToCart.php' +
					'?nStoreitemsID=' + $nStoreitemsID + 
					'&nRefererID=' + getUrlVars()['id'];
				
				if ($currQuantity) {
					url += '&nQuantity=' + $currQuantity;
				}

				if ($currColorID) {
					url += '&nColoroptionsID=' + $currColorID;
				}

				var itemSize = $(":input[name='itemSizes']",oParent).val();
				if (itemSize) {
					url += '&nSizeID=' + itemSize;
				}
									
				window.location = url;

			});
		
		});
		return false;

	});


	$("#emailPhotoGroup").click(function(){
	
		
		$.fn.colorbox.remove();

		$(".gallery_lg","#content").each(function(){
			
			var msg = '<p class="float-R">Check off the photos below you wish to send.</p>';
			var sendForm = $('<form id="sendEmailGroup" class="clear-R" name="sendEmailGroup" action="_customelements/_actions/sendPhotoGroup.php"><label><span>Your Email:</span> <input type="text" name="strFromEmail" /></label><label><span>Send to Email:</span> <input type="text" name="strToEmail" /></label><label><span>Quick Message:</span> <textarea name="strMessage"></textarea></label><span class="submit"><input type="submit" value="Send Photo Group" /></span><br/></form>').bind('submit',function(){
	
				//$(this).replaceWith('<img src="themes/rcabc/images/thinking.gif" />');
				
				var arrPhotos = "";

				$(":input","form[name='formPhotoCheckers']").each(function(i){
					if (this.checked === true) {
						var name = $(this).attr('name').split("_");
						arrPhotos += "&arrPhotos[" + i + "]=" + name[1];
					}
				});
				
				window.location = $(this).attr("action") + "?" + $(this).serialize() + arrPhotos;
				
				
				return false;

			}).hide();	
			var container = $('<div class="float-R marginR-20">').append(msg,sendForm);
			var clearfix = $('<div class="clearfix">');
			

			$(this).before(container,clearfix).addClass("emailPhotoGroup");

		});

		return false;

	});

	

	$("form[name='formPhotoCheckers']").each(function(){
		
		this.reset();

		var parentForm = $(this);
		var checkboxes = parentForm.find(':input');

		checkboxes.bind('change',function(){
			
			var total = 0;
			checkboxes.each(function(){
				if (this.checked === true) {
					total += 1;
				}
			});
		
			if (total>0) {
				$("form[name='sendEmailGroup']").show();
			} else {
				$("form[name='sendEmailGroup']").hide();
			}


		
		});
	
	});



	
	


});
