var map_centres = get_centres_from_xml();
var pin_data = get_pins_from_xml();
var object_and_array = get_layers_from_xml();
var layer_data= object_and_array[0];
var layer_data_array = object_and_array[1];
var layer_param;
var initiators=init_layer_param();
var defaults=initiators[0];
var initial_lp=initiators[1];
function init_layer_param()
{   matches = /\/([^/]+)(\/google)?\/?$/.exec( window.location.pathname );
	map_centre = map_centres[ matches[1] ];
	default_load_layer=map_centre.layer;

	if(default_load_layer)
	{ comma_default_load_layer=','+default_load_layer;
    }

	lp = gup( 'layer' );

    if (lp=="")
    {    if(default_load_layer)
		 {    if(default_load_layer.indexOf("nodefault"))
		 	  {    arr=new Array(default_load_layer);
		 	       lp="" +default_load_layer;
              }
              else
              {    arr=new Array("default", default_load_layer);
		 	  	   lp="default," +default_load_layer;
		 	  }
		 }
		 else
		 {  arr=new Array("default");
		 	lp="default";
		 }
	}
	else
	{    var no_default=lp.indexOf("nodefault");
	   	 if(no_default==-1)
	   	 {   lp='default,' + lp;
		   	 var multi=lp.indexOf(",");
		   	 if(multi!=-1)
		   	 {    arr=lp.split(",");
	       	 }
		   	 else
		   	 {    arr=new Array(lp);
		   	 }
		   	 arr.push("default");
       }
       else
       {    lp=remove(lp,",nodefault");
       	   	lp=remove(lp,"nodefault,");
		   	var multi=lp.indexOf(",");
		   	if(multi!=-1)
		   	{    arr=lp.split(",");
	       	}
		   	else
		   	{    arr=new Array(lp);
		   	}
       }
       initial_lp=lp;
    }
	layer_param=lp;
    
	lp=remove(lp,",default");
    lp=remove(lp,"default,");
    lp=remove(lp,"default");
	returnarray=new Array(arr, lp);
	return returnarray;
}
function get_layer_param()
{
	return layer_param;
}

function ShowLayers( lay )
{   layer_param = lay
    if (layer_param=="")
    {    layer_param="default";
	}
	var no_default=layer_param.indexOf("nodefault");
    if ( no_default == -1)
	{    layer_param=layer_param+",default";
	}
}

function gup( 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 updateChecked(x)
{    if (x !="default")
	 {     y=$F('layerstring');
		  new_y="";
		  var mySplitResult = y.split(",")
          for (var i = 0, length = mySplitResult.length; i< length; i++)
          {    if (x!=mySplitResult[i])
  		 	   {    if(mySplitResult[i]!="")
  		 	   		{    new_y=new_y + mySplitResult[i]+',';
			   		}
			   }
  		  }

		  if (new_y !="")
		  {    Form.Element.setValue($('layerstring'), x +','+ new_y);
		  }
		  else
		  {    Form.Element.setValue($('layerstring'), x);
		  }
	 }
	 else
	 {   x="nodefault";
         y=$F('layerstring');
         var mySplitResult = y.split(",");
         new_y="";
         for (var i = 0, length = mySplitResult.length; i< length; i++)
         {    if (x!=mySplitResult[i])
  		 	  {   if(mySplitResult[i]!="")
  		 	   		{    new_y=new_y + mySplitResult[i]+',';
			   		}
			  }
  		 }
  		 Form.Element.setValue($('layerstring'), new_y);
	}
	ShowLayers($F('layerstring'));
}

function updateUnchecked(x)
{    if (x =="default")
	 {    x="nodefault";
		  y=$F('layerstring');
		  new_y="";
		  var mySplitResult = y.split(",")
          for (var i = 0, length = mySplitResult.length; i< length; i++)
          {    if (x!=mySplitResult[i])
  		 	   {    if(mySplitResult[i]!="")
  		 	   		{    new_y=new_y + mySplitResult[i]+',';
			   		}
			   }
  		  }
		  if (new_y !="")
		  {    Form.Element.setValue($('layerstring'), x +','+new_y);
		  }
		  else
		  {    Form.Element.setValue($('layerstring'), x );
		  }
	}
	else
	{   y=$F('layerstring');
        var mySplitResult = y.split(",");
        new_y="";
        for (var i = 0, length = mySplitResult.length; i< length; i++)
        {    if (x!=mySplitResult[i])
  		 	 {    if(mySplitResult[i]!="")
  		 	   		{    new_y=new_y + mySplitResult[i]+',';
			   		}
			 }
  		}
  		Form.Element.setValue($('layerstring'), new_y);
	}
    ShowLayers($F('layerstring'));
}

function remove(s, t)
{    i = s.indexOf(t);
  	 r = "";
  	 if (i == -1) return s;
  	 r += s.substring(0,i) + remove(s.substring(i + t.length), t);
  	 return r;
}