// This is main JS file for x3
//Globals for JS=====================================
var colors = {
	aqua:[0,255,255],
	azure:[240,255,255],
	beige:[245,245,220],
	black:[0,0,0],
	blue:[0,0,255],
	brown:[165,42,42],
	cyan:[0,255,255],
	darkblue:[0,0,139],
	darkcyan:[0,139,139],
	darkgrey:[169,169,169],
	darkgreen:[0,100,0],
	darkkhaki:[189,183,107],
	darkmagenta:[139,0,139],
	darkolivegreen:[85,107,47],
	darkorange:[255,140,0],
	darkorchid:[153,50,204],
	darkred:[139,0,0],
	darksalmon:[233,150,122],
	darkviolet:[148,0,211],
	fuchsia:[255,0,255],
	gold:[255,215,0],
	green:[0,128,0],
	indigo:[75,0,130],
	khaki:[240,230,140],
	lightblue:[173,216,230],
	lightcyan:[224,255,255],
	lightgreen:[144,238,144],
	lightgrey:[211,211,211],
	lightpink:[255,182,193],
	lightyellow:[255,255,224],
	lime:[0,255,0],
	magenta:[255,0,255],
	maroon:[128,0,0],
	navy:[0,0,128],
	olive:[128,128,0],
	orange:[255,165,0],
	pink:[255,192,203],
	purple:[128,0,128],
	violet:[128,0,128],
	red:[255,0,0],
	silver:[192,192,192],
	white:[255,255,255],
	yellow:[255,255,0]
};

var maps=[];

function addScript( url ) {
 var script = document.createElement( 'script' );
 script.type = 'text/javascript';
 script.charset = 'utf-8';
 script.src = url;
 document.getElementsByTagName('head')[0].appendChild( script );
 };
//Flowplayer Initial Values
var fpplayer,fpc,fpsettings;
//fpsettings={
//			key:fpkey,
//			clip: {	autoPlay: true,		provider:'simplecdnrtmp'},
//			plugins: {
//						simplecdnrtmp:{url:'http://e1h11.simplecdn.net/ptclinic/flowplayer/fprtmp.swf',
//						netConnectionUrl:'rtmp://e1f1.simplecdn.net/play/_definst_'},
//						controls:{
//									url:'fpcontrols.swf',
//									borderRadius:'10',
//									all:false,
//									play:true,
//									stop:true,
//									volume:true,
//									scrubber:true,
//									time:true,
//									mute:true
//						}
//			},
//			canvas: {backgroundColor:'transparent',backgroundGradient:'none',opacity:0}
//};

fpsettings={
			key:fpkey,
			clip: {	autoPlay: true,		provider:'s3v'},
			plugins: {
						s3v:{url:'http://s3.ptclinic.com/ptclinic/flowplayer/fprtmp.swf',
									netConnectionUrl:'rtmp://s3video.ptclinic.com/cfx/st'},
						controls:{
									url:'fpcontrols.swf',
									borderRadius:'10',
									all:false,
									play:true,
									stop:true,
									volume:true,
									scrubber:true,
									time:true,
									mute:true
						}
			},
			canvas: {backgroundColor:'transparent',backgroundGradient:'none',opacity:0}
};
//fpsettings={
//			key:fpkey,
//			clip: {	autoPlay: true,	accelerated:true,baseUrl: 'http://s3.ptclinic.com'},
//			plugins: {
//						controls:{
//									url:'fpcontrols.swf',
//									borderRadius:'10',
//									all:false,
//									play:true,
//									stop:true,
//									volume:true,
//									scrubber:true,
//									time:true,
//									mute:true
//						}
//			},
//			canvas: {backgroundColor:'transparent',backgroundGradient:'none',opacity:0}
//};
fpc=fpsettings.plugins.controls;

$.fn.delay = function(time, callback){
				jQuery.fx.step.delay = function(){};
				return this.animate({delay:1}, time, callback);
}

jQuery.extend({
   getScript: function(url, callback) {
      var head = document.getElementsByTagName("head")[0];
      var script = document.createElement("script");
      script.src = url;
      {
         var done = false;
         // Attach handlers for all browsers
         script.onload = script.onreadystatechange = function(){
            if ( !done && (!this.readyState ||
                  this.readyState == "loaded" || this.readyState == "complete") ) {
               done = true;
               if (callback)
                  callback();
               // Handle memory leak in IE
               script.onload = script.onreadystatechange = null;
            }
         };
      }
      head.appendChild(script);
      // We handle everything using the script element injection
      return undefined;
   }
});


