MarkerFields = {
	// Coolpink: allow default value for the directions "from" field
	'DefaultFrom' : null,
    'location' : {
        'customInsert' : function( record, id ) {
            var html;
            html = '<div class="MMinfoboxaddress">';
            html += '<div><span class="MMrecordName">' + record['storename'].toLowerCase() + '</span><br />';

            //html += record['street'] + '<br />';
            //if (record['address2'] != '') html += record['address2'] + '<br />';
            //if (record['address3'] != '') html += record['address3'] + '<br />';
            //if (record['town'] != '') html += record['town'] + '<br />';
            //if (record['pc'] != '') html += record['pc'] + '<br />';

			// default opening times		
			recorddays = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday','saturday','sunday'];
			mydays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
			html += '<span class="MMdaySpan MMdaySpanTitle">Opening Times</span><br /><br />';
            
            for ( var i = 0, j = mydays.length; i < j; i++ ) {
            	// check and insert order direct before easter monday
                html += '<span class="MMdaysRoot MMdays' + recorddays[i] + '">';
                html += '<span class="MMdaySpan">' + mydays[i] + ':&nbsp;</span>';
                html += '<span class="MMdayHoursSpan">' + record[recorddays[i]] + '</span>';
                html += '</span><br />';
            }

            html += '<br /><br />';
            html += '<div class="links">';
            html += '<strong style="color:#006;">Get directions</strong>';
            html += '<form class="directions" action="" method="post" id="directionsForm-' + id + '" onsubmit="GetDirectionsFromInfoBox( this, ' + ( id - 1 ) + ' ); return false;">';
            html += '<label for="infoboxDir' + id + '">';
            html += 'From';
            html += '<input class="text" type="text" value="' + MarkerFields.DefaultFrom + '" id="infoboxDir' + id + '" />';
            html += '</label>';
            html += '<input type="image" src="css/'+campaign_var+'/images/multimap/go-button.gif" class="map-submit" />';
            html += '</form>';
            html += '<a href="#" onclick="ZoomToLocation( ' + ( id - 1 ) + ' ); return false;" class="go-to-location">Zoom to this location</a>';
            // 2009-11-30 00:00:00
            var brStart = new Date();
            brStart.setFullYear(2009, 10, 30);
            brStart.setHours(0);
            brStart.setMinutes(0);
            brStart.setSeconds(0);
            
            // 2009-12-12 23:59:59
            var brEnd = new Date();
            brEnd.setFullYear(2010, 02, 14);
            brEnd.setHours(23);
            brEnd.setMinutes(59);
            brEnd.setSeconds(59);
            //alert(gDate + " >= " + brStart + " && " + gDate + " <= " +brEnd);
            if (gDate >= brStart) {
            	// special bradford logic
		        if (record['pc'] == "BD1 4AG") {
		        	html += '<span class="store-open">Our new address</span>';
		        }
		        if (arguments[0]["storename"] === "WETHERBY DINING CENTRE" || arguments[0]["storename"]=== "DARLEY DALE DINING CENTRE" || arguments[0]["storename"]=== "HULL DINING ROOM CENTRE" || arguments[0]["storename"]=== "CARCROFT DINING CENTRE") {
					html += '<span class="dining-store">Dining Centre</span>';
				}
		         //2009-12-05 00:00:00
            	var brOpen = new Date();
            	brOpen.setFullYear(2009, 11, 5);
            	brOpen.setHours(0);
            	brOpen.setMinutes(0);
            	brOpen.setSeconds(0);
            	if (gDate >= brOpen) {
            		if (record['pc'] == "BD10 8TH") {
				    	html += '<span class="dining-store">Dining Centre</span>';
				    }
            	} else {
				   if (record['pc'] == "BD10 8TH") {
				    	html += '<span class="store-opening">Our new address</span>';
				    }
				}

				// Special Inverness logic 2010-02-15 00:00:00 -> 2010-02-20 00:00:00
				var invEnd = new Date();
				invEnd.setFullYear(2010, 02, 29);
				invEnd.setHours(23);
				invEnd.setMinutes(59);
				invEnd.setSeconds(59);
				if (gDate <= invEnd) {
					var ivStart = new Date();
					ivStart.setFullYear(2010, 01, 15);
					ivStart.setHours(0);
					ivStart.setMinutes(0);
					ivStart.setSeconds(0);
					var ivOpen = new Date();
					ivOpen.setFullYear(2010, 01, 20);
					ivOpen.setHours(0);
					ivOpen.setMinutes(0);
					ivOpen.setSeconds(0);
					if (gDate >= ivOpen) {
						if (arguments[0]["pc"] == "IV2 3TR") {
							html += '<span class="now-open">Store Now open</span>';
						}
					} else if (gDate >= ivStart) {
						if (arguments[0]["pc"] == "IV2 3TR") {
							html += '<span class="opening-soon">Store Opening soon</span>';
						}
					}
				}
		    }
            html += '</div>';
			           
            html += '</div>';
			
            return html;
        }
    },
    'Photo' : {
        'customInsert' : function() {
            var record = arguments[0];
            if ( record.photo && record.photo != 'no' ) {
                return '<img class="MMinfoboxphoto" src="' + record.photo + '" />';
            }
        }
    },
    'opening times' : {
        'customInsert' : function() {
            var record = arguments[0], recorddays, mydays, html = '';
            recorddays = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
            mydays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
            html = '<span class="MMdaySpan MMdaySpanTitle">Opening Times</span><br /><br />';
            for ( var i = 0, j = mydays.length; i < j; i++ ) {
                html += '<span class="MMdaysRoot MMdays' + recorddays[i] + '">';
                html += '<span class="MMdaySpan">' + mydays[i] + ':&nbsp;</span>';
                html += '<span class="MMdayHoursSpan">' + record[recorddays[i]] + '</span>';
                html += '</span><br />';
            }
            	html += '';
            return '';
        }
    }
}

