/*

	Function which applies appropriate focus styles to text input fields where desired as this is not supported by 
	IE. The same process is mirrored for password input fields for consistency. The styling of the elements is 
	controlled using classes 'focusField' and 'idleField' in 'template_css.css' respectively.
	
*/
$(document).ready(function() {
$('input[type="text"]').addClass("idleField");
$('input[type="text"]').focus(function() {
	$(this).removeClass("idleField").addClass("focusField");
    if (this.value == this.defaultValue){
        
    }
    if(this.value != this.defaultValue){
	    this.select();
    }
});
$('input[type="text"]').blur(function() {
	$(this).removeClass("focusField").addClass("idleField");
});
});

$(document).ready(function() {
$('input[type="password"]').addClass("idleField");
$('input[type="password"]').focus(function() {
	$(this).removeClass("idleField").addClass("focusField");
    if (this.value == this.defaultValue){
        this.value = '';
    }
    if(this.value != this.defaultValue){
	    this.select();
    }
});
$('input[type="password"]').blur(function() {
	$(this).removeClass("focusField").addClass("idleField");
});
});

/*

	Function which renders transparent PNG images correctly in IE 6 and below, where they are not supported.
	The function is called in the 'index.php' of the template using the following code snippet:
	
	<!--[if lt IE 7]>
		<script type="text/javascript"> 
			$(document).ready(function(){ 
			$(document).pngFix(); 
			}); 
		</script> 
	<![endif]-->

*/

(function($) {

jQuery.fn.pngFix = function(settings) {

	// Settings
	settings = jQuery.extend({
		blankgif: 'blank.gif'
	}, settings);

	var ie55 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 5.5") != -1);
	var ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);

	if (jQuery.browser.msie && (ie55 || ie6)) {

		// fix images with png-source
		jQuery(this).find("img[src$=.png]").each(function() {

			jQuery(this).attr('width',jQuery(this).width());
			jQuery(this).attr('height',jQuery(this).height());

			var prevStyle = '';
			var strNewHTML = '';
			var imgId = (jQuery(this).attr('id')) ? 'id="' + jQuery(this).attr('id') + '" ' : '';
			var imgClass = (jQuery(this).attr('class')) ? 'class="' + jQuery(this).attr('class') + '" ' : '';
			var imgTitle = (jQuery(this).attr('title')) ? 'title="' + jQuery(this).attr('title') + '" ' : '';
			var imgAlt = (jQuery(this).attr('alt')) ? 'alt="' + jQuery(this).attr('alt') + '" ' : '';
			var imgAlign = (jQuery(this).attr('align')) ? 'float:' + jQuery(this).attr('align') + ';' : '';
			var imgHand = (jQuery(this).parent().attr('href')) ? 'cursor:hand;' : '';
			if (this.style.border) {
				prevStyle += 'border:'+this.style.border+';';
				this.style.border = '';
			}
			if (this.style.padding) {
				prevStyle += 'padding:'+this.style.padding+';';
				this.style.padding = '';
			}
			if (this.style.margin) {
				prevStyle += 'margin:'+this.style.margin+';';
				this.style.margin = '';
			}
			var imgStyle = (this.style.cssText);

			strNewHTML += '<span '+imgId+imgClass+imgTitle+imgAlt;
			strNewHTML += 'style="position:relative;white-space:pre-line;display:inline-block;background:transparent;'+imgAlign+imgHand;
			strNewHTML += 'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;';
			strNewHTML += 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + jQuery(this).attr('src') + '\', sizingMethod=\'scale\');';
			strNewHTML += imgStyle+'"></span>';
			if (prevStyle != ''){
				strNewHTML = '<span style="position:relative;display:inline-block;'+prevStyle+imgHand+'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;'+'">' + strNewHTML + '</span>';
			}

			jQuery(this).hide();
			jQuery(this).after(strNewHTML);

		});

		// fix css background pngs
		jQuery(this).find("*").each(function(){
			var bgIMG = jQuery(this).css('background-image');
			if(bgIMG.indexOf(".png")!=-1){
				var iebg = bgIMG.split('url("')[1].split('")')[0];
				jQuery(this).css('background-image', 'none');
				jQuery(this).get(0).runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + iebg + "',sizingMethod='scale')";
			}
		});
		
		// fix input with png-source
		jQuery(this).find("input[src$=.png]").each(function() {
			var bgIMG = jQuery(this).attr('src');
			jQuery(this).get(0).runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + bgIMG + '\', sizingMethod=\'scale\');';
   		jQuery(this).attr('src', settings.blankgif)
		});
	
	}
	
	return jQuery;

};

})(jQuery);

/*

	Function which checks for valid data input on the user registration page
	
*/

function submitbutton() {
			var form = document.mosForm;
			var r = new RegExp("[^A-Za-z0-9]", "i");

			if (form.name.value == "") {
				alert('Please enter your name.');
				form.name.focus();
			} else if (form.organisation.value == "" ) {
				alert('Please enter the name of your organisation.');
				form.organisation.focus();
			} else if (form.country.value == "" ) {
				alert('Please enter the name of your country.');
				form.organisation.focus();				
			} else if (form.email.value == "" ) {
				alert('Please enter a valid e-mail address.');
				form.email.focus();
			} else if (form.password.value.length < 6) {
				alert('Please enter a valid password -- more than 6 characters with no spaces and containing only the characters 0-9, a-z, or A-Z.');
				form.password.focus();
			} else if (r.exec(form.password.value)) {
				alert('Please enter a valid password.  No spaces, more than 6 characters and containing only the characters 0-9, a-z, or A-Z.');
				form.password.focus();
			} else if (form.code.value == "" || form.code.value.length != 5) {
				alert('Please enter a valid confirmation code.');
				form.code.focus();
			} else if (form.code.value != form.valid.value) {
				alert('The confirmation code entered was incorrect. Please try again.');
				form.code.focus();
			} else {
				form.submit();
			}
		}

