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';

	$('PaymentPracticeName').innerHTML = ppn;
	
    // prototype call
    new Ajax.Request('/providerloc/plans-json.html?x='+cc, {
        method:'get',
        onSuccess: function(transport){
            //var response = transport.responseText || "no response text";
            $('PaymentDetails').innerHTML = transport.responseText;		            
            var json = transport.responseJSON;
            if (Object.inspect(json)) {
                var arr = json.plans;
                
                var LastCat = '';
	  			var started = 0;
	  			var s = '';
                for(x=0;x<json.count;x++) {
                    var row = arr[x];
                    var PlanName = row[0];
                    var PlanCat = row[1];
                    
                    if (PlanCat != LastCat) {
                        LastCat = PlanCat;
                        if (started > 0) { s += '</ul>'; started=0; }
                        s += '<p style="margin-bottom: 0px;"><span>'+LastCat+'</span><br /></p>';
                    }
                    if (started == 0) { started=1; s += '<ul>'; }
                    s += '<li>' + PlanName + '</li>';
	            }
				if (started > 0) { s+ '</ul>'; }
                $('PaymentDetails').innerHTML = s;		            
            }
            else {
                $('PaymentDetails').innerHTML = 'Error: Unable to retrieve payment plans. (Malformed response)';		            
            }
        },
        onCreate: function() { 
            $('PaymentDetails').innerHTML = '<center><img src="loader.gif" alt="Loading..." /></center>';  
        },
        onFailure: function(){ 
            $('PaymentDetails').innerHTML = 'Error: Unable to retrieve payment plans.';   
        },
        onException: function(req,exception) {
            $('PaymentDetails').innerHTML = 'Error: Unable to retrieve payment plans. ('+exception.name + ':' + exception.description+')';		            
        }
    });
}

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;\"/>';
        		}
      		}
    	);
  	}
}