HtmlFields = {
    'name' : { 'element' : 'div', 'fieldname' : 'storename' },
    'street' : { 'element' : 'span', 'fieldname' : 'street' },
	'address2' : { 'element' : 'span', 'fieldname' : 'address2' },
    'town' : { 'element' : 'span', 'fieldname' : 'street3' },
    'postcode' : { 'element' : 'span', 'fieldname' : 'pc' },
    'customInsert' : function() {
        return '<div class="MMresultid"><span class="MMresultidspan">' + arguments[1] + '</span></div>';
    },
    'customInsertPost' : function() {
		var custom_html = '<span class="MMresultstel"><strong>Phone:</strong> ' + arguments[0]["tel"].toLowerCase() + '</span>' +
		'<span class="MMresultsopening"><strong>Opening Times</strong></span>';
		// 2009-11-30 00:00:00
        var brStart = new Date();
        brStart.setFullYear(2009, 10, 30);
        brStart.setHours(0);
        brStart.setMinutes(0);
        brStart.setSeconds(0);
        
        // 2009-12-12 23:59:59
        var brEnd = new Date();
        brEnd.setFullYear(2010, 02, 14);
        brEnd.setHours(23);
        brEnd.setMinutes(59);
        brEnd.setSeconds(59);
        if (gDate >= brStart) {
        	// special bradford logic
			if (arguments[0]["pc"] == "BD1 4AG") {
				custom_html += '<span class="MMstoreopen">Dining Centre</span>';
			}
			//alert(arguments[0]["storename"]);
			if (arguments[0]["storename"] === "WETHERBY DINING CENTRE" || arguments[0]["storename"]=== "BRADFORD DINING CENTRE" || arguments[0]["storename"]=== "DARLEY DALE DINING CENTRE" || arguments[0]["storename"]=== "HULL DINING ROOM CENTRE" || arguments[0]["storename"]=== "CARCROFT DINING CENTRE") {
				custom_html += '<span class="MMdiningstore">Dining Centre</span>';
			}	
			// 2009-12-05 00:00:00
        	var brOpen = new Date();
        	brOpen.setFullYear(2009, 11, 5);
        	brOpen.setHours(0);
        	brOpen.setMinutes(0);
        	brOpen.setSeconds(0);
        	if (gDate >= brOpen) {
        		if (arguments[0]["pc"] == "BD10 8TH") {
					custom_html += '<span class="MMdiningstore">Store Now open</span>';
				}
        	} else {
				if (arguments[0]["pc"] == "BD10 8TH") {
					custom_html += '<span class="MMnewstore">Store Opening soon</span>';
				}
			}
			
		}
		
		var invEnd = new Date();
        invEnd.setFullYear(2010, 02, 29);
        invEnd.setHours(23);
        invEnd.setMinutes(59);
        invEnd.setSeconds(59);
		if (gDate <= invEnd) {
			// Special Inverness logic 2010-02-15 00:00:00 -> 2010-02-20 00:00:00
		    var ivStart = new Date();
		    ivStart.setFullYear(2010, 01, 15);
		    ivStart.setHours(0);
		    ivStart.setMinutes(0);
		    ivStart.setSeconds(0);
			var ivOpen = new Date();
			ivOpen.setFullYear(2010, 01, 20);
			ivOpen.setHours(0);
			ivOpen.setMinutes(0);
			ivOpen.setSeconds(0);
			if (gDate >= ivOpen) {
				if (arguments[0]["pc"] == "IV2 3TR") {
					custom_html += '<span class="MMnowopen">Store Now open</span>';
				}
			} else if (gDate >= ivStart) {
				if (arguments[0]["pc"] == "IV2 3TR") {
					custom_html += '<span class="MMopeningsoon">Store Opening soon</span>';
				}
			}
		}
		return custom_html;
    },
    'customOnclick' : function( id ) {
        var record, marker;
        record = Callbacks.records[id];
        marker = Callbacks.markers[id];
        marker.openInfoBox();
        UpdateRouting( id );
    },
    'addOnClick' : true
}

