


function popupCalendar(target, link) {
	var cal = new CalendarPopup();
	cal.setCssPrefix("content");
	cal.select(target, link.name,'dd NNN yyyy');
}

function mm_find(n, d) { 
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
		if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=mm_find(n,d.layers[i].document); return x;
}

function mm_jump(URL_List) {
	var URL = URL_List.options[URL_List.selectedIndex].value;
	if (URL != 0) { window.location.href = URL; }
}

function mm_layers() {
	var i,p,v,obj,args=mm_layers.arguments;
		for (i=0; i<(args.length-2); i+=3) if ((obj=mm_find(args[i]))!=null) { v=args[i+2];
		if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
		obj.visibility=v; }
}

function mm_pngFix() {
	if (document.all) {
		var i, a, f;
		for (i=0; (a = document.getElementsByTagName("img")[i]); i++) {
			if (a.className=="png") {
				f = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+a.src+"')";
				a.src = "img/pixel.gif";
				a.style.filter = f;
			}
		}
	}
}

function mm_popup(theURL,winName,features) {
  	window.open(theURL,winName,features);
}

function mm_restore() {
	var i,x,a=document.mm_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function mm_swap() {
  	var i,j=0,x,a=mm_swap.arguments; document.mm_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   		if ((x=mm_find(a[i]))!=null){document.mm_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function mm_switch(id) {
	var el = document.getElementById(id);
		if(el.style.display == 'none') { el.style.display = "block"; }
		else { el.style.display = "none"; }
	return true;
}

function mm_switch2(id, shownMode) {
	var el = document.getElementById(id);
		if(el.style.display == 'none') { el.style.display = shownMode; }
		else { el.style.display = "none"; }
	return true;
}

function moveOptionBetweenOptionBoxes(i, source, dest) {
	var indexToInsertAt = dest.options.length;
	var sel = new Option(source.options[i].text, source.options[i].value);
	
	dest.options[indexToInsertAt] = sel;
	source.options[i] = null;

	return false;
}

function tka_show(id) {
	try {
		var el = document.getElementById(id);
		el.style.display = "block";
	} catch (ex) { } 
	return true;
}

function tka_hide(id) {
	try {
		var el = document.getElementById(id);
		el.style.display = "none";
	} catch (ex) { }
	return true;
}

function confirmDelete(e, name) {
	return (confirm("Are you sure you wish to delete '" + name + "'?"));
}

function parseBool( str ){
	if( str == "false" || str == false)
		return false;
	else if( str == "true" || str == true)
		return true;
	return null;
}

// ljs - intended for use in a keypress handler (specifically of a textarea control) -- prevent too many chars from being entered
function maxLength(e, field,maxChars) {
	var evtObj = window.event ? window.event : e;
	var allowKeypress = true;
	var specialKeypress = false;

	if (evtObj.keyCode == 8) {	// special handling for backspace 
		specialKeypress = true;
	} else if (evtObj.keyCode == 46) {	// special handling for delete
		specialKeypress = true;
	} else if (evtObj.keyCode == 37) {	// special handling for delete
		specialKeypress = true;
	} else if (evtObj.keyCode == 39) {	// special handling for delete
		specialKeypress = true;
	} else if (evtObj.keyCode == 40) {	// special handling for delete
		specialKeypress = true;
	} else if (evtObj.keyCode == 38) {	// special handling for delete
		specialKeypress = true;
	} else {
		//alert(evtObj.keyCode);
	}
	    
	if (field.value.length >= maxChars) {
		allowKeypress = false;
		field.style.background="#CC6666";
	} else {
		allowKeypress = true;
		field.style.background="white";		       		
	}
	    
	return (specialKeypress ? true : allowKeypress); 
}

function showStatus(msg, isSuccess) {
	tka_show('messageHeader');
	$('msgText').replace("<span id='msgText'>" + msg + "</span>");		
	$('msgIcon').replace("<span id='msgIcon'><img src=" + (isSuccess ? '../img/check.png' : '../img/error.png') + "></span>");				
}

function showPending() {
	tka_show('messageHeader');
	$('msgText').replace("<span id='msgText'>Please wait...</span>");		
	$('msgIcon').replace("<span id='msgIcon'><img src=../img/wait.gif></span>");				
}







/*  Prototype JavaScript framework
 *  (c) 2005 Sam Stephenson <sam@conio.net>
 *
 *  Prototype is freely distributable under the terms of an MIT-style license.
 *
 *  For details, see the Prototype web site: http://prototype.conio.net/
 *
/*--------------------------------------------------------------------------*/


//note: this is a stripped down version of prototype, to be used with moo.fx by mad4milk (http://moofx.mad4milk.net).

var Class = {
  create: function() {
    return function() { 
      this.initialize.apply(this, arguments);
    }
  }
}

Object.extend = function(destination, source) {
  for (property in source) {
    destination[property] = source[property];
  }
  return destination;
}

Function.prototype.bind = function(object) {
  var __method = this;
  return function() {
    return __method.apply(object, arguments);
  }
}

function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1) 
      return element;

    elements.push(element);
  }

  return elements;
}

