



/**
 *	Copyright 2011. Demandforce, Inc.  The copyright for all material 
 *	provided on this site ("Site") is held by Demandforce, Inc. Except as 
 *	stated herein, none of the material may be copied, reproduced, 
 *	distributed, republished, downloaded, displayed, posted or transmitted 
 *	in any form or by any means, including, but not limited to, 
 *	electronic, mechanical, photocopying, recording, or otherwise, without 
 *	the prior written permission of Demandforce, Inc. and all materials 
 *	are provided as-is without expressed or implied warranty. Permission 
 *	is granted to use, display, copy, distribute and download the 
 *	materials on this Site for provided you do not modify the materials 
 *	and that you retain all copyright and other proprietary notices 
 *	contained in the materials. You also may not, without Demandforce, 
 *	Inc. permission, "mirror" any material contained on this Site on any 
 *	other server. This permission terminates automatically if you breach 
 *	any of these terms or conditions. Upon termination, you will 
 *	immediately destroy any downloaded and printed materials. Any 
 *	unauthorized use of any material contained on this Site may violate 
 *	copyright laws, trademark laws, the laws of privacy and publicity, and 
 *	communications regulations and statutes.
 */

//<![CDATA[

/* 
 * ------
 * Load Other included JS
 * ------
 */




/* 
 * ------
 * END Load Other included JS
 * ------
 */
 
 
/* 
 * ------
 * D3CP functions and parameters - http://www.demandforce.com 
 * ------
 */

var d3cp_serverURL = "https://www.demandforced3.com:443/www"; //note the server node

var d3cp_key;
var d3cp_bid;
var d3cp_exid;
var facebook_app_id;
var d3cp_link_morereview;
var d3cp_link_addreview;
var d3cp_link_reviewpolicy;
var d3cp_link_scheduler;
var d3cp_link_refer;
var d3cp_link_sendtoemail;
var d3cp_link_sendtophone;

var d3cp_appt_source;
var d3cp_appointment_source;

var d3cp_appt_returnpage;
var d3cp_appt_postdata;
var d3cp_appointment_returnpage;
var d3cp_appointment_postdata;

var d3cp_rev_returnpage;
var d3cp_rev_postdata;
var d3cp_review_returnpage;
var d3cp_review_postdata;

	
function d3cp_parseParameter( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
  
}


function d3cp_parseQueryString()
{
  var results = window.location.href.split("?");
  if( results == null )
    return "";
  else
  {
    if(results[1])
    	return results[1];
    else
    	return "";
  }
}


function d3cp_parseURL()
{
  var results = window.location.href.split("?");
  if( results == null )
    return "";
  else
    return results[0];
}

function d3cp_getFullQueryString()
{
	var tmpQueryString = d3cp_parseQueryString();
	var getEmbededBid = false;
	
	if( d3cp_key != null )
	{
		d3cp_queryString = "d3cp_key="+d3cp_key;
		getEmbededBid = true;
	}
	else if( d3cp_bid != null )
	{
		d3cp_queryString = "d3cp_bid="+d3cp_bid;
		getEmbededBid = true;
	}
	else if( d3cp_exid != null )
	{
		d3cp_queryString = "d3cp_exid="+d3cp_exid;
		getEmbededBid = true;
	}
	else if( facebook_app_id != null )
	{
		d3cp_queryString = "facebookid="+facebook_app_id;
		getEmbededBid = true;
	}
	else 
	{
		d3cp_queryString = "";
		getEmbededBid = false;
	}
	
	if(getEmbededBid == true)
	{
		tmpQueryString = d3cp_updateParameterForQueryString(tmpQueryString, 'd3cp_bid', '');
		tmpQueryString = d3cp_updateParameterForQueryString(tmpQueryString, 'd3cp_exid', '');
		tmpQueryString = d3cp_updateParameterForQueryString(tmpQueryString, 'd3cp_key', '');
		tmpQueryString = d3cp_updateParameterForQueryString(tmpQueryString, 'facebookid', '');
	}
	
	if(d3cp_queryString == '')
	{
		d3cp_queryString = tmpQueryString;
	}else if(tmpQueryString.trim() == '') {
		d3cp_queryString = d3cp_queryString;
	}else{
		d3cp_queryString = d3cp_queryString + "&" + tmpQueryString;
	}

	return d3cp_queryString;
	
}

function d3cp_checkValidBID(query_string)
{
	if(query_string == null || query_string.trim() == '' || (query_string.indexOf('d3cp_bid') < 0 && query_string.indexOf('d3cp_key') < 0 && query_string.indexOf('facebookid') < 0 && query_string.indexOf('d3cp_exid') < 0 ))
	{
		return false;
	}
	else
		return true;
}


