var loadScriptSync = function(scriptUrl) {
	var successflag=false;
	var params = {};
		params.async = false;
		params.type = "GET";
		params.url = scriptUrl;
		params.data = null;
		params.success = function() {
			successflag=true;
		};
		params.dataType = "script";
		params.cache = true;
	jQuery.ajax(params);
	return(successflag);
};

var randomString = function(length) {
	var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
	var randomString = "";
	for(x=0;x<length;x++) {
		var i = Math.floor(Math.random() * chars.length);
		randomString += chars.charAt(i);
	}
	return randomString;
};

var callIframe = function(url, callback) {
	var id = randomString(10);
	$(document.body).append("<iframe id=\""+id+"\" height=\"0\">");
	$("iframe#"+id).hide();
	$("iframe#"+id).attr("src", url);

	$("iframe#"+id).load(function(){
		callback(this);
	});
}

var formatNumber = function(number) {
	return $.formatNumber(number,{format:$("head").data("numberFormat"), locale:$("html").attr("lang")});
}

var formatAmount = function(number, currencySymbol) {
	return $.formatNumber(number,{format:$("head").data("amountFormat").replace("{currencySymbol}",currencySymbol), locale:$("html").attr("lang")});
}

$.fn.centerImage = function(square) {
	var src		= $(this).attr("src");
	var jsImage		= new Image();
	var domImage = $(this);

	var onloadFunction= function(){
		var
			imgW	= jsImage.width,
			imgH	= jsImage.height,
			ratio	= imgW/imgH
		;

		if (imgW > square || imgH > square) {
			if (ratio < 1) {
				// portrait
				domImage.width(square);
				imgH = imgH * square / imgW;
				domImage.css({ top: - Math.round((imgH - square)/2) });
			} else {
				// landscape
				domImage.height(square);
				imgW = imgW * square / imgH;
				domImage.css({ left: - Math.round((imgW - square)/2) });
			}
		} else {
			domImage.css({
				"margin-left": Math.round((square - imgW)/2) +"px",
				"margin-top": Math.round((square - imgH)/2) +"px"
			});
		}
		domImage.removeClass("hidden").hide().fadeIn("slow");
	};
	
	if($.browser.msie){
		function testImg(){
			if(jsImage.complete != null && jsImage.complete == true){ 
				onloadFunction();
				return;
			}
			setTimeout(testImg, 1000);
		}
		setTimeout(testImg, 1000);
	} else {
		jsImage.onload = onloadFunction;
	}
	jsImage.src = src;
}

function successPopup(jqueryDomElement,continueUrl) {
	var dialogElement = $("<div title=\""+jqueryDomElement.data("successMessageTitle")+"\">"+
													"<p>"+jqueryDomElement.data("successMessage")+"</p>"+
												"</div>");
	var dialogButtonConfiguration = {};
		dialogButtonConfiguration.text = jqueryDomElement.data("successMessageClose");
	if (continueUrl) {
		dialogButtonConfiguration.click = function() {
			$(this).dialog("close");
			document.location.href = continueUrl;
		};
	} else {
		dialogButtonConfiguration.click = function() {
			$(this).dialog("close");
		};
	}
	var dialogOptions = {};
		dialogOptions.width = 460;
		dialogOptions.modal = true;
		dialogOptions.draggable = false;
		dialogOptions.resizable = false;
		dialogOptions.stack = false;
		dialogOptions.dialogClass = "successPopup";
		dialogOptions.buttons = [dialogButtonConfiguration];
	dialogElement.dialog(dialogOptions);
}

function confirmPopup(jqueryDomElement, callback) {
	var dialogElement = $("<div title=\""+jqueryDomElement.data("confirmMessageTitle")+"\">"+
													"<p>"+jqueryDomElement.data("confirmMessage")+"</p>"+
												"</div>");
	var okButtonConfiguration = {};
		okButtonConfiguration.text = jqueryDomElement.data("confirmOk");
		okButtonConfiguration.click = function() {
			$(this).dialog("close");
			callback.call(jqueryDomElement);
		};
	var cancelButtonConfiguration = {};
		cancelButtonConfiguration.text = jqueryDomElement.data("confirmCancel");
		cancelButtonConfiguration.click = function() {
			$(this).dialog("close");
		};
	var dialogOptions = {};
		dialogOptions.width = 460;
		dialogOptions.modal = true;
		dialogOptions.draggable = false;
		dialogOptions.resizable = false;
		dialogOptions.stack = false;
		dialogOptions.dialogClass = "confirmPopup";
		dialogOptions.buttons = [okButtonConfiguration, cancelButtonConfiguration];
	dialogElement.dialog(dialogOptions);
	$(".confirmPopup .ui-dialog-buttonset button").not(".ok").not(".cancel").first().addClass("ok");
	$(".confirmPopup .ui-dialog-buttonset button").not(".ok").not(".cancel").addClass("cancel");
}

$.fn.ajaxVal = function(html) {
	var e = document.createElement('div');
	e.innerHTML = html;
	var unescapedContent = e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
	$(this).val(unescapedContent);
}

function HTMLEncode(string){
	string = string.replace(new RegExp("&","g"), "&amp;") ;
	string = string.replace(new RegExp("\"","g"), "&quot;") ;
	string = string.replace(new RegExp("<","g"), "&lt;") ;
	string = string.replace(new RegExp(">","g"), "&gt;") ;
	string = string.replace(new RegExp("'","g"), "&#39;") ;
	return string;
}

