function ToggleComp(i,ok) {
	var big = document.getElementById("Big" + i);
	var small = document.getElementById("Small" + i);
	
	if (!big) { return; }
	
	if (ok) {
		big.style.display = '';
		small.style.display = 'none';
	}
	else {
		big.style.display = 'none';
		small.style.display = '';
	}
}

function HideApplyNow() {
	var oConfDiv = document.getElementById('applynowpopup');
	oConfDiv.style.display = 'none';
}

function HidePaymentWindow() {
	var oConfDiv = document.getElementById('paymentpopup');
	oConfDiv.style.display = 'none';
}


function ShowPaymentWindow(cc,ppn, rowAnchor) {
	var oConfDiv =  document.getElementById('paymentpopup');
	var objAnchor = document.getElementById(rowAnchor);
	
	var xpos = findPos(objAnchor);
	oConfDiv.style.top = (xpos[1]-100) + "px";
	oConfDiv.style.display = 'block';

	jQuery('#PaymentPracticeName').html(ppn);
	jQuery('#PaymentDetails').html('<center><img src="loader.gif" alt="Loading..." /></center>'); 
	
	var jqxhr = jQuery.getJSON('/providerloc/plans-json.html?x='+cc, function(data) {
		console.log(data);
  		
  		var LastCat = '';
		var started = 0;
		var s = '';
        for(x=0;x<data.count;x++) {
            var row = data.plans[x];
            var PlanName = row[0];
            var PlanCat = row[1];
            var Next = row[2];
            if (PlanCat != LastCat) {
                LastCat = PlanCat;
                if (started > 0) { s += '</ul>'; started=0; }
                s += '<p style="margin-bottom: 0px;"><span>'+LastCat+'</span><br/>';
                s += Next;
                s += '<br /></p>';
            }
            if (started == 0) { started=1; s += '<ul>'; }
            s += '<li>' + PlanName + '</li>';
        }
		if (started > 0) { s+ '</ul>'; }
		jQuery('#PaymentDetails').html(s);		
		
	})
	.error(function() {
		jQuery('#PaymentDetails').html('Error: Unable to retrieve payment plans.');  	
	});
}

function ShowApplyNow(gc,pc,mn,rowAnchor) {
	//var objAnchor = document.getElementById(rowAnchor);
	//var oConfDiv = document.getElementById('applynowpopup');
	
	//var xpos = findPos(objAnchor);
	//oConfDiv.style.top = (xpos[1]-150) + "px";
	//oConfDiv.style.display = 'block';
	
	var p = document.getElementById('ProductCode');
	var g = document.getElementById('GroupCode');
	var m = document.getElementById('MerchantNumber');
	var f = document.getElementById('HideApplyForm');
	
	m.value = mn;
	g.value = gc;
	p.value = pc;
	
	log_departure(mn, 'ProviderLoc');
	f.submit();
}

function ToggleAllComps() {
	for(var i=1;i<=50;i++) {
		var big = document.getElementById("Big" + i);
		if (big) {
    		if (big.style.display == '') {
    			ToggleComp(i, 0);
    		}
    		else {
    			ToggleComp(i, 1);
    		}
        }
	}
}


function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}



//// GOOGLE MAPPING INTEGRATION

 var map;
 var geocoder;
 var icon;
 var zoom;
 var address = new Array();
 var practice = new Array(); 
 var OpenMap = false;
 var MapLoaded = false;
 var gmarkers = new Array(25);
 
function ShowMap() {

	if (MapLoaded == false) {
		OpenMap = true;
		return;
	}
	
	var mDiv = document.getElementById("map");

	if (!GBrowserIsCompatible()) {
		return;
	}
	if (mDiv.style.display == '') {
		mDiv.style.display = 'none';
		return;
	}
	mDiv.style.display = '';
	mDiv.style.height = '500px';
	for(x in MapData) {
		for(y in MapData[x]) {
			//alert( x + "-" + y + "-" + MapData[x][y])
			if(y == "img")	{
				practice[MapData[x]["num"]] = MapData[x][y];
			}
			if(y == "add") {
				address[MapData[x]["num"]] = MapData[x][y];
			}
		}
	}
	switch(miles) {
	    case 75:
  			zoom = 8;
  			break;
	    case 50:
  			zoom = 9;
  			break;
		case 25:
  			zoom = 10;
  			break;
		case 10:
  			zoom = 10;
  			break;
        case 5:
            zoom = 12;
            break;  			
        case 0:
            zoom = 13;
            break;  			
		default:
  			zoom = 10;
  			break;
	}
	
  	map = new GMap2(mDiv);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
  	geocoder = new GClientGeocoder();
	
	if (SearchCenter) {
		map.setCenter(SearchCenter, zoom);
	}
	
	for(x in address) {
		showAddress(address[x],practice[x],x,zoom);
	}
}

function zoomPoint(num) {
	if (gmarkers[num]) {
		var point = gmarkers[num].getPoint();
		map.setCenter(point, 14);
	}
	
}


function showAddress(address, practice_name,icon_num, map_zoom) {
	if (geocoder) {
    	geocoder.getLatLng(address,
      		function(point) {	
				if (!point) {  
					//alert(address + " not found");
        		}
				else {
		  			var bounds  = map.getBounds();
		  			bounds.extend(point);
		  			map.setZoom( map.getBoundsZoomLevel(bounds));
					
					
					// create an icon
					var icon = new GIcon();
			   		//icon.image = "http://adscentric.com/gmaps/icons/" + icon_num + ".png";
			   		icon.image = '/images/gmap/pins/green/'+icon_num+'.png';
					icon.shadow = '/images/gmap/pins/shadow.png';
					icon.iconSize = new GSize(21, 34);
					icon.shadowSize = new GSize(40, 37);
					icon.iconAnchor = new GPoint(0, 25);
					icon.infoWindowAnchor = new GPoint(5, 1);              
			  
			  		var marker = new GMarker(point,icon);
          			map.addOverlay(marker);
			  		gmarkers[icon_num] = marker;
			  		GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(practice_name);});
			  		
			  		var r1 = document.getElementById('SmallPic'+icon_num);
			  		r1.innerHTML = '<img src=\"' + icon.image + '\" onClick=\"zoomPoint('+icon_num+');\" style=\"cursor:pointer;\"/>';
			  		var r2 = document.getElementById('BigPic'+icon_num);
			  		r2.innerHTML = '<img src=\"' + icon.image + '\" onClick=\"zoomPoint('+icon_num+');\" style=\"cursor:pointer;\"/>';
        		}
      		}
    	);
  	}
}