//-------------------------

document.getAllElementsByClassName = function(className) {
  var children = document.getElementsByTagName('*') || document.all;
  var elements = new Array();
  
  for (var i = 0; i < children.length; i++) {
    var child = children[i];
    var classNames = child.className.split(' ');
    for (var j = 0; j < classNames.length; j++) {
      if (classNames[j] == className) {
        elements.push(child);
        break;
      }
    }
  }
  
  return elements;
}

// snagged from moo.ajax.js
//based on prototype's ajax class
//to be used with prototype.lite, moofx.mad4milk.net.

ajax = Class.create();
ajax.prototype = {
	initialize: function(url, options){
		this.transport = this.getTransport();
		this.postBody = options.postBody || '';
		this.method = options.method || 'post';
		this.onComplete = options.onComplete || null;
		this.update = $(options.update) || null;
		this.request(url);
	},

	request: function(url){
		this.transport.open(this.method, url, true);
		this.transport.onreadystatechange = this.onStateChange.bind(this);
		if (this.method == 'post') {
			this.transport.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
			if (this.transport.overrideMimeType) this.transport.setRequestHeader('Connection', 'close');
		}
		this.transport.send(this.postBody);
	},

	onStateChange: function(){
		if (this.transport.readyState == 4 && this.transport.status == 200) {
			if (this.onComplete) 
				setTimeout(function(){this.onComplete(this.transport);}.bind(this), 10);
			if (this.update)
				setTimeout(function(){this.update.innerHTML = this.transport.responseText;}.bind(this), 10);
			this.transport.onreadystatechange = function(){};
		}
	},

	getTransport: function() {
		if (window.ActiveXObject) return new ActiveXObject('Microsoft.XMLHTTP');
		else if (window.XMLHttpRequest) return new XMLHttpRequest();
		else return false;
	}
};

function showWaitMessage() { tka_show('waiting'); }

function isIE() {
	return (navigator.appName.indexOf("Microsoft") > -1);
}

function getCanSeeText() {
	var canSee = '';
	
	if(navigator.appName.indexOf("Microsoft") > -1){
		canSee = 'block'
	}	

	return canSee;
}

function showAll(className) {
	if (!document.getAllElementsByClassName) {
		return false; 
	} 
	
	var elements = document.getAllElementsByClassName(className);

	var canSee = getCanSeeText();
	
	for (var i=0; i < elements.length; i++) {	
		elements[i].style.display=canSee;
	} 
} 

function hideAll(className) {
	if (!document.getAllElementsByClassName) {
		return false; 
	} 
	
	var elements = document.getAllElementsByClassName(className);

	for (var i=0; i < elements.length; i++) {	
		elements[i].style.display="none";
	} 
} 

function tka_addClassName(element, className) {
	element = $(element);
	tka_removeClassName(element, className);
	element.className += ' ' + className;
}

function tka_removeClassName(element, className) {
	element = $(element);
  		if (!element) return;
  		var newClassName = '';
  		var a = element.className.split(' ');
  		for (var i = 0; i < a.length; i++) {
     		if (a[i] != className) {
       		if (i > 0)
         		newClassName += ' ';
       		newClassName += a[i];
     		}
   	}
  		element.className = newClassName;
}

function clearOptionsList(obj) {
		try {
			for (var ndxDelete = 0; ndxDelete != obj.options.length; ) {
				obj.options[ndxDelete] = null;
			}
		} catch (ex) { }  
		return; 
}

function notifyStageChange(stage, serializeFctn) {
	try {
		var ok = true;
		
		var form = $('LeadForm');
		
		var pathname = "";
		
		try {
			pathname = location.pathname;
		} catch (ex) { }
		
		var body = serializeFctn();
		var req = "op=formStageChange&stage=" + stage + "&pathName=" + pathname + "&" + body;
		
		new Ajax.Request("/adm/fis", {
		 	onSuccess : function(transport) {
		 },
		 	onFailure : function(resp) {
		 },
		 requestHeaders: {Accept: 'application/json'},   
		 parameters : req
		});
	} catch (ex) { }
	
	return ok;
}

function getFriendlyPoundString(nStr) {
	var output = "\u00A3";

	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');
	}
	output += x1 + x2;

	return output;
}

		