// Fix Fade Functions===================================
jQuery.fn.fadeIn = function(speed, callback) {
				if(typeof(speed)=='function'){
								callback=speed;
								speed='normal';
				}
				return this.animate({opacity: 'show'}, speed, function() {
								if (jQuery.browser.msie)this.style.removeAttribute('filter');
								if (jQuery.isFunction(callback))callback();
				});
};
jQuery.fn.fadeOut = function(speed, callback) {
				if(typeof(speed)=='function'){
								callback=speed;
								speed='normal';
				}
				return this.animate({opacity: 'hide'}, speed, function() {
								if (jQuery.browser.msie)this.style.removeAttribute('filter');
								if (jQuery.isFunction(callback))callback();
				});
};
jQuery.fn.fadeTo = function(speed,to,callback) {
				if(typeof(speed)=='function'){
								callback=speed;
								speed='normal';
				}
				return this.animate({opacity: to}, speed, function() {
								if (to == 1 && jQuery.browser.msie)this.style.removeAttribute('filter');
								if (jQuery.isFunction(callback))callback();
				});
};

// Color Conversion functions from highlightFade
// By Blair Mitchelmore
// http://jquery.offput.ca/highlightFade/

// Parse strings looking for color tuples [255,255,255]
function getRGB(color) {
	var result;

	// Check if we're already dealing with an array of colors
	if ( color && color.constructor == Array && color.length == 3 )
		return color;

	// Look for rgb(num,num,num)
	if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
		return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];

	// Look for rgb(num%,num%,num%)
	if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
		return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];

	// Look for #a0b1c2
	if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
		return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];

	// Look for #fff
	if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
		return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];

	// Otherwise, we're most likely dealing with a named color
	return colors[jQuery.trim(color).toLowerCase()];
}

$.fn.colorswap=function(){
	return this.each(function(){
		var color=$(this).css("color");
		color=String(getRGB(color));
		result=color.split(',');
		result[0]=(+result[0]);
		result[1]=(+result[1]);
		result[2]=(+result[2]);
		o1=(+result[0]);
		o2=(+result[1]);
		o3=(+result[2]);
		result=result.sort(function(a,b){return a - b});
		top1=result[0];
		if(o1>160 && o2 >160 && o2 >160){
			o11=100;
			o21=100;
			o31=100;
		}
		else{
			o11=o1;
			o21=o2;
			o31=o3;
		}
		if(o1==o2 && o2==o3)top1=0;
		if(o1!=top1){
			o1=o11;
		}
		else{
			top1=0;
		}
		if(o2!=top1){
			o2=o21;
		}
		else{
			top1=0;
		}
		if(o3!=top1)o3=o31;
		o1s=o1.toString(16);
		o2s=o2.toString(16);
		o3s=o3.toString(16);
		if(o1s=='0')o1s='00';
		if(o2s=='0')o2s='00';
		if(o3s=='0')o3s='00';
		//color=o1.toString(16)+o2.toString(16)+o3.toString(16);
		color=o1s+o2s+o3s;
		$(this).css("color","#"+color);
	})
};

function num2hex(x){
			var s=x.toString(16);
			if(s.length==1)s='0'.concat(s);
			return s;
}

jQuery.preloadImages = function(){
			for(var i = 0; i<arguments.length; i++)	{
						jQuery("<img>").attr("src", arguments[i]);
			}
}
// Create Functions===================================

//For slideshows that need vertical and horizontal alignment
function alignBoth(){
				var ah = $(this).height();
				var aw = $(this).width();
				var ph = $('.slideshowAlign').height();
				var pw = $('.slideshowAlign').width();
				var mh = (ph - ah) / 2;
				var mw = (pw - aw) / 2;
				$(this).css('top', mh);
				$(this).css('left', mw);
				$(this).parent().hide();
};

function callout(){
	$('.co').each(function(i){
		$(this).wrapInner("<div class='co_body  comaster'></div>");
		var hh=$(this).find('.co_body').outerHeight(true);
		hh=hh+10;
		hhh=hh+60;
		var ww=$(this).find('.co_body').innerWidth();
		ww=ww-13;
		$(this).prepend("<div class='co_top_left comaster'></div><div class='co_top comaster'></div>");
		$(this).append("<div class='co_bottom_left comaster'></div><div class='co_bottom comaster'></div>");
		$(this).find('.co_top').width(ww);
		$(this).find('.co_bottom').width(ww+1);
		$(this).find('.co_bottom_left').css('left',0);
		$(this).find('.co_bottom_left,.co_bottom').css('top',hh);
		var th=$(this).height();
		//var th=$(this).outerheight(true);
		$(this).height(hhh);
    //$(this).fadeIn();
    $(this).css('visibility','visible').hide().fadeIn(300);
	});
}

function calloutredo(){
			$('.co').each(function(i){
						var copayload=$(this).find('.co_body').html();
						$(this).html(copayload);
			});
			callout();
}



