	var timer = null;
	var pic   = new Image();
	
	function AdjustPopupPicture(imagesource, imagearea) {
		pic.src = imagesource;
		timer = setInterval("IsPictureLoaded(imagearea)", 1);
	}

	function IsPictureLoaded(imagearea) {
		if (pic.complete) {
			clearInterval(timer);
			window.moveTo(0, 0);
			GetPicSize();
			
			if(picwidth > 550){
				picheight = 550 / picwidth * picheight;
				picwidth  = 550;
			}
			
			FitPic();
			//ResizeWindow();
			MoveWindow();
			
			document.getElementById(imagearea).innerHTML = '<img src="' + pic.src + '" alt="" width="' + picwidth +'">';
		}
	}

	function GetPicSize() {
		picheight = parseInt(pic.height);
		picwidth  = parseInt(pic.width);		
	}
	
	function FitPic() {
	
		if (window.innerWidth){
			iWidth  = window.innerWidth;
			iHeight = window.innerHeight;
		}else{
			iWidth  = document.body.clientWidth;
			iHeight = document.body.clientHeight;
		}
		
		iWidth  = picwidth - iWidth + 20;
		iHeight = picheight - iHeight + 30;
		
		window.resizeBy(iWidth, iHeight);
	}
	
	// Not all IE browser can resize correctly , FitPic is the best way  
	function ResizeWindow() {
		bName 	= navigator.appName; //1
		version = parseInt(navigator.appVersion); //2

		if(bName.indexOf('Internet Explorer') != -1)
		{
			temp    = navigator.appVersion.split('MSIE');
			version = parseFloat(temp[1]);
		}
		
		if (bName == "Netscape") {
			window.resizeTo(picwidth + 26,(picheight + 80));
		} else if((bName == 'Microsoft Internet Explorer') && version >= 7){
			window.resizeTo(picwidth + 30,(picheight + 108));
		}else {
			
			
			window.resizeBy(picwidth + 30,(picheight + 55));
			//window.resizeTo(picwidth + 30,(picheight + 55));
		}
	}

	function MoveWindow() {
		var winl = (screen.width - picwidth) / 2;
		var wint = (screen.height - (picheight + 150)) / 2;

		window.moveTo(winl, wint);
	}

// JavaScript Document
	function showStatusText(str) {
		window.status = str;
	}

	function GoToUrl(url) {

		window.location.href = url;
	}

/*
	function is_email(email) {

		var pattern = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/;
		var flag = pattern.test(email);

		if (!flag) {
			return false;
		}
		else {
			return true;
		}
	}
*/

	function is_email(email)
	{
		var splitted = email.match("^(.+)@(.+)$");
		if(splitted == null) return false;
		if(splitted[1] != null )
		{
		  var regexp_user=/^\"?[\w-_\.]*\"?$/;
		  if(splitted[1].match(regexp_user) == null) return false;
		}
		if(splitted[2] != null)
		{
		  var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
		  if(splitted[2].match(regexp_domain) == null) 
		  {
			var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
			if(splitted[2].match(regexp_ip) == null) return false;
		  }// if
		  return true;
		}
	return false;
	}
	
	/*function is_number(value) {
		alert('in');

		var checkOK = "0123456789";
		var i;
		var j;

		for (i = 0 ; value.length > i ; i++) {
			ch = value.charAt(i);

			for (j = 0 ; checkOK.length > j ; j++) {
				if (ch == checkOK.charAt(j)) {
					break;
				}
				if (j == checkOK.length) {
					return false;
				}
			}
		}

		return true;
	}*/

	function is_number(value){
		var checkOK = "0123456789";
		var i;
		var j;
		
		for (i = 0 ; value.length > i ; i++) {
			ch = value.charAt(i);
			for (j = 0 ; checkOK.length > j ; j++) {
				if (ch == checkOK.charAt(j))
					break;
			}
			if (j == checkOK.length) {
				return false;
			}
		}
		return true;
	}	
	
	// this is for checkPattern function to validate date pattern, which is in dd/mm/yyyy	
	var datePattern = /\d\d\/\d\d\/\d\d\d\d/;
	
	function checkPattern(value, pattern)
	{
		if(value.search(pattern) != -1)
			return true;
		else
			return false;
	}
	
	function checkDate(value)
	{
		var daysInMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
		var status = checkPattern(value, datePattern);
		
		if(!status)
			return false;
		
		var iYear = parseInt(value.substr(6, 4), 10);
		var iMonth = parseInt(value.substr(3, 2), 10);
		var iDay = parseInt(value.substr(0, 2), 10);
	
		if(iMonth < 1 || iMonth > 12)
			return false;
			
		var maxDay = iMonth != 2 ? daysInMonth[iMonth - 1] :
		((iYear % 4 == 0 && iYear % 100 != 0 || iYear % 400 == 0) ? 29 : 28);
		
		if(iDay > 0 && iDay <= maxDay)
			return true;
		
		return false;
	}
	

	function new_window(mypage, myname, w, h, scroll, resize) {
		//resize = yes/no

		var winl = (screen.width - w) / 2;
		var wint = (screen.height - h) / 2;

		winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+ ',resizable ='+ resize
		win = window.open(mypage, myname, winprops);

		if (parseInt(navigator.appVersion) >= 4) {
			win.focus();
		}
	}
	
