// JavaScript Document
function openWindow(URL, windowName, windowProperties) {
	newWindow = window.open(URL, windowName, windowProperties);
}
function MM_findObj(n, d) { //v4.01
  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_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  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_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

if (document.images) 
{
   img1 = new Image();
   img2 = new Image();
   img3 = new Image();
   img4 = new Image();
   img5 = new Image();
   img6 = new Image();
   img7 = new Image();
   img8 = new Image();
   img9 = new Image();
   img10 = new Image();
   img11 = new Image();
   img12 = new Image();
   img13 = new Image();
   img14 = new Image();
   img15 = new Image();
   img16 = new Image();
   img17 = new Image();
   img18 = new Image();
   img19 = new Image();
   img20 = new Image();
   img21 = new Image();
   img22 = new Image();
   img23 = new Image();
   img24 = new Image();
   img25 = new Image();
   img26 = new Image();
   img27 = new Image();
   img28 = new Image();
   img29 = new Image();
   img30 = new Image();
   img31 = new Image();
   img32 = new Image();
   img33 = new Image();
   img34 = new Image();
   img35 = new Image();
   img36 = new Image();
   img37 = new Image();
   img38 = new Image();
   img39 = new Image();
   img40 = new Image();
   img41 = new Image();
   img42 = new Image();
   img43 = new Image();
   img44 = new Image();
   img45 = new Image();
   img46 = new Image();
   img47 = new Image();
   img48 = new Image();
   img1.src = "images/apply-here.gif";
   img2.src = "images/bottom-applynow1.gif";
   img3.src = "images/bottom-applynow.gif";
   img4.src = "images/bottom-bar.gif";
   img5.src = "images/bottom-email1.gif";
   img6.src = "images/bottom-email.gif";
   img7.src = "images/header-applynow.gif";
   img8.src = "images/header-benefits-package.gif";
   img9.src = "images/header-call-me.gif";
   img10.src = "images/header-contact-us.gif";
   img11.src = "images/header-email.gif";
   img12.src = "images/header-employee-login.gif";
   img13.src = "images/header-facility-staffing.gif";
   img14.src = "images/header-faq.gif";
   img15.src = "images/header-foreign-sponsor.gif";
   img16.src = "images/header-hcstaff.gif";
   img17.src = "images/header-links.gif";
   img18.src = "images/header-referral-bonus.gif";
   img19.src = "images/header-settings-opportunity.gif";
   img20.src = "images/header-therajob.gif";
   img21.src = "images/header-therapists-setting.gif";
   img22.src = "images/header-travel-opportunities.gif";
   img23.src = "images/header-welcome.gif";
   img24.src = "images/header-why-use-rehab.gif";
   img25.src = "images/healthcare-facility-header.gif";
   img26.src = "images/learn-more.gif";
   img27.src = "images/middle-bar.gif";
   img28.src = "images/phonenumber-image.gif";
   img29.src = "images/submit1.gif";
   img30.src = "images/submit.gif";
   img31.src = "images/background-gradient.jpg";
   img32.src = "images/therapist-icon-header.gif";
   img33.src = "images/group-workers.jpg";
   img34.src = "images/healthcare-header.jpg";
   img35.src = "images/left-shadow.jpg";
   img36.src = "images/portrait-helping-patient.jpg";
   img37.src = "images/portrait-man-physician.jpg";
   img38.src = "images/portrait-woman1.jpg";
   img39.src = "images/portrait-woman2.jpg";
   img40.src = "images/portrait-woman3-clippath.jpg";
   img41.src = "images/portrait-woman4.jpg";
   img42.src = "images/portrait-woman5.jpg";
   img43.src = "images/portrait-woman-phone.jpg";
   img44.src = "images/right-shadow.jpg"; 
   img45.src = "images/client-login-client.gif";
   img46.src = "images/client-login-pass.gif";
   img47.src = "images/client-login-table2.gif";
   img48.src = "images/client-remember.gif";
}


function CreateControl(PARAM, DIV_ID)
{
  var d = document.getElementById(DIV_ID);
  document.write(PARAM);
}


function FormValidator()
{
	this.strAlert = "";
	this.valid = true;
	this.headAlert = "Please fill in the following required entries.\n"
	this.Check=Check;
	this.Set=Set;
}

function Set(msg)
{
	this.strAlert += "- " + msg+"\n";
	this.valid = false;
}

function Check(val,rule,msg)
{
	var cond = true;
	aRule = rule.split(",");

	for(var i=0; i<aRule.length; i++) {
		switch(aRule[i])
		{
			case "IsEmail"			:	{	cond = IsEmail(val); break;	}
			case "IsNotEmpty"		:	{	cond = IsNotEmpty(val);	break;	}
			case "IsNumber"			:	{	cond = IsNumber(val);break;	}
			case "IsWeekdayNumber"	:	{	cond = IsWeekdayNumber(val);break;	}
			case "IsSSN"			:	{	cond = IsSSN(val); break;	}
			case "IsTime"			:	{	cond = IsTime(val); break;	}
			case "IsDate"			:	{	cond = IsDate(val); break;	}
			case "IsUSPhone"		:	{	cond = IsUSPhone(val); break;	}
			case "IsASTPhone"		:	{	cond = IsASTPhone(val); break;	}
			case "IsAreaCode"		:	{	cond = IsAreaCode(val); break;	}
			case "IsPostCode"		:	{	cond = IsPostCode(val); break;	}
			case "IsHTTP"			:	{	cond = IsHTTP(val); break;	}
			case "IsMoney"			:	{	cond = IsMoney(val); break;	}
			case "IsIP"				:	{	cond = IsIP(val); break;	}
			case "IsPercent"		:	{	cond = IsPercent(val); break;	}
			case "IsValidImage"		:	{	cond = IsValidImage(val); break;	}
			case "IsSelected"		:	{	cond = IsSelected(val); break; }
			case "IsColor"			:	{	cond = IsColor(val); break;	}
			default					:	{	cond = eval(aRule[i]); break;	}
		}
		if(!cond) break;
	}
	if(!cond) this.Set(msg);
}

//Validation Rules Functions
function IsValidImage(val) //Checkes whether the image that is about to be uploaded is JPG, JPEG, GIF OR PNG
{
	var image_ext;
	if(val!='')
	{
		if(val.lastIndexOf('.')==-1)
			return false
		
		image_ext=val.substring(val.lastIndexOf('.')+1,val.length).toLowerCase();
		if(image_ext!='jpg' && image_ext!='jpeg' && image_ext!='png' && image_ext!='gif')
			return false;
		else
			return true;
	}
	else
		return true;
}

function IsColor(val)
{
	var validChar = '0123456789ABCDEF';
	var status = true;
	var i; 
	color = val.toUpperCase();
	
	if(color!="")
	{	
		if(color.charAt(0)=="#")
		{
			if(color.length==7)
			{
				// Check for legal characters in string
				for (i = 1; i < 7; i++ )
				{
					if(validChar.indexOf(color.charAt(i)) < 0)
						status = false;
				}
			}
			else
				status = false;
		}
	}
	else
		status = false;
	
	return status;	
}

function IsSelected(val) 
{
	return (val != "0");
}

function IsNotEmpty(val) 
{
	return (trim(val) != "");
}

function IsEmail(val) 
{
	return (!IsNotEmpty(val) || !(val.indexOf('@')<0 || val.indexOf('.')<0))
}
function IsUSPhone(val) 
{
		var matchArr2 = val.match(/^\d{10}$/);
		var matchArr3 = val.match(/^(\d{3})\-\d{3}-\d{4}$/);
		var status = true;
	
	if (matchArr2 == null && matchArr3 == null && IsNotEmpty(val)) 
		status = false;
		return status;
	
}

function IsAreaCode(val) 
{	
	var matchArr = val.match(/^\d{2}$/);
	var status = true;
	
	if(matchArr == null && IsNotEmpty(val))
		status = false;
	
	return status;
}

function IsASTPhone(val) 
{	
	var matchArr = val.match(/^\d{8}$/);
	var status = true;
	
	if(matchArr == null && IsNotEmpty(val))
		status = false;
	
	return status;
}

function IsPostCode(val) 
{	
	var matchArr = val.match(/^\d{4}$/);
	var status = true;
	
	if(matchArr == null && IsNotEmpty(val))
		status = false;
	
	return status;
}

function IsNumber(val) 
{
	return (!(isNaN(val)));
}

function IsWeekdayNumber(val)
{
	return (!(isNaN(val)) && (val==1 || val==2 || val==3 || val==4 || val==5 || val==6 || val==7));
}

function IsHTTP(val)
{	
	var status = true;
	if(trim(val).length>0 && trim(val)!="http://")
	{
		var matchArr = val.match(/^(http|https|ftp):\/\/[\w\W]+$/); 
		if(matchArr == null)
			status = false;
	}
	return status;	
}
function IsIP(val)
{	
	var status = true;
	var matchArr = val.match(/[^0-9\.]$/gi); 
	if(matchArr != null)
		status = false;
	return status;	
}

function IsMoney(val)
{
	valid = true;
	if(trim(val).length>0)
	{
		allowed = "0123456789()-,.$";
		digits = "0123456789";
		numCount=0;
		for(i=0;i<val.length;i++)
		{
			if(allowed.indexOf(val.charAt(i))<0)
				valid=false;
			
			if(digits.indexOf(val.charAt(i))>-1)
				numCount++;	
			
		}
		if(valid && numCount==0)
			valid=false;
	}
	return valid;
}

function IsPercent(val)
{
	valid = true;
	if(trim(val).length>0)
	{
		allowed = "0123456789()-,.%";
		digits = "0123456789";
		numCount=0;
		for(i=0;i<val.length;i++)
		{
			if(allowed.indexOf(val.charAt(i))<0)
				valid=false;
			if(digits.indexOf(val.charAt(i))>0)
				numCount++;	
		}
		if(valid && numCount==0)
			valid=false;
	}		
	return valid;
}

function IsDate(val)
{	//SMENI za proverka na tochen datum
	var status = true;
	if(trim(val).length>0)
	{
	var matchArr = val.match(/^\d{1,2}\s\w{3}\s\d{4}$/); //local settings neutral format (dd Mon yyyy h:m)
	if(matchArr == null)
		status = false;
	}
	return status;	
}

function IsTime(val)
{
	var status = true;
	if(val.indexOf(':')<0)
		status = false;
	else
	{
		 digits = new Array();
		 digits = val.split(":");
		 if(!(digits[0]>=0 && digits[0]<=23))
		 	status = false;
		if(!(digits[1]>=0 && digits[1]<=59))		
		 	status = false;
	}	 
	return status;
}

function IsSSN(val) 
{		var status = true;
	if(trim(val).length>0)
	{
	var matchArr = val.match(/^(\d{3})-?\d{2}-?\d{4}$/);
	var numDashes = val.split('-').length - 1;

	
	if (matchArr == null || numDashes == 1) 
	{
		status = false;
	}
	else 
	if (parseInt(matchArr[1],10)==0) 
	{
		status = false;
	}
	}
	return status;
}

// ******************************************************************
// TASK: Validates the Form fields which definitions are entered in the vArray field
// PARAMETERS:
// frm - form object pointer
// vArray (external Validation array) - contains one array element per form field in the following format: fName, vRule, vMsg
function validate(frm)
{
	fv = new FormValidator();
	for(var i=0;i<vArray.length;i++)
	{
		strEval = "frm." + vArray[i][0] + ".value";
		fv.Check(eval(strEval), vArray[i][1],vArray[i][2]);  
	}
	if(!fv.valid)
		alert(fv.headAlert + fv.strAlert);
	return fv.valid;
}

function refvalidate(frm)
{
	fv = new FormValidator();
	for(var i=0;i<rArray.length;i++)
	{
		strEval = "frm." + rArray[i][0] + ".value";
		fv.Check(eval(strEval), rArray[i][1],rArray[i][2]);  
	}
	if(!fv.valid)
		alert(fv.headAlert + fv.strAlert);
	return fv.valid;
}

function appvalidate(frm)
{
	fv = new FormValidator();
	for(var i=0;i<aArray.length;i++)
	{
		strEval = "frm." + aArray[i][0] + ".value";
		fv.Check(eval(strEval), aArray[i][1],aArray[i][2]);  
	}
	if(!fv.valid)
		alert(fv.headAlert + fv.strAlert);
	return fv.valid;
}


// ******************************************************************
//Formatting input Functions
function trim(str)
{
     return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}


// ******************************************************************
// TASK: create local settings neutral format (dd Mon yyyy h:m)
// PARAMETERS:
// strType - create Date only="d"; create Time only="t"; create All=""
function setDate(frmElement,strType,m,d,h,n)
{ 
	nameElement = frmElement.name;
	dayElement = "d"+nameElement;
	monElement = "m"+nameElement;
	yrElement = "y"+nameElement;
	hrElement = "h"+nameElement;
	minElement = "n"+nameElement;
	frm = frmElement.form;
	frmElement.value = "";

	if (strType!="t")
	{
		dayEval = "strDay=frm."+dayElement+".options[frm."+dayElement+".selectedIndex].value;"
		monEval = "strMon=frm."+monElement+".options[frm."+monElement+".selectedIndex].value;"
		yrEval = "strYr=frm."+yrElement+".options[frm."+yrElement+".selectedIndex].value;"
		eval(dayEval);
		eval(monEval);
		eval(yrEval);
		var monthAbrv = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
		frmElement.value = strDay+" "+monthAbrv[strMon-1]+" "+strYr;
	}
	if (strType!="d")
	{
		hrEval = "strHr=frm."+hrElement+".options[frm."+hrElement+".selectedIndex].value;"
		minEval = "strMin=frm."+minElement+".options[frm."+minElement+".selectedIndex].value;"
		eval(hrEval);
		eval(minEval);
		frmElement.value = frmElement.value+" "+strHr+":"+strMin;
	}
	else frmElement.value = frmElement.value+" 0:0";
}