function d3cp_updateParameterForQueryString(query_str, p_name, p_value )
{
  	query_str = query_str.trim();
  	p_name = escape(p_name.trim()); 
  	if(p_value) {
  		p_value = escape(p_value.trim()); 
  	}
  	
  	var kvp = query_str.split('&'); 
  	
  	var i=kvp.length; var x; while(i--)  
    { 
        x = kvp[i].split('='); 
 
        if (x[0]==p_name) 
        { 
        	if(p_value && p_value != '')
        	{
                x[1] = p_value; 
                kvp[i] = x.join('='); 
                break; 
            }else{
            	kvp.splice(i, 1);
            }
        } 
    } 
    
    if(i<0 && p_value && p_value != '') 
    {
    	kvp[kvp.length] = [p_name,p_value].join('=');
    } 
    
    var new_query_str = kvp.join('&');  
    
  	return new_query_str;
}

function d3cp_focusFirstInputOfForm(formid)
{
	var bFound = false;
	
	var form = document.getElementById(formid);
	if(form)
	{
		var els = form.elements;
		for(var i = 0; i < form.elements.length; i++){
			var el = els[i];
			if(el.type == "text" || el.type == "textarea")
			{
				el.focus();
				bFound = true;
			}
			if(bFound == true)
				break;
		}
	}
	return false;
}


function d3cp_appendDfSeal(father_node)
{
	var oDiv_DfSeal = document.createElement("div");
		oDiv_DfSeal.className = "d3cp_df_seal_widget";
	father_node.appendChild(oDiv_DfSeal);
	
	var oLink_DfSeal = document.createElement("A");
    	oLink_DfSeal.href = "http://www.demandforce.com";
    	oLink_DfSeal.setAttribute("target", "_blank");
		oLink_DfSeal.className = "d3cp_df_seal";
   	oDiv_DfSeal.appendChild(oLink_DfSeal);
	
}

function d3cp_loadJsFile(filename){
	var fileref=document.createElement('script');
	fileref.setAttribute("type","text/javascript");
	fileref.setAttribute("src", filename);
	if (typeof fileref!="undefined")
		document.getElementsByTagName("head")[0].appendChild(fileref); 
} 

function d3cp_containsVehYear(d3cp_veh_years_str, year)
{
	var find = false;
	var year_arr = (d3cp_veh_years_str).split(',');
	for(var j=0;j<year_arr.length; j++)
	{
		var v_year1=year_arr[j];
		if(v_year1.indexOf('-')>=0)
		{
			var year_arr2 = v_year1.split('-');
			var yr1 = year_arr2[0];
			var yr2 = year_arr2[1];
			var y1 = parseInt(yr1,10) + 1900;
			var y2 = parseInt(yr2,10) + 1900;
			if(y1 < 1970) y1 += 100; 
			if(y2 < 1970) y2 += 100;
			if((y1 <= year && year<=y2))
			{
				find = true;
				break;
			}
		}else{
			var v_year = parseInt(v_year1,10) + 1900;
			if(v_year < 1970) v_year += 100;
			if(v_year == year)
			{
				find = true;
				break;
			}
		}
	}
	
	return find;
}



/* Common functions */
function d3cp_validateZipCode(inputZip)
{
	if(inputZip.trim() == '')
	{
		return false;
	}
	return true;
}

function d3cp_validateEmail(emailAddress) 
{
   	var regExpObj = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
   	if(regExpObj.exec(emailAddress) == null) {
   		return false; 	//Invalid
   	} else {
   		return true;	//Valid
   	}
}

	    
function d3cp_validatePhone(phoneNum) {
	var regExpObj = /^((\+?1[-. ]?)?\(?\d{3}\)?)?[-. ]?\d{3}[-. ]?\d{4}$/;
	if(regExpObj.exec(phoneNum) == null) {
	    return false;   // Invalid
	} else {
	    return true;    // Valid
	}
}

//dateStr should be format as 'mm/dd/yyyy'
function d3cp_validateDate(dateStr) 
{
	dateStr = dateStr.trim();
	
	var regExpObj = /^((0?[1-9])|(1[0|1|2]))\/((0?[1-9])|([1|2][0-9])|(3[0|1]))\/(2\d{3})$/;
	if(regExpObj.exec(dateStr) == null) {
	
	    return false;   // Invalid
	} 
	
	if(isNaN(Date.parse(dateStr)))
   	{
   		return false;   // Invalid
   	}
   	
   	var trueDate = new Date(dateStr);
   	var dateSplit = dateStr.split("/");
	var inputMonth = parseInt(dateSplit[0], 10) - 1;
	var inputDate = parseInt(dateSplit[1], 10);
	var inputYear = parseInt(dateSplit[2], 10);
	
	if(trueDate.getMonth() != inputMonth || trueDate.getDate() != inputDate || trueDate.getFullYear() != inputYear)
	{
		return false;	// Invalid, since the input date is not exist
	}

	return true;
}