//Run Flowplayer if needed
function dofp(){
	if(fpkey=='notset'){
				//var player="http://e1h11.simplecdn.net/ptclinic/flowplayer/flowplayerNC.swf";
				var player="http://s3.ptclinic.com/ptclinic/flowplayer/flowplayerNC.swf";
	}
	else{
				//var player="http://e1h11.simplecdn.net/ptclinic/flowplayer/flowplayer.swf";
				var player="http://s3.ptclinic.com/ptclinic/flowplayer/flowplayer.swf";
	}
   if($('.fps').length > 0){
				$('.fps').each(function(){
					var fpshref=$(this).attr('href');
					if(fpshref.substring(1,-1)=='/')fpshref=fpshref.substring(1);
					if(fpshref.indexOf('.flv')>-1){
						fpshref='flv:'+fpshref.replace('.flv','');
						$(this).attr('href',fpshref);
					}
				});
				fpplayer=$f(".fps", {src:player,wmode:'transparent'},fpsettings);
			}
   if($('.fp').length > 0){
						fpsettings.clip= {	autoPlay: true,	accelerated:true};
						delete fpsettings.plugins.s3v;
						fpplayer=$f(".fp", {src:player,wmode:'transparent'},fpsettings);
			}
   if($('.fpnone').length > 0){
						//fpsettings.clip= {	autoPlay: true,	accelerated:true};
						delete fpsettings.clip.provider;
						fpsettings.clip.accelerated=true;
						delete fpsettings.plugins.s3v;
						fpsettings.plugins.controls=null;
						fpsettings.play={};
						fpsettings.play.opacity=0;
						fpplayer=$f(".fpnone", {src:player,wmode:'transparent'},fpsettings);
			}
   if($('.mlvideo').length > 0){
						$('.mlvideo').each(function(){
							var fpshref=$(this).attr('href');
							if(fpshref.substring(1,-1)=='/')fpshref=fpshref.substring(1);
							if(fpshref.indexOf('.flv')>-1){
								fpshref='flv:'+fpshref.replace('.flv','');
								$(this).attr('href',fpshref);
							}
						});
						$('.mlvideo').live('mouseover',function(){$('.mlvideo img').attr('src','http://ptclinic.com/x3/images/mlvideoButtonNorm.png');$(this).find('img').attr('src','http://ptclinic.com/x3/images/mlvideoButtonOver.png');});
						$('.mlvideo img').live('mouseout',function(){$(this).attr('src','http://ptclinic.com/x3/images/mlvideoButtonNorm.png');});
						mlfpsettings=fpsettings;
						mlfpsettings.plugins.controls.volume=false;
						mlfpsettings.plugins.controls.mute=false;
						//mlfpsettings.clip.autoBuffering=true;
						//mlfpsettings.clip.bufferLength=10;
						fpplayer=$f(".mlvideo", {src:player,wmode:'transparent'},mlfpsettings);
			}
}

function doapptreqsetup(doEmail){
	var practice_id=$('#practiceid').text();
	var expocolor=$('#apptreqcolor').css('color');
	if($('#overlay1').length==0){
		$('body').prepend("<div class='overlay' id='overlay1'><div class='contentWrapReq'></div></div><a href='#' rel='#overlay1' id='popup1' style='display:none;'>Open Popup</a>");
		$('#overlay1').css({'background-image':"url('http://ptclinic.com/x3/overlay/white600h.png')",width:'583px',height:'540px',display:'none',padding:'35px'});
	}''
	//overlayapi1=$('#popup1').overlay({api:true,expose:expocolor,absolute:true});
	overlayapi1=$('#popup1').overlay({api:true,expose:expocolor});
	overlayapi1.onLoad=function() {
		var wrap = $('.contentWrapReq');
		if(doEmail=='email'){
			wrap.html('<iframe allowTransparency="true" frameborder="0" scrolling="auto" style="height:540px;width:100%;border:none"  src="https://ptclinic.com/cp/x3apptrequest/arWithEmail.php?practice_id='+practice_id+'"></iframe>');
		}else{
			wrap.html('<iframe allowTransparency="true" frameborder="0" scrolling="auto" style="height:540px;width:100%;border:none"  src="https://ptclinic.com/cp/x3apptrequest/ar.php?practice_id='+practice_id+'"></iframe>');
		}
		//wrap.html('Testing');
	}
	overlayapi1.onClose=function(){
		var wrap = $('.contentWrapReq');
		wrap.html('...');
	}
}

function doshowapptreq(){
	overlayapi1.load();
	return false;
}