RoutingFields = {
    'customInsert' : function( step, id ) {
        var road, instruction, element, marker;
        if ( step.road_name && step.road_number ) {
            road = ' ' + step.road_name + ' ( ' + step.road_number + ' ) ';
        } else if ( step.road_name ) {
            road = ' ' + step.road_name + ' ';
        } else if ( step.road_number ) {
            road = ' ' + step.road_number + ' ';
        }
        element = '<span><strong>' + id + '.&nbsp;</strong>' + step.instruction;
        if ( road ) {
            element += road + 'for <strong>' + step.distance.miles + '</strong> miles</span>';
        } else {
            element += '</span>';
        }
        var icon = MM_DEFAULT_ICON.copy();
        icon.cssClass = 'MMMarker MMRouteMarker';
        marker = Page.map.createMarker( step.start_point, { text: id, icon: icon } );
        marker.setInfoBoxContent( element );
        routeMarkers.push( marker );
        return element;
    },
    'addOnClick' : true,
    'customOnclick' : function( id ) {
        window.routeMarkers[id].openInfoBox();
    }
}

UpdateRouting = function( id ) {
    var name, todirections = document.getElementById( 'directions_to' ), point;
    point = Callbacks.records[id].point;
    name = Callbacks.records[id].storename.toLowerCase();
    todirections.value = name;
    todirections.point = point;
}

GetDirectionsFromInfoBox = function( o, id ) {
    var form = o;
	var directions_from = document.getElementById( 'directions_from' );
	directions_from.value = o.getElementsByTagName( 'input' )[0].value;
	directions_from.form.onsubmit();
	return false;
}

ZoomToLocation = function( id, zoomRange ) {
	if(typeof zoomRange == "undefined"){
		zoomRange = 17
	}
	
    Page.map.goToPosition( new MMLocation( Callbacks.records[id].point, zoomRange ) );
}

CreateMobileIframe = function( id ) {
    var iframe, link, div = document.createElement( 'div' );
    link = 'http://clients.multimap.com/clients/content.cgi?client=o2_sf4m&page=mm2m_submit&url=';
    link += escape( 'http://clients.multimap.com/clients/browse.cgi?client=o2_sf4m&f_id=' + id );
    iframe = '<iframe src="' + link + '" class="MMmobileIframe" frameborder="0" width="100%" height="100%"></iframe>';
    div.innerHTML = iframe;
    return DisamHandler.populateDisam( div );
}
