/* English/UK initialisation for the jQuery UI date picker plugin. */
/* Written by Stuart. */
jQuery(function($){
	if ($.datepicker) {
	  $.datepicker.regional['en-GB'] = {
		closeText: 'Done',
		prevText: 'Prev',
		nextText: 'Next',
		currentText: 'Today',
		monthNames: ['January','February','March','April','May','June',
		'July','August','September','October','November','December'],
		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
		'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
		weekHeader: 'Wk',
		dateFormat: 'dd/mm/yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	  $.datepicker.setDefaults($.datepicker.regional['en-GB']);
	}
});

jQuery.fn.sortElements = (function(){
 
    var sort = [].sort;
 
    return function(comparator, getSortable) {
 
        getSortable = getSortable || function(){return this;};
 
        var placements = this.map(function(){
 
            var sortElement = getSortable.call(this),
                parentNode = sortElement.parentNode,
 
                // Since the element itself will change position, we have
                // to have some way of storing its original position in
                // the DOM. The easiest way is to have a 'flag' node:
                nextSibling = parentNode.insertBefore(
                    document.createTextNode(''),
                    sortElement.nextSibling
                );
 
            return function() {
 
                if (parentNode === this) {
                    throw new Error(
                        "You can't sort elements if any one is a descendant of another."
                    );
                }
 
                // Insert before flag:
                parentNode.insertBefore(this, nextSibling);
                // Remove flag:
                parentNode.removeChild(nextSibling);
 
            };
 
        });
 
        return sort.call(this, comparator).each(function(i){
            placements[i].call(getSortable.call(this));
        });
 
    };
 
})();

function CheckUsername(field) {

	$.ajax({
	  url: 		"/ajax/checkusername.php",
	  type: 	"POST",
	  dataType:	"json",
	  data: 	"username=" + field.value + "&uid=" + $('#uid').val(),
	  success: 	function(response) {
 	  		
	  	  		if (response.message) {
	  	  			message = GetFormMessage(response.success, response.message);
	  	  			$('#username-message').html(message);
	  	  		} else {
	  	  			$('#username-message').html("");
	  	  		}
	  	  		
	  	  		if (response.success == "Y") {
	  	  			$('#username-message').removeClass('formerror');
	  	  			$('#username-message').addClass('formsuccess');	  			
	  	  		} else if (response.success == "N") {
	  	  			$('#username-message').removeClass('formsuccess');
	  	  			$('#username-message').addClass('formerror');
	  	  		} else {
	  	  			$('#username-message').removeClass('formsuccess');
	  	  			$('#username-message').removeClass('formerror');	  	  			
	  	  		}
	  		}
	});	
}

function CheckPassword(field) {
	$.ajax({
	  url: 		"/ajax/checkpassword.php",
	  type: 	"POST",
	  dataType:	"json",
	  data: 	"password=" + field.value,
	  success: 	function(response) {
	  	  
	  	  		if (response.message) {
	  	  			message = GetFormMessage(response.success, response.message);
	  	  			$('#password-message').html(message);
	  	  		} else {
	  	  			$('#password-message').html("");
	  	  		}
	  	  		
	  	  		if (response.success == "Y") {
	  	  			$('#password-message').removeClass('formerror');
	  	  			$('#password-message').addClass('formsuccess');	  			
	  	  		} else if (response.success == "N") {
	  	  			$('#password-message').removeClass('formsuccess');
	  	  			$('#password-message').addClass('formerror');
	  	  		} else {
	  	  			$('#password-message').removeClass('formsuccess');
	  	  			$('#password-message').removeClass('formerror');	  	  			
	  	  		}	  	  		
	  		}
	});	
}

function MatchPassword(field) {
	$.ajax({
	  url: 		"/ajax/matchpassword.php",
	  type: 	"POST",
	  dataType:	"json",
	  data: 	"password1=" + $('#password').val() + "&password2=" + field.value,
	  success: 	function(response) {
	  	  
	  	  		if (response.message) {
	  	  			message = GetFormMessage(response.success, response.message);
	  	  			$('#matchpassword-message').html(message);
	  	  		} else {
	  	  			$('#matchpassword-message').html("");
	  	  		}
	  	  		
	  	  		if (response.success == "Y") {
	  	  			$('#matchpassword-message').removeClass('formerror');
	  	  			$('#matchpassword-message').addClass('formsuccess');	  			
	  	  		} else if (response.success == "N") {
	  	  			$('#matchpassword-message').removeClass('formsuccess');
	  	  			$('#matchpassword-message').addClass('formerror');
	  	  		} else {
	  	  			$('#matchpassword-message').removeClass('formsuccess');
	  	  			$('#matchpassword-message').removeClass('formerror');	  	  			
	  	  		}
	  		}
	});	
}

function CheckEmailAddress(field) {
	$.ajax({
	  url: 		"/ajax/checkemail.php",
	  type: 	"POST",
	  dataType:	"json",
	  data: 	"email=" + field.value,
	  success: 	function(response) {  	  	  	  	  	  		
 	  		
	  	  		if (response.message) {
	  	  			message = GetFormMessage(response.success, response.message);
	  	  			$('#email-message').html(message);
	  	  		} else {
	  	  			$('#email-message').html("");
	  	  		}
	  	  		
	  	  		if (response.success == "Y") {
	  	  			$('#email-message').removeClass('formerror');
	  	  			$('#email-message').addClass('formsuccess');	  			
	  	  		} else if (response.success == "N") {
	  	  			$('#email-message').removeClass('formsuccess');
	  	  			$('#email-message').addClass('formerror');
	  	  		} else {
	  	  			$('#email-message').removeClass('formsuccess');
	  	  			$('#email-message').removeClass('formerror');	  	  			
	  	  		}
	  		}
	});	
}

function CheckFriendlyPath(field) {
	
	
	$.ajax({
	  url: 		"/ajax/checkfriendlypath.php",
	  type: 	"POST",
	  dataType:	"json",
	  data: 	"friendlypath=" + field.value,
	  success: 	function(response) {  	  		
	  	  		if (response.message) {
	  	  			message = GetFormMessage(response.success, response.message);
	  	  			$('#friendlypath-message').html(message);
	  	  		} else {
	  	  			$('#friendlypath-message').html("");
	  	  		}
	  	  		
	  	  		if (response.success == "Y") {
	  	  			$('#friendlypath-message').removeClass('formerror');
	  	  			$('#friendlypath-message').addClass('formsuccess');	  			
	  	  		} else if (response.success == "N") {
	  	  			$('#friendlypath-message').removeClass('formsuccess');
	  	  			$('#friendlypath-message').addClass('formerror');
	  	  		} else {
	  	  			$('#friendlypath-message').removeClass('formsuccess');
	  	  			$('#friendlypath-message').removeClass('formerror');	  	  			
	  	  		}
	  		}
	});	
}

function GenerateBlogPath(string, fieldid) {
	if ($('#' + fieldid)) {
		var currentvalue = $('#' + fieldid).val();
		if (currentvalue == "") {
			$.ajax({
			  url: 		"/ajax/generateblogpath.php",
			  type: 	"POST",
			  dataType:	"json",
			  data: 	"string=" + string,
			  success: 	function(response) {
						if (response.success == "Y") {
							$('#' + fieldid).val(response.blogpath);	  			
						}
					}
			});
		}
	}
}

function GenerateProductPath(string, fieldid) {
	if ($('#' + fieldid)) {
		var currentvalue = $('#' + fieldid).val();
		if (currentvalue == "") {
			$.ajax({
			  url: 		"/ajax/generateproductpath.php",
			  type: 	"POST",
			  dataType:	"json",
			  data: 	"string=" + string,
			  success: 	function(response) {
						if (response.success == "Y") {
							$('#' + fieldid).val(response.productpath);	  			
						}
					}
			});
		}
	}
}

function GeneratePagePath(string, fieldid) {
	if ($('#' + fieldid)) {
		var currentvalue = $('#' + fieldid).val();
		if (currentvalue == "") {
			$.ajax({
			  url: 		"/ajax/generatepagepath.php",
			  type: 	"POST",
			  dataType:	"json",
			  data: 	"string=" + string,
			  success: 	function(response) {
						if (response.success == "Y") {
							$('#' + fieldid).val(response.pagepath);	  			
						}
					}
			});
		}
	}
}

function CheckBlogPath(field) {
	
	$.ajax({
	  url: 		"/ajax/checkblogpath.php",
	  type: 	"POST",
	  dataType:	"json",
	  data: 	"friendlypath=" + field.value + "&pid=" + $('#pid').val(),
	  success: 	function(response) {  	  		
	  	  		if (response.message) {
	  	  			message = GetFormMessage(response.success, response.message);
	  	  			$('#friendlypath-message').html(message);
	  	  		} else {
	  	  			$('#friendlypath-message').html("");
	  	  		}
	  	  		
	  	  		if (response.success == "Y") {
	  	  			$('#friendlypath-message').removeClass('formerror');
	  	  			$('#friendlypath-message').addClass('formsuccess');	  			
	  	  		} else if (response.success == "N") {
	  	  			$('#friendlypath-message').removeClass('formsuccess');
	  	  			$('#friendlypath-message').addClass('formerror');
	  	  		} else {
	  	  			$('#friendlypath-message').removeClass('formsuccess');
	  	  			$('#friendlypath-message').removeClass('formerror');	  	  			
	  	  		}
	  		}
	});	
}

function GenerateNewsletterPath(string, fieldid) {
	if ($('#' + fieldid)) {
		var currentvalue = $('#' + fieldid).val();
		if (currentvalue == "") {
			$.ajax({
			  url: 		"/ajax/generatenewsletterpath.php",
			  type: 	"POST",
			  dataType:	"json",
			  data: 	"string=" + string,
			  success: 	function(response) {
						if (response.success == "Y") {
							$('#' + fieldid).val(response.newsletterpath);	  			
						}
					}
			});
		}
	}
}

function CheckNewsletterPath(field) {
	
	$.ajax({
	  url: 		"/ajax/checknewsletterpath.php",
	  type: 	"POST",
	  dataType:	"json",
	  data: 	"friendlypath=" + field.value + "&pid=" + $('#pid').val(),
	  success: 	function(response) {  	  		
	  	  		if (response.message) {
	  	  			message = GetFormMessage(response.success, response.message);
	  	  			$('#friendlypath-message').html(message);
	  	  		} else {
	  	  			$('#friendlypath-message').html("");
	  	  		}
	  	  		
	  	  		if (response.success == "Y") {
	  	  			$('#friendlypath-message').removeClass('formerror');
	  	  			$('#friendlypath-message').addClass('formsuccess');	  			
	  	  		} else if (response.success == "N") {
	  	  			$('#friendlypath-message').removeClass('formsuccess');
	  	  			$('#friendlypath-message').addClass('formerror');
	  	  		} else {
	  	  			$('#friendlypath-message').removeClass('formsuccess');
	  	  			$('#friendlypath-message').removeClass('formerror');	  	  			
	  	  		}
	  		}
	});	
}

function GetFormMessage(success, text) {

	if (success == "Y") {
		icon = '/files/icons/tick-icon.png';
	} else {
		icon = '/files/icons/delete-icon.png';
	}
	
	return text + ' <img src="' + icon + '">';
}

function ChangePageOrder(event, ui) {
	
	$('#savereminder').fadeIn();
	order = [];
	$('#sortable').children('li').each(function(index, item) { order.push(item.id) } );

	$('#pageorder').val(order.join(":"));
}

function ChangeColumn1Order(event, ui) {
	
	$('#savereminder').fadeIn();
	order = [];
	$('#column1').children('li').each(function(index, item) { order.push(item.id) } );

	$('#col1order').val(order.join(":"));
}

function ChangeColumn2Order(event, ui) {
	
	$('#savereminder').fadeIn();
	order = [];
	$('#column2').children('li').each(function(index, item) { order.push(item.id) } );

	$('#col2order').val(order.join(":"));
}

function ReturnSelectedFile(funcnum, parent) {
	var fileurl = $("#" + parent).attr("src");
	
	window.opener.CKEDITOR.tools.callFunction(funcnum, fileurl);
	window.close();
}

function SetCropValues(img, selection) {
	
	$("#crop-x1").val(selection.x1);  
	$("#crop-y1").val(selection.y1);  
	$("#crop-x2").val(selection.x2);  
	$("#crop-y2").val(selection.y2);  
	$("#crop-width").val(selection.width);  
	$("#crop-height").val(selection.height);
}

function ShowCropSelectionSize(img, selection) {
	
	var width 	= (selection.width > 0 ? selection.width : 0);
	var height	= (selection.height > 0 ? selection.height : 0);
	
	$('#cropselection-width').text(width);
	$('#cropselection-height').text(height);
}
	
function SetRatioSize(originalsize, currentsize, changesize, changefield) {
	
	if ($('#aspectratio').attr('checked') == true && currentsize != "") {
	
		var was = parseInt(originalsize);
		var now = parseInt(currentsize);
		
		var percentage = (now / was) * 100;
		
		if ($('#' + changefield).val()) {
			
			var destfield 	= $('#' + changefield);
			var destsize 	= parseInt(changesize);
			var newsize	= (destsize / 100) * percentage; 
			
			destfield.val(parseInt(newsize));
		}
	}
	
	return;
}

function Redirect(url) {
	window.location = url;	
}

function ChangeTab(CurrentTab, AvailableTabs) {

	if (CurrentTab && AvailableTabs.length > 0) {

		for (i = 0; i < AvailableTabs.length; i++) {
		
			var tab = AvailableTabs[i];
			if (CurrentTab == tab) {
				if ($('#' + tab + '-content') && $('#' + tab + '-tab')) {
	  	  			$('#' + tab + '-content').removeClass('hidden');
	  	  			$('#' + tab + '-tab').addClass('tabon');
	  	  			$('#' + tab + '-tab').removeClass('taboff');
				}

			} else {
				if ($('#' + tab + '-content') && $('#' + tab + '-tab')) {
					$('#' + tab + '-content').addClass('hidden');
					$('#' + tab + '-tab').removeClass('tabon');
					$('#' + tab + '-tab').addClass('taboff');
				}
			}
		}
	}

	return;
}

function CopyToClipboard(text) {
	
	if (window.clipboardData) {  
		window.clipboardData.setData('text',text);  
	} else {
		alert("Sorry, this feature is only available in Internet Explorer");  
	}
} 

function GetImageInfo(imageid, callback) {

	var imageinfo = {};
	
	$.ajax({
	  url: 		"/ajax/getimageinfo.php",
	  type: 	"POST",
	  dataType:	"json",
	  data: 	"imageid=" + imageid,
	  success: 	function(response) { 		
	  	  		if (response.success == "Y") {
	  	  			callback(response);	  			
	  	  		}
	  		}
	});
	
	
	return imageinfo;
}

function ShowImagePreview(imageid) {
	if ($('#imagepreview')) {
		$('#imagepreview').attr('src', '/files/icons/no_image.gif');
		var imageinfo = GetImageInfo(imageid, function(imageinfo) {
			$('#imagepreview').attr('src', imageinfo.smallimagepath);				
		});
	}
}

function setfieldtext(id, defaulttext) {
    if (jQuery("#" + id).val() == defaulttext) {
	    jQuery("#" + id).val('');
    } else if (jQuery("#" + id).val() == "") {
	    jQuery("#" + id).val(defaulttext);
    }
}

function UpdateEventPrice(field) {

  (function($) {
	$.ajax({
	  url: 		"/ajax/calculateeventprice.php",
	  type: 	"POST",
	  dataType:	"json",
	  data: 	"eventid=" + $('#eventid').val() + "&quantity=" + $('#quantity').val() + "&vouchercode=" + $('#vouchercode').val(),
	  success: 	function(response) {	
	  	  		if (response.success == "Y") {
	  	  			$('#final-grossprice').html(response.grossprice);	  	  		}
	  		}
	});
  })(jQuery);	
}

function UpdateBasketPrice(field) {

  (function($) {
	$.ajax({
	  url: 		"/ajax/calculatebasketprice.php",
	  type: 	"POST",
	  dataType:	"json",
	  data: 	"vouchercode=" + $('#vouchercode').val(),
	  success: 	function(response) {	
	  	  		if (response.success == "Y") {
	  	  			$('.shop-basket-totalprice').html(response.grossprice);
	  	  			$('.shop-basket-discountprice').html(response.discountprice);
	  	  		}
	  		}
	});
  })(jQuery);	
}

function setCookie(name, value, daysvalid) {
	
	var dateexpires = new Date();
	dateexpires.setDate(dateexpires.getDate() + daysvalid);
	
	var cookie = escape(value) + ((daysvalid == null) ? "" : "; path=/; expires="+ dateexpires.toUTCString());
	document.cookie = name + "=" + cookie;

}

function getCookie(name) {
	
	var i, x, y; 
	var cookies = document.cookie.split(";");
	
	for (i = 0; i < cookies.length; i++) {
		x = cookies[i].substr(0, cookies[i].indexOf("="));
		y = cookies[i].substr(cookies[i].indexOf("=") + 1);
		x = x.replace(/^\s+|\s+$/g,"");
		if (x == name) {
			return unescape(y);
		}
	}
}

function oc(a) {
	
	var o = {};
  
	for(var i=0;i<a.length;i++) {
		o[a[i]] = '';
	}
  
	return o;
}

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;
}