function doemailpagesetup(){
	var practice_id=$('#practiceid').text();
	var expocolor=$('#emailsendcolor').css('color');
	if($('#overlayEmail').length==0){
		$('body').prepend("<div class='overlay' id='overlayEmail'><div class='contentWrapEmail'></div></div><a href='#' rel='#overlayEmail' id='popupEmail' style='display:none;'>Open Popup</a>");
		$('#overlayEmail').css({'background-image':"url('http://ptclinic.com/x3/overlay/white600h.png')",width:'583px',height:'540px',display:'none',padding:'35px'});
	}''
	overlayapiEmail=$('#popupEmail').overlay({api:true,expose:expocolor});
	overlayapiEmail.onLoad=function() {
		var wrap = $('.contentWrapEmail');
		var pagelink=escape(location.href);
		wrap.html('<iframe allowTransparency="true" frameborder="0" scrolling="auto" style="height:540px;width:100%;border:none"  src="https://ptclinic.com/cp/emailpage/ep.php?practice_id='+practice_id+'&pagelink='+pagelink+'"></iframe>');
		//wrap.html('Testing');
	}
	overlayapiEmail.onClose=function(){
		var wrap = $('.contentWrapEmail');
		wrap.html('...');
	}
}

function doshowemailpage(){
	overlayapiEmail.load();
}

function dogmap(){
			if (GBrowserIsCompatible()) {
						var expocolor='#444444';
						$('.gmap').each(function(i){
									var params=$(this).metadata();
									if(params.expocolor!=undefined)expocolor=params.expocolor;
									maps[i]=[];
									maps[i].zoom=6;
									if(params.zoom!=undefined)maps[i].zoom=params.zoom;
									maps[i].zoom=20-maps[i].zoom;
									maps[i].id=params.id;
									maps[i].domspot=this;
									if(params.larger==true || params.directions==true){
												var mapheight=$(this).outerHeight(true);
												var mapwidth=$(this).outerWidth();
												var newmapdiv=$("<div class='newgmap' style='height:"+mapheight+"px;' />");
												$(this).height(mapheight+24);
												var links='';
												if(params.larger==true)links+="<a href='#' class='gmaplarger'>LARGER MAP</a>";
												if(params.directions==true)links+="<a href='#' class='gmapdirections'>DIRECTIONS</a>";
												$(this).html("<div class='gmaptopper'>"+links+"</div>");
												$(this).append(newmapdiv);
												maps[i].domspot=$(this).find('.newgmap').get(0);
												$(maps[i].domspot).data('mapid',i);
									}
									//}
									if(params.practice_id!=undefined){
												var ajaxparams={practice_id:params.practice_id};
												maps[i].multi=true;
									} else {
												var ajaxparams={id:maps[i].id};
									}
									$.ajax({
												dataType:'jsonp',
												data:ajaxparams,
												jsonp:'jsonp_callback',
												url:'http://www.ptclinic.com/x3/mapdata.php',
												success:function(data){
															var highlat=-1000;
															var lowlat=1000;
															var highlon=-1000;
															var lowlon=1000;
															maps[i].height=$(maps[i].domspot).height();
															var allmaps={};
															$.each(data.clinics,function(j,val){
																		allmaps[j]=[];
																		var md=val;
																		if(md.lat>highlat)highlat=md.lat;
																		if(md.lon>highlon)highlon=md.lon;
																		if(md.lat<lowlat)lowlat=md.lat;
																		if(md.lon<lowlon)lowlon=md.lon;
																		allmaps[j].point=new GLatLng(md.lat,md.lon);
																		allmaps[j].marker=new GMarker(allmaps[j].point);
																		if(maps[i].height>279){
																					GEvent.addListener(allmaps[j].marker, "click", function() {
																								allmaps[j].marker.openInfoWindowHtml(dogmapballoon(val));
																					});
																		}
																		else{
																					GEvent.addListener(allmaps[j].marker, "click", function() {
																								dogmapoverlay($(maps[i].domspot));
																								allmaps[j].marker.openInfoWindowHtml(dogmapballoon(val));
																					});
																		}
																		allmaps[j].data=val;
															});
															var zoomup=1.001;
															var zoomdown=.999;
															var southwest1=new GLatLng(lowlat*zoomdown,highlon*zoomup);
															var southwest=new GLatLng(lowlat,highlon);
															var northeast1=new GLatLng(highlat*zoomup,lowlon*zoomdown);
															var northeast=new GLatLng(highlat,lowlon);
															var ctrlat=(parseFloat(highlat)+parseFloat(lowlat))/2;
															var ctrlon=(parseFloat(highlon)+parseFloat(lowlon))/2;
															maps[i].center = new GLatLng(ctrlat,ctrlon);
															if(maps[i].multi==undefined){
																		maps[i].center=allmaps[0].point;
															}
															maps[i].orig=$(maps[i].domspot).parents('.gmap');
															maps[i].map=new GMap2(maps[i].domspot);
															if(params.directionsmap==true){
																		maps[i].gdir  = new GDirections(maps[i].map, $("#gmapdirections").get(0));
												    //error handler
																		GEvent.addListener(maps[i].gdir, "error", dogmaphandleErrors);
															}
															maps[i].map.setCenter(maps[i].center, maps[i].zoom);
															if(maps[i].height<280){
																		maps[i].map.addControl(new GSmallZoomControl3D());
															}
															else{
																		maps[i].map.addControl(new GLargeMapControl3D());
															}
															if(maps[i].multi!=undefined){
																		maps[i].bounds=new GLatLngBounds(southwest,northeast);
																		maps[i].bounds1=new GLatLngBounds(southwest1,northeast1);
																		maps[i].map.setCenter(maps[i].bounds.getCenter(), maps[i].map.getBoundsZoomLevel(maps[i].bounds));
															}
															$.each(allmaps,function(k,val){
																		maps[i].map.addOverlay(allmaps[k].marker);
															})
															//maps[i].balloonwidth=$(maps[i].domspot).width()-170;
												}
									});
						});
						if($('#overall').length==0){
							$('body').prepend("<div class='overlay' id='overlay'></div><a href='#' rel='#overlay' id='popup' style='display:none;'>Open Popup</a>");
							$('#overlay').css({'background-image':"url('http://ptclinic.com/x3/overlay/white600h.png')",width:'583px',height:'540px',display:'none',padding:'35px'});
						}
						overlayapi=$('#popup').overlay({api:true,expose:expocolor});
						$('.gmaplarger').live('click',function(){
									var ng=$(this).parents('.gmap').find('.newgmap');
									dogmapoverlay(ng);
									return false;
						})
						$('.gmapdirections').live('click',function(){
									var ng=$(this).parents('.gmap').find('.newgmap').get(0);
									var mapid=$(ng).data('mapid');
									window.location='library_directions_'+maps[mapid].id;
									//dogmapoverlay(ng);
									return false;
						})
			}
}