function validate_form(d,docall,mode){
	var pass =true;
	var i=0;
	
	for(i=0; i<d.elements.length; i++) {
		//check if it have td which id is inputname>_err
		if(docall.getElementById(d.elements[i].name+'_err')){  //if(docall[d.elements[i].name+'_err']){   
			if(d.elements[i].value==''){
				if(mode == 'add') {
					docall.getElementById(d.elements[i].name+'_err').style.color = '#F63B3B';   
					docall.getElementById(d.elements[i].name+'_err_1').style.display = 'inline';   //docall[d.elements[i].name+'_err_1'].style.display='inline';
					docall.getElementById(d.elements[i].name+'_err').style.fontWeight='bold';
					
					pass =  false;
				} else {
					if(d.elements[i].name=='pwd' || d.elements[i].name =='pwdconfirm') {
						if(d.pwd.value!=d.pwdconfirm.value) {
							docall.getElementById(d.elements[i].name+'_err').style.color = '#F63B3B';
							docall.getElementById(d.elements[i].name+'_err_1').style.display='inline';
							docall.getElementById(d.elements[i].name+'_err').style.fontWeight='bold';
							
							pass =  false;
						}
					} else {
						docall.getElementById(d.elements[i].name+'_err').style.color = '#F63B3B';
						docall.getElementById(d.elements[i].name+'_err_1').style.display='inline';
						docall.getElementById(d.elements[i].name+'_err').style.fontWeight='bold';
						
						pass =  false;
					}
					
				} //check mode
				
			}
			else{
				docall.getElementById(d.elements[i].name+'_err').style.fontWeight='normal';
				docall.getElementById(d.elements[i].name+'_err').style.color = '#000000';
				docall.getElementById(d.elements[i].name+'_err_1').style.display='none';

				//check confirmation
				if(d.elements[i].name.search(/confirm/gi)!=-1){
					if((d[d.elements[i].name.replace(/confirm/gi,'')])&&d[d.elements[i].name.replace(/confirm/gi,'')].value!=''){
						if(d[d.elements[i].name.replace(/confirm/gi,'')].value!=d.elements[i].value){
							docall.getElementById(d.elements[i].name+'_err').style.color = '#F63B3B';
							docall.getElementById(d.elements[i].name+'_err_1').style.display='inline';
							docall.getElementById(d.elements[i].name+'_err').style.fontWeight='bold';
							pass = false;
						}
					}
				}
				//validate for tel input
				if(d.elements[i].name.search(/phone/gi)!=-1){
					
					if(!is_number(d.elements[i].value)){
						docall.getElementById(d.elements[i].name+'_err').style.color = '#F63B3B';
						docall.getElementById(d.elements[i].name+'_err_1').style.display='inline';
						docall.getElementById(d.elements[i].name+'_err').style.fontWeight='bold';
						pass = false;
						
					}
				}

				//validate date of birth				
				if(d.elements[i].name.search(/DOB/gi)!=-1){
					if(checkDate(d.elements[i].value)==false){
						docall.getElementById(d.elements[i].name+'_err').style.color = '#F63B3B';
						docall.getElementById(d.elements[i].name+'_err_1').style.display='inline';
						docall.getElementById(d.elements[i].name+'_err').style.fontWeight='bold';
						pass = false;
					}
				}
				
				//validate numeric input
				if(d.elements[i].name.search(/postcode/gi)!=-1){
					if(!is_number(d.elements[i].value)){
						docall.getElementById(d.elements[i].name+'_err').style.color = '#F63B3B';
						docall.getElementById(d.elements[i].name+'_err_1').style.display='inline';
						docall.getElementById(d.elements[i].name+'_err').style.fontWeight='bold';
						pass = false;
						
					}
				}
				
				//validate email input
				if(d.elements[i].name.search(/email/gi)!=-1){
					if(!is_email(d.elements[i].value)){
						docall.getElementById(d.elements[i].name+'_err').style.color = '#F63B3B';
						docall.getElementById(d.elements[i].name+'_err_1').style.display='inline';
						docall.getElementById(d.elements[i].name+'_err').style.fontWeight='bold';
						pass = false;
						
					}
				}
			}
			
		}
		
	}
	
	return pass;
	
}
/*//////////////////////////////////////////
function validate_form(d,docall,mode){
	var pass =true;
	var i=0;
	
	for(i=0; i<d.elements.length; i++) {
		//check if it have td which id is inputname>_err
		if(docall[d.elements[i].name+'_err']){
			if(d.elements[i].value==''){
				if(mode == 'add') {
					docall[d.elements[i].name+'_err'].style.color = '#F63B3B';
					docall[d.elements[i].name+'_err_1'].style.display='inline';
					docall[d.elements[i].name+'_err'].style.fontWeight='bold';
					
					pass =  false;
				} else {
					if(d.elements[i].name=='pwd' || d.elements[i].name =='pwdconfirm') {
						if(d.pwd.value!=d.pwdconfirm.value) {
							docall[d.elements[i].name+'_err'].style.color = '#F63B3B';
							docall[d.elements[i].name+'_err_1'].style.display='inline';
							docall[d.elements[i].name+'_err'].style.fontWeight='bold';
							
							pass =  false;
						}
					} else {
						docall[d.elements[i].name+'_err'].style.color = '#F63B3B';
						docall[d.elements[i].name+'_err_1'].style.display='inline';
						docall[d.elements[i].name+'_err'].style.fontWeight='bold';
						
						pass =  false;
					}
					
				} //check mode
				
			}
			else{
				docall[d.elements[i].name+'_err'].style.fontWeight='normal';
				docall[d.elements[i].name+'_err'].style.color = '#000000';
				docall[d.elements[i].name+'_err_1'].style.display='none';

				//check confirmation
				if(d.elements[i].name.search(/confirm/gi)!=-1){
					if((d[d.elements[i].name.replace(/confirm/gi,'')])&&d[d.elements[i].name.replace(/confirm/gi,'')].value!=''){
						if(d[d.elements[i].name.replace(/confirm/gi,'')].value!=d.elements[i].value){
							docall[d.elements[i].name+'_err'].style.color = '#F63B3B';
							docall[d.elements[i].name+'_err_1'].style.display='inline';
							docall[d.elements[i].name+'_err'].style.fontWeight='bold';
							pass = false;
						}
					}
				}
				//validate for tel input
				if(d.elements[i].name.search(/phone/gi)!=-1){
					
					if(!is_number(d.elements[i].value)){
						docall[d.elements[i].name+'_err'].style.color = '#F63B3B';
						docall[d.elements[i].name+'_err_1'].style.display='inline';
						docall[d.elements[i].name+'_err'].style.fontWeight='bold';
						pass = false;
						
					}
				}

				//validate date of birth				
				if(d.elements[i].name.search(/DOB/gi)!=-1){
					if(checkDate(d.elements[i].value)==false){
						docall[d.elements[i].name+'_err'].style.color = '#F63B3B';
						docall[d.elements[i].name+'_err_1'].style.display='inline';
						docall[d.elements[i].name+'_err'].style.fontWeight='bold';
						pass = false;
					}
				}
				
				//validate numeric input
				if(d.elements[i].name.search(/postcode/gi)!=-1){
					if(!is_number(d.elements[i].value)){
						docall[d.elements[i].name+'_err'].style.color = '#F63B3B';
						docall[d.elements[i].name+'_err_1'].style.display='inline';
						docall[d.elements[i].name+'_err'].style.fontWeight='bold';
						pass = false;
						
					}
				}
				
				//validate email input
				if(d.elements[i].name.search(/email/gi)!=-1){
					if(!is_email(d.elements[i].value)){
						docall[d.elements[i].name+'_err'].style.color = '#F63B3B';
						docall[d.elements[i].name+'_err_1'].style.display='inline';
						docall[d.elements[i].name+'_err'].style.fontWeight='bold';
						pass = false;
						
					}
				}
			}
			
		}
		
	}
	
	return pass;
	
}
////////////////////////////////////////*/


//remove leading and trailing withespace 
function trim(str) {
	return str.replace(/^\s+/g, '');
}
	