// timeStr should be format as 'hh:mm am' 
function d3cp_validateTime(timeStr) 
{
	var regExpObj = /^(0?[0-9]|1[0-9]|2[0-3]):(0?[0-9]|[0-5][0-9])\s(am|pm|AM|PM)$/;
	if(regExpObj.exec(timeStr) == null) {
	    return false;   // Invalid
	} else {
	    return true;    // Valid
	}
}

// dateStr should be format as 'mm/dd/yyyy', and timeStr should be format as 'hh:mm am' 
function d3cp_validateDateTime(dateStr, timeStr)
{
	var fDateTime = '';
	dateStr = dateStr.trim();
	timeStr = timeStr.trim();
	
	if(dateStr != '' && !validateDate(dateStr))
	{
		return false;
	}
	
	if(timeStr != '' && !validateTime(timeStr))
	{
		return false;
	}
	
	if(dateStr != '' && timeStr != '')
		fDateTime = dateStr + " " + timeStr;
	
	if(fDateTime != '' && isNaN(Date.parse(fDateTime)) )
   	{	
   		return false;
	}	
	
	return true;
}

function d3cp_validateDateSimple(date, month) 
{
	if(month <= 0 || month > 12)
	{
		return false;
	}else if(date <= 0 || date > 31)
	{
		return false;
	}
	else if( (month == 4 || month == 6 || month == 9 || month == 11) && date > 30)
	{
		return false;
	}
	else if(month == 2 && date > 29)
	{
		return false;
	}
	return true;
}

function d3cp_countWords(text)
{
	var tmp = text.replace(/\r\n|\n\r|\n/g, " "); 
	var tmpArr = tmp.split(" ");
	var arr = new Array();
	
	for(i = 0; i < tmpArr.length; i++)
	{
		if(tmpArr[i] > '') {
			arr.push(tmpArr[i]);
		}
	}
	
	return arr.length;
}


/* END Common functions */


String.prototype.replaceAll  = function(s1,s2){    
	return this.replace(new RegExp(s1,"gm"),s2);    
} 

String.prototype.trim = function()
{
	return this.replace(/(^\s*)|(\s*$)/g, ""); 
}

//IE 7.0 and previous
if ( !window.Element ) 
{ 
        Element = function(){} 
 
        var __createElement = document.createElement; 
        document.createElement = function(tagName) 
        { 
                var element = __createElement(tagName); 
                for(var key in Element.prototype) 
                        element[key] = Element.prototype[key]; 
                return element; 
        } 

}


function d3cpAppendChildTextNode(obj, txt_str){
	if(obj.appendChild)
	{
		if(txt_str && txt_str.trim() != '')
		{
			var tmp = txt_str; 
			tmp = tmp.replace(/\r\n|\n\r|\n/g, "[br]"); 
			tmp = tmp.replace('<br>', '[br]');
			tmp = tmp.replace('<br/>', '[br]');
			tmp = tmp.replace('<BR>', '[br]');
			tmp = tmp.replace('<BR/>', '[br]');
				
			var txts = tmp.split('[br]');
			for(var i = 0; i < txts.length; i++)
			{
				if(i != 0)
					obj.appendChild(document.createElement("br"));
				obj.appendChild(document.createTextNode(txts[i]));
			}
		}
	}
}

/* Compat IE and FireFox */
//IE 8.0 and previous version -- createElement
document.d3cpCreateElementByName = function(tag, name, type, checked) 
{
	var el;
	var ie_version = /MSIE/;//IE
	var ie_version_9 = /MSIE 9/; //IE9
	if (ie_version.exec(navigator.appVersion) != null && ie_version_9.exec(navigator.appVersion) == null) //IE 8.0 and before
	{
		var str = "<" + tag + " name=\"" + name + "\" ";
		if(type)
		{
			str += " type = \"" + type + "\" ";
		}
		if(checked)
		{
			str += " checked = \"" + checked + "\" ";
		}
		str += " />";
		
		el = document.createElement(str);
		
	}else{
		el = document.createElement(tag);
		el.setAttribute("name", name);
		if(type)
		{
			el.setAttribute("type",type);
		}
		if(checked)
		{
			el.setAttribute("checked",checked);
		}
	}

	return el;
}

/* END Compat IE and FireFox */

/* 
 * ------
 * END D3CP functions and parameters - http://www.demandforce.com 
 * ------
 */




//]]>

    d3cp_exid='dynamicchirorehab';




//<![CDATA[
//Need to parse input arguments
d3cp_queryString = d3cp_getFullQueryString();

	
if(!d3cp_checkValidBID(d3cp_queryString))
{
	d3cp_request_loadUrl = d3cp_serverURL + "/1.0/js/home/error.js.jsp";
	document.write("<script type='text/javascript' src='"+d3cp_request_loadUrl+"'></script>");	
}
else
{

	d3cp_reviews_loadUrl = d3cp_serverURL + "/1.0/js/review/reviews.content.jsp?"+d3cp_queryString;

	document.write("<script type='text/javascript' src='"+d3cp_reviews_loadUrl+"'></script>");

}
//]]>