function dogmapaddress(params,spot){
			var ajaxparams={id:params.id};
			$.ajax({
						dataType:'jsonp',
						data:ajaxparams,
						jsonp:'jsonp_callback',
						url:'http://www.ptclinic.com/x3/mapdata.php',
						success:function(data){
									data=data.clinics[0];
									var address='';
									address+="<h4 style='padding:2px 0;'>"+data.LocationName+"</h4>";
									address+=data.street1;
									address+="<br/>"+data.city+" "+data.state+" "+data.zip;
									if(params.phone!=undefined){
												address+="<br/>"+params.phone+data.phone;
									} else {
												address+="<br/>Phone: "+data.phone;
									}
									if(params.fax!=undefined){
												address+="<br/>"+params.fax+data.fax;
									}
									$(spot).html(address);
						}
			});
}

function dogmapaddresses(){
						$('.gmapaddress').each(function(i){
									var params=$(this).metadata();
									dogmapaddress(params,this);
						});
}

function dogmapballoon(data){
			var balloon="<div class='gmapballon'>";
			balloon+="<h4 style='margin-bottom:2px;display:inline;'>"+data.pName+"</h4>";
			balloon+="<br/>"+data.street1;
			balloon+="<br/>"+data.city+" "+data.state+" "+data.zip;
			balloon+="<br/>"+data.phone;
			balloon+="</div>";
			return balloon;
}

function dogmapdirections(toAddress){
    //fromAddress = $("#street").val()+ " " + $("#city").val() + " " + $("#state").val() + " " + $("#zip").val();
    fromAddress = $("#street").val()+' '+ $("#zip").val();
    //var language  = document.getElementById("language").options[document.getElementById("language").selectedIndex].value;
    //maps[0].gdir.load("from: " + fromAddress + " to: " + toAddress);
    maps[0].gdir.load("from: "+fromAddress + " to: " + toAddress);
				$('.address-panel').hide();
				$('#directionsaddress').show();
}

function dogmaphandleErrors(){
   if (maps[0].gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
     alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + maps[0].gdir.getStatus().code);
   else if (maps[0].gdir.getStatus().code == G_GEO_SERVER_ERROR)
     alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + maps[0].gdir.getStatus().code);
   else if (maps[0].gdir.getStatus().code == G_GEO_MISSING_QUERY)
     alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + maps[0].gdir.getStatus().code);
   else if (maps[0].gdir.getStatus().code == G_GEO_BAD_KEY)
     alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + maps[0].gdir.getStatus().code);
   else if (maps[0].gdir.getStatus().code == G_GEO_BAD_REQUEST)
     alert("A directions request could not be successfully parsed.\n Error code: " + maps[0].gdir.getStatus().code);
   else alert("An unknown error occurred.");
			$('.address-panel').show();
			$('#street').focus();
}

function dogmapoverlay(mapdom){
			var mapid=mapdom.data('mapid');
			var orig=maps[mapid].orig;
			if(maps[mapid].multi!=undefined){
						overlayapi.onLoad(function(){dogmaprebound(mapid)});
						//mapdom.width('100%').height('100%').appendTo('#overlay');
						mapdom.width('100%').height(530).appendTo('#overlay');
						overlayapi.onClose(function(){mapdom.height(maps[mapid].height).appendTo(orig).each(function(){dogmaprebound(mapid,'down',true)});});
			} else {
						overlayapi.onLoad(function(){maps[mapid].map.checkResize();maps[mapid].map.setCenter(maps[mapid].center, maps[mapid].zoom);});
						//mapdom.width('100%').height('100%').appendTo('#overlay').each(function(){maps[mapid].map.checkResize();});
						mapdom.width('100%').height(530).appendTo('#overlay').each(function(){maps[mapid].map.checkResize();});
						overlayapi.onClose(function(){mapdom.height(maps[mapid].height).appendTo(orig);maps[mapid].map.checkResize();maps[mapid].map.closeInfoWindow();maps[mapid].map.setCenter(maps[mapid].center, maps[mapid].zoom);});
			}
			overlayapi.load();
}

function dogmaprebound(i,size,closeinfo){
			maps[i].map.checkResize();
			if(size=='down'){
						maps[i].map.setCenter(maps[i].bounds.getCenter(), maps[i].map.getBoundsZoomLevel(maps[i].bounds));
			} else {
						maps[i].map.setCenter(maps[i].bounds1.getCenter(), maps[i].map.getBoundsZoomLevel(maps[i].bounds1));
			}
			if(closeinfo!=undefined){
						maps[i].map.closeInfoWindow();
			}
}


function dodropshadow(){
			if($('#noshadow').length>0){
						return;
			}
			$('.dsnorm,.dsglow,.dsglowdark,.dssoft,.dssoft,.dssharp,.dsembossed,.dsengraved,.dsset').css({'margin-top':0,'margin-bottom':0,'padding-top':0,'padding-bottom':0});
			$('.dsnorm').dropShadow({left:2,top:2,blur:6});
			$('.dsglowdark').dropShadow({left:0,top:0,blur:3,opacity:1,color:'black'});
			$('.dsglow').dropShadow({left:0,top:0,blur:2,opacity:4,color:'white'});
			$('.dssoft').dropShadow({left:6,top:6,blur:4,opacity:.6,color:'black'});
			$('.dssharp').dropShadow({left:4,top:4,blur:0,opacity:0.25,color:'black'});
			$('.dsembossed').dropShadow({left:-3,top:-3,blur:1,opacity:1,color:'white',swap:true});
			$('.dsengraved').dropShadow({left:2,top:2,blur:2,opacity:1,color:'white',swap:true});
			$('.dsset').each(function(){
						var data=$(this).metadata();
						$(this).dropShadow(data);
			});
			$('a').css('z-index',100);
}

function dosifr(){
			$('.sifr').each(function(){
									tt=$(this);
									var f={};
									var params=tt.metadata();
								 f.txt=tt.text();
									f.textcolor=getRGB(tt.css('color'));
									f.textcolor="#"+num2hex(f.textcolor[0])+num2hex(f.textcolor[1])+num2hex(f.textcolor[2]);
									f.w=tt.width();
									f.h=tt.height();
									f.textalign=tt.css('text-align');
									//tt.flashembed({src:'http://e1h11.simplecdn.net/ptclinic/x3/sifr/'+params.font+'.swf',wmode:'transparent'},f);
									tt.flashembed({src:'http://s3.ptclinic.com/ptclinic/x3/sifr/'+params.font+'.swf',wmode:'transparent'},f);
			});
}

function redoshadow(){
			if(jQuery.dropShadow) {
						$('.dsnorm,.dsglow,.dsglowdark,.dssoft,.dssoft,.dssharp,.dsembossed,.dsengraved,.dsset').redrawShadow();
			}
}

function faqToggle(){
			faqtitle=$(this).parent().attr("title");
			if(faqtitle=='Expand Answer'){
						answer=$(this).parent().next();
						var answeroffset=$(this).parent().offset().top;
						$('html,body').animate({scrollTop:answeroffset},'slow');
						answer.addClass("faqbackground");
						answer.slideDown("slow",function(){
									answer.removeClass("faqbackground");
						});
						$(this).parent().attr("title","Collapse Answer");
						$(this).parent().addClass("questionOver");
			}
			else{
						$(this).parent().next().slideUp("normal");
						$(this).parent().attr("title","Expand Answer");
						$(this).parent().removeClass("questionOver");
			}
			return false;
};

function faqLoad(){
			$("div.faqAnswer2").hide();
			$("h5.question a").unbind("click");
			$("h5.question a").bind("click",faqToggle);
			if($("#faqTitle:visible").length>0 && $("#clickquestiontosee:visible").length==0){
						$("#faqTitle").after("<h5 style='text-align:center;' id='clickquestiontosee'>(Click on a Question to view the Answer)</h5>");
			}
};


function swfinsert(){
			$('.swfmovie').each(function(){
						var flashvars=$(this).metadata();
						var swf=$(this).attr('title');
						$(this).flashembed(
						{ src: swf,
						wmode:'transparent',
						allowscriptaccess:"always",
						allowfullscreen:false,
						version:[6]},flashvars
						);
			});
}


//===============================================
//Dom Load functions
//===============================================
$(function(){
			if (! ('console' in window)) {
							var names = ['log', 'debug', 'info', 'warn', 'error', 'assert', 'dir', 'dirxml', 'group', 'groupEnd', 'time', 'timeEnd', 'count', 'trace', 'profile', 'profileEnd'];
							window.console = {};
							for (var i = 0; i < names.length; ++i) window.console[names[i]] = function() {};
				};



//$('body').prepend("<div class='overlay' id='overlay'></div><a href='#' rel='#overlay' id='popup' style='display:none;'>Open Popup</a>");
//overlayapi=$('#popup').overlay({api:true,expose:'#0094d9'});


//Swap Images
			if($('.swapImage').length>0){
						$.getScript('http://ptclinic.com/x3/jslibs/jquery.swapimage.min.js',function(){
									$.swapImage(".swapImage");
						});
			}


//Mini Banners
			if($('.minibanner').length>0){
						$.getScript('http://ptclinicng.com/wp-content/themes/ptcng/js/minibanners_ptcng.js',function(){
									initminibanners();
						});
			}


//Font Resizer
			if($('#fontsizer').length>0){
				var fsdata=$('#fontsizer').metadata();
				//console.log(fsdata);
				$('#maincontent').prepend('<div id="resizerbox"></div>');
				$.getScript('http://ptclinic.com/x3/jslibs/font-controller.js',function(){
					var normsize=14;
					if(fsdata.normsize!=undefined)normsize=fsdata.normsize;
					var minsize=8;
					if(fsdata.minsize!=undefined)minsize=fsdata.minsize;
					var maxsize=23;
					if(fsdata.maxsize!=undefined)maxsize=fsdata.maxsize;
							fontSize('#resizerbox','body',minsize,normsize,maxsize);
				});
			}
//Flowplayer init
			if($('.fps,.fpsnone,.fp,.fpnone,.mlvideo').length > 0){
						//$.getScript('http://e1h11.simplecdn.net/ptclinic/flowplayer/fpjs.js',dofp);
						$.getScript('http://s3.ptclinic.com/ptclinic/flowplayer/fpjs.js',dofp);
						//dofp();
			}
//Google Maps init
			if($('.gmap').length > 0){
      var script = document.createElement("script");
      document.body.appendChild(script);
      script.src = "http://maps.google.com/maps?file=api&v=2&key="+googleKey+"&async=2&callback=dogmap";
						//dogmap();
						//$.getScript('http://maps.google.com/maps/api/js?sensor=false',dogmap);
			}
//Address Block
			if($('.gmapaddress').length>0){
						dogmapaddresses();
			}

//Colorlists - change to all UL lists
			if($('#nocolorlist').length!=1){
						$('ul','#maincontent').not('.nocolor').addClass('colorlist');
						$('ul','#maincontent').not('.nocolor').find('li').wrapInner("<span class='normal'></span>");
			}

//FAQ type expanding answers
			faqLoad();
//Dropshadows init
			if($('.dsnorm,.dsglow,.dsglowdark,.dssoft,.dssoft,.dssharp,.dsembossed,.dsengraved,.dsset').length > 0){
						$.getScript('http://ptclinic.com/x3/jslibs/jquery.dropshadow.js',dodropshadow);
			}
//Top and Very Top Scrolling Functions
			$('.totop').live('click',function(){
						var mcoffset=$('#maincontent').offset().top;
						$('html,body').animate({scrollTop:mcoffset},'slow');
						return false;
			});
			$('.toverytop').live('click',function(){
						$('html,body').animate({scrollTop:0},'slow');
						return false;
			});
//Callouts
			$('.pq').each(function(i){
						$(this).prepend("<div class='pullquote'>&ldquo;</div>");
						$(this).append("<div class='pullquote' style='text-align:right;'>&rdquo;</div>");
			});
			$('.pqi').each(function(i){
						$(this).prepend("<span class='pullquoteinline'>&ldquo;</span>");
						$(this).append("<span class='pullquoteinline' style='text-align:right;'>&rdquo;</span>");
			});
			if($('.co').length > 0){
						if ($.browser.safari) {
									var t=setTimeout('callout()',2000);
						}
						else{
									var t=setTimeout('callout()',1000);
						}
			}
//Slideshows
			if($('.slideshow').length > 0){
						$('.slideshow').children().hide();
						$('.slideshow:first-child').show();
						//$.getScript("http://www.ptclinic.com/site/jquery.cycle.all.min.js",function(){
						//$.getScript("http://e1h11.simplecdn.net/ptclinic/x3/jquery.cycle2.all.min.js",function(){
						$.getScript("http://ptclinic.com/x3/jslibs/jquery.cycle2.all.min.js",function(){
									$('.slideshow').each(function(i){
												$(this).cycle({cleartypeNoBg:true});
									})
						});
			}
//Nivo
			if($('.nivoSlider').length > 0){
						$('.nivoSlider').children().hide();
						$('.nivoSlider:first-child').show();
						$.getScript("http://ptclinic.com/x3/jslibs/jquery.nivo.slider.pack.js",function(){
									$('.nivoSlider').each(function(i){
												var nsdata=$(this).attr('title');
												if(nsdata.length>2){
													var tns="{"+nsdata+"}";
													//var tnsO = JSON.parse(tns);
													var tnsO = eval('(' + tns + ')');
													console.log(tns);
													console.log(tnsO);
													$(this).nivoSlider(tnsO);
												}else{
													$(this).nivoSlider({controlNav:false});
												}
									})
						});
			}

			if($('.slideshowAlign').length > 0){
						var t=setTimeout(function(){
									$('.slideshowAlign img').each(alignBoth);
									if($.cycle==undefined){
												//$.getScript("http://e1h11.simplecdn.net/ptclinic/x3/jquery.cycle2.all.min.js",function(){
												$.getScript("http://ptclinic.com/x3/jslibs/jquery.cycle2.all.min.js",function(){
															$('.slideshowAlign').each(function(i){
																		$(this).cycle({});
															})
												});
									}
									else{
												$('.slideshowAlign').each(function(i){
															$(this).cycle({});
												});
									}
						},1000);
			}

//Newsfeed
			if($('.newsbox').length){
						var params=$('.newsbox').metadata();
						//$('.newsbox').html("<h1 class='newsfeedtop'><a href='library_newsfeed'>News</a></h1><div class='newsfeed'></div><a class='newsprev' id='newsprev prevPage'></a><div class='newsnavi' id='newsnavi'></div><a class='newsnext nextPage' id='newsnext'></a>");
						$('.newsbox').html("<h1 class='newsfeedtop'><a href='library_newsfeed'>News</a></h1><div class='newsfeed'></div>");
						$.ajax({
									dataType:'jsonp',
									data:params,
									jsonp:'jsonp_callback',
									url:'http://www.ptclinic.com/x3/news/newsfeed.php',
									success:function(data){
												$('.newsfeed').html(data.output);
												$('.newsfeed').append("<a class='newsprev' id='newsprev'></a><div class='newsnavi' id='newsnavi'></div><a class='newsnext' id='newsnext'></a>");
												var itemheight=$('#newsitemsholder>div:first').height();
												var itemheight=100;
												var newheight=(itemheight*params.size)+((params.size-1)*10);
												$('#newsfeedarea').height(newheight);
												$('.newsbox').height(newheight+66+$('newsfeedtop').height());
												$('a',$('#newsfeedarea')).not('.medlink').attr('target','_blank');
												$("#newsfeedarea").scrollable({
															vertical:true,
															size:params.size,
															items:'#newsitemsholder',
															prevPage:'#newsprev',
															nextPage:'#newsnext'
															//api:true
												}).navigator({navi:'#newsnavi'}).mousewheel();
												//api.begin();
									}
						});
			}
//Sifr
			if($('.sifr').length>0){
						dosifr();
			}


//SWFMovie
    if($('.swfmovie').length > 0){
		$('.swfmovie').each(function(){
			var swtitle=$(this).attr('title');
			console.log(swtitle);
			swtitle=swtitle.replace("e1h11.simplecdn.net","s3.ptclinic.com");
			console.log(swtitle);
			$(this).attr('title',swtitle);
		}
		);
      swfinsert();
    }
//Reflect
			if($('.reflect').length > 0){
						$.getScript("http://www.ptclinic.com/x3/jslibs/reflection.js",function(){
									$('.reflect').each(function(){
												var params=$(this).metadata();
												$(this).reflect(params);
									})
						});
			}
//_blank Open
$("a[href*='http://']:not([href*='"+location.hostname+"'])").not('.stay').click( function() {
	if($(this).parent().hasClass('stay')==false){
		window.open(this.href);
		return false;
	}
});


//Appointment Request Loader
if($('.loadar').length>0){
$("<h1 id='apptreqcolor' style='display:none;'>AR</h1>").appendTo('body');
doapptreqsetup();
$('.loadar').click(doshowapptreq);
}

//Appointment Request Loader
if($('.loadarEmail').length>0){
$("<h1 id='apptreqcolor' style='display:none;'>AR</h1>").appendTo('body');
doapptreqsetup('email');
$('.loadarEmail').click(doshowapptreq);
}

//Email Page Loader
if($('#emailpage').length>0){
$("<h1 id='emailsendcolor' style='display:none;'>AR</h1>").appendTo('body');
doemailpagesetup();
$('#emailpage').live('click',function(event){
	event.preventDefault();
	doshowemailpage();
	return false;
});
}

});

