/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Web Order System
customer look & feel [build:12 29/05/2010 18:17:12]
allpa BV - web order system

js: 02/06/2010 14:22:22;

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/

// Server connection

var SERVER=window.location.protocol+"//"+window.location.hostname+":"+window.location.port+"/a/eng.exe";
var aranda_engine="&SN_METHOD=ARpage";
//aranda_engine+="&SN_ADDRESS=allpa3.aranda";
var prm1="*28wwGJDIo3CJEl70bZNHotvQAWwFXy3WNUekexv";
var prm2="allpawebFq8rom_xxxHR5ZNE3p4WRL6pnL2CSshk4yIFcTFMr1tUnYIvE4viwYN7h8pDE3jyhZB2vJpXEGXulTg1c7i38ejmkPY8ZFDtuEvQDsUAr0WrNynxeS_plX0B5i0kGvxZ";
var IMG_SRC1_=window.location.protocol+"//www.allpa.nl/allpi/";
var js_version="02/06/2010 14:22:22";

var prm3="";
var prm="";
var page_lang="xhr";
var XHT ="";
var reply ="";
var browser ="";
var Firefox3 = 0;
var version = 0;

var q0=String.fromCharCode(34);

// Parameter of reply

var data1=new Array();
var data2=new Array();
var k0=new Array();
var s1="";
var i3=0;

function DV1(n) {
  prm="";
  for (i=0;i<n;i++) {
    s="v"+(100+i);
    s1=DV(s);
    prm+="&"+s+"="+escape(s1);
  }
  prm=prm.replace(/\+/g,"%2B");
  prm=prm.replace(/%20/g,"+");
}

function escape1(s0) {
  s1=escape(s0);
  s1=s1.replace(/\+/g,"%2B");
  s1=s1.replace(/%20/g,"+");
  return s1;
}

function quote(s) {
  s1=q0+s+q0;
  return s1;
}

function DV(s) {
  s1=DE(s);
  return s1.value;
}

function DE(s) {
  return document.getElementById(s);
}

function DH(s,t) {
  s1=DE(s);
  s1.innerHTML=t;
}

function IV(s,t) {
  s1=DE(s);
  s1.value=t;
}

function trim(s1) {

  s2 = s1.replace(/\n /,"\n");
  s2 = s2.replace(/\n/g,"");
  s2 = s2.replace(/^\s+/g,"").replace(/\s+$/g,"");
  s2 = s2.replace(/\s+/g," ");
  s2 = s2.replace(/(^\s*)|(\s*$)/gi,"");
  s2 = s2.replace(/[ ]{2,}/gi," ");

  return s2;
}

function look(s1) {
  s2=a00_frame.document.getElementById("f_"+s1)
  return s2.innerHTML;
}

// This used for login
function a00_f01() {
  send("6BBpB0joAXVCM1hZmpdkXoiO0kAVCkEQ5LixJvq1","&v100="+page_lang+"&ar0002="+prm2);
}

function a00_f99() {
  top.location.replace("http://www.allpa.nl");
}

function a00_f02() {
  prm="&ar0002="+prm2+"&v0="+DE("usr").value+"&v1="+DE("pwd").value;
  send("t4Z0_sHijmKfIlRxmdLojxCBhOECJdW47udsiNvu",prm);
}

function a00_f03() {
  send("",page_save);
}

function send(page,param) {
  save_page(page+"&"+param);
  send1(page+"&"+param);
}

function create_url(s1) {
  var tmp=new Date();
  prm=SERVER+"?"+"ar0000="+prm1+"&ar0003="+prm3+aranda_engine+"&ar0001="+s1;
  prm+="&ar0004="+escape(Math.random())+"-"+escape(tmp.valueOf());
  return prm;
}

function send1(s2) {
  prm=create_url(s2);
  window.status="Server request...";
  s1=DE("a00_frame");
  s1.src=prm;
}

function send2(s2) {
  prm=create_url(s2);
  window.status="Server request...";
  s1=DE("a00_frame");

  if (s1.contentDocument) {
    s1.contentDocument.location.replace(prm);
  }
  else {
    s1.contentWindow.location.replace(prm);
  }

}

// --------------------- xhmlhttprequest ---------------------

function HTTP() {
  var O;
  browser = navigator.appName;
  version=navigator.userAgent;
  version=version.toLowerCase();
  Firefox3 = version.indexOf("firefox/3");

  if(browser == "Microsoft Internet Explorer"){
    O = new ActiveXObject("MSXML2.XMLHTTP");
  }
  else{
    O = new XMLHttpRequest();
  }
  return O;
}

function send_xhttp(page,param) {

  var tmp=new Date();
  var prm_http="";
  prm_http=aranda_engine+"&ar0000="+prm1+"&ar0003="+prm3+"&ar0001="+page+"&"+param;
  prm_http+="&ar0004="+escape(Math.random())+"-"+escape(tmp.valueOf());

  window.status="Server request...";

  XHT=HTTP();

  if(Firefox3>0) {
    XHT.onreadystatechange=handle;
    XHT.open("GET",SERVER+"?"+prm_http,true);
    XHT.send(null);
  }
  else {
    XHT.open("POST",SERVER,true);
    XHT.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    XHT.setRequestHeader("Content-length", prm_http.length);
    XHT.setRequestHeader("Connection", "close");
    XHT.send(prm_http);
    XHT.onreadystatechange=handle;
  }

}

function handle() {
  s1="status: ";
  if (XHT.readyState>0) {
    s1+=XHT.readyState;
  }
  if (XHT.readyState==4) {
    s1+=" "+XHT.status;
  }

  window.status=s1;

  if (XHT.readyState==4){
    if(XHT.status==200) {
      window.status="OK";
      reply=XHT.responseText ;
      a00_ok();
    }
  }

}

function a00_ok() {
  XHT="";
  reply=reply.replace(/\n/g,"");
  k0=reply.split("~");
  i3=k0.length;

  s1=look_xhttp("ARANDA_XHTTP");

  if(s1=="a00_") {
    a00_script();
  }
  else {
    alert("Error");
  }
}

// Hanlde script
function a00_script() {
  var s0=look_xhttp("a00_script");
  var s1="";
  if (isNaN(s0) && s0!=0) {
    if (window.execScript) {
      s1=window.execScript(s0,"Javascript");
    }
    else {
      eval(s0);
    }
  }
}

function look_xhttp(s1) {
  i1=1;
  s2="";
  s3="<"+s1+">";
  while (i1<i3) {
    if (k0[i1]==s3) {
      s2=k0[i1+1]; break;
    }
    i1+=2;
  }
  return s2;
}

function trimCRLF(s0) {
  var f1="";
  var f0="";

  f0=s0;

  f1=/\n/g;
  f0=f0.replace(f1,"");

  f1=String.fromCharCode(13);
  f1 = new RegExp(f1,"g");
  f0=f0.replace(f1,"");

  f1=String.fromCharCode(10);
  f1 = new RegExp(f1,"g");
  f0=f0.replace(f1,"");

  return f0;
}

// Load a model

var models = new Array();
var Nflds = new Array();
var items = new Array();

function load_model(s0) {
  s1=look("m0");
  load_model_common(s0);
}

function load_model_common(s0) {

  s4=s1.split("`");

  i1=1;
  i3=s4.length;
  i=0;
  s3="";

  while (i1<i3) {

    i=s4[i1]*1;
    Nflds[i]=trimCRLF(s4[i1+1]);

    s2=s4[i1+2];

    s2=trimCRLF(s2);
    s2=s2.replace(/^\s+/g,"").replace(/\s+$/g,"");
    s2=s2.replace(/&lt;/g,"<");
    s2=s2.replace(/&gt;/g,">");
    s2=s2.replace(/ </g,"<");
    s2=s2.replace(/> /g,">");

    models[i]=s2;

    i1+=3;
  }

}

function expand_models(s_output) {

  s1=look("r0").split("`");

  i1=1;
  i3=s1.length;

  s3="";
  s4="";
  while (i1<i3) {
    i=s1[i1];

    s2=Nflds[i];
    s4=models[i];

    i1++;
    for (j=0;j<s2;j++) {
      f1 = new RegExp("@VIB_"+j+"@","g");
      s4=s4.replace(f1,s1[i1+j*1]);
    }
    s3=s3+s4;

    i1=i1+s2*1;
  }

  f1 = new RegExp("IMG_SRC1_","g");
  s3=s3.replace(f1,IMG_SRC1_);
  f1 = new RegExp("DOCUMENT_PATH","g");
  s3=s3.replace(f1,DOCUMENT_PATH);

  if (typeof(s_output)=="object") {
    s_output.innerHTML=s3;
  }
  else {
    s_output=(s_output>"") ? s_output:"result";
    DE(s_output).innerHTML=s3;
  }
}

//

function setFocus() {
  var loginForm = document.getElementById("usr");
  if (loginForm) {
    loginForm.focus();
  }
}

function cls(s1,s2) {
  s1.className=s2;
}

function save(s1) {
  alert("save:"+s1);
}

var menu_items=new Array();

function clear(s0) {
  DH(s0,"");
}

function allpa_links(s1) {
  s2=s1;

  var itmcode="";
  var itmmsg="";
  i2=0;
  i1=s2.toUpperCase().indexOf('<A HREF="[ALLPA_WEB_LINK]',0);

  while (i1>0)
  {

    // Search for closing braket ]
    i2=s2.indexOf(']',i1+2)+1;

    // Search for quote "
    i3=s2.indexOf('"',i1+20);

    // Retrieve Article code
    itmcode=s2.substr(i2,i3-i2)

    // End of <a href tag
    i2=s2.indexOf('>',i3)+1;

    // closing </a> tag
    i3=s2.toUpperCase().indexOf('</A>',i2);

    // message, usually <strong>...
    itmmsg=s2.substr(i2,i3-i2)

    // Img & link to retrieve Article Info

    // Img & link to retrieve Article Info
    s5="onmouseover="+quote("inf('"+itmcode+"','',event)");
    s5+=" onmouseout="+quote("inf_remove()");
    s5+=" onmousemove="+quote("inf_move(event)");

    s4="&nbsp <img src="+quote(IMG_SRC1_+"gif/inf.gif")+" class=p align=middle "+s5+">";

    // Img & link to buy 1 Article and show basket goITM('art_"+itmcode+"');
    s5="onclick="+quote("item_buy(1,'art_"+itmcode+"',0,4);");
    s4+="&nbsp; <img src="+quote(IMG_SRC1_+"gif/bskt.gif")+" class=p title=' * add 1 to the basket * ' align=middle "+s5+">";

    // Insert created links
    s4="<div class=allpa_lnk onmouseout="+quote("cls(this,'allpa_lnk')")+" onmouseover="+quote("cls(this,'allpa_lnk1')")+">"+itmmsg+s4+"</div>";
    s2=s2.substr(0,i1)+s4+s2.substr(i3+4);

    // Looks for other Links to replace
    i1=s2.toUpperCase().indexOf('<A HREF="[ALLPA_WEB_LINK]',i3);

  }

  return s2;
}

function show(s0) {
  s1=look(s0);

  i1=s1.indexOf("[ALLPA_WEB_LINK]",0);

  if (i1>-1) {
    s1=allpa_links(s1);
  }

  f1 = new RegExp("IMG_SRC1_","g");
  s1=s1.replace(f1,IMG_SRC1_);
  f1 = new RegExp("DOCUMENT_PATH","g");
  s1=s1.replace(f1,DOCUMENT_PATH);

  DH(s0,s1);
}

function show_xhttp(s0) {
  s1=look_xhttp(s0)
  f1 = new RegExp("IMG_SRC1_","g");
  s1=s1.replace(f1,IMG_SRC1_);
  f1 = new RegExp("DOCUMENT_PATH","g");
  s1=s1.replace(f1,DOCUMENT_PATH);
  DH(s0,s1);
}

function save_pwd() {
  // save password changed
  DV1(3);
  send("yuiyvy6DFMcGnkQeJotVd31ckhlGLqATe32lj8xp",prm);
}

function search0(s0,s1) {
  // product search
  DV1(1);
  prm+="&v102="+s1;
  send(s0,prm);
}

function search1(s1) {
  // product search
  page("v100");
  DV1(1);
  prm+="&v102="+s1;
  send("8kTTwOMcTPbBrDEyxgOXCTS5JMIKurEMSk61Qv6o",prm);
}

function search2(s0) {
  // product search
  prm="&v100="+escape1(s0);
  prm+="&v102=0002";
  send("8kTTwOMcTPbBrDEyxgOXCTS5JMIKurEMSk61Qv6o",prm);
}

function search3(s0,s1) {
  // query based on category
  if (s1>"") {
    DE("v100").value="category: "+s1;
    search1(s0);
  }
}

function lng(s0) {
  // change language

  if (prm3>"") {
    prm="&v100="+s0;
    send_xhttp("GcUkzQxW7DFOmscWBNJJY6CBSP0bJqfksEDtEIvm",prm);
  }
  else {
    page_lang=s0;
  }
}

var page_scroll=new Array();
var page_saved=0;
var page_save=new Array();

function save_page_reset() {
  page_scroll=new Array();
  page_saved=0;
  s1=DE("a4");
  s1.scrollTop=0;
}

function save_page(s0) {

  page_saved++;
  page_save[page_saved]=s0;
  s1=DE("a4");
  page_scroll[page_saved]=s1.scrollTop;

  for (i=0;i<page_saved;i++) {
    page_save[i]=page_save[i+1];
    page_scroll[i]=page_scroll[i+1];

  }

  s2=page_save[page_saved];
  s2=s2.substr(0,10);
  // DH("a7",s2);

}

function page_reload(s0) {

  // alert("s0:"+s0+" page_saved:"+page_saved+" content:"+page_save[page_saved]);

  if (s0==0) {

    page_saved--;
    // DH("a7",page_saved);

    for (i=page_saved;i>0;i--) {
      page_save[i]=page_save[i-1];
      page_scroll[i]=page_scroll[i-1];
    }
    send1(page_save[page_saved-1]);
  }
  else {
    send1(page_save[s0]);
  }
}

function add_order(productID) {
  prm="&v100="+productID+"&v101="+DE("v101").value;
  send("HdmF3SVa1Qw1MGnXWOGYhAzuulDQ0xdUpjXJyUXA",prm);
}

function ord_hst(orderID) {
  //show order lines (history)
  save_page("a4");
  prm="&v100="+orderID;
  send("rPdahxy_SKIyouGg5btals_xEynEDylHPjURJPSJ",prm);
}

function remove(productID) {
  //remove product from basket
  prm="&v100="+productID;
  send("vAycorkQO6YqeixKOp0bZ3vpT2Km6Iwi4UnKEC3T",prm);
}

var result_boxes_size=0;
var result_boxes=0;
var doc_width=0;
var doc_height=0;

function center01(s1,s2,s3) {

  result_boxes=s3;
  result_boxes_size=s2;

  doc_width=parseInt(document.body.clientWidth);

  nrow=Math.floor(doc_width/s2);
  nrow=(nrow>s3) ? s3:nrow;

  padding_left=(doc_width-s2*nrow)/2

  DE(s1).style.paddingLeft=padding_left;
}

function order_qty(s1) {
  if (DV("bski"+s1)>"") {
    order_itm(s1);
  }
}

function order_itm(s1) {
  item_buy(DV("bskq"+s1),"ART-"+DV("bski"+s1),s1,2);
}

function docdel(s0,s1,s2) {
  if (s1>0) {
    s3=DV("bski"+s0);
    //alert(s0+" "+s1+" "+s3);
    if (s3>"") {
      send("vAycorkQO6YqeixKOp0bZ3vpT2Km6Iwi4UnKEC3T","&v100="+s1+"&v101="+s3+"&v102="+s2);
    }
  }
}

function item_buy(s1,s2,s3,s4) {
  prm="";
  //quantity (quantity or: INC or DEC)
  prm+="&v100="+s1;

  // Item (ans_prgans)
  prm+="&v101="+s2;

  //box within screen
  prm+="&v102="+s3;

  //return screen (1=product search)
  prm+="&v103="+s4;

  send2("HdmF3SVa1Qw1MGnXWOGYhAzuulDQ0xdUpjXJyUXA"+prm);
  //send_xhttp("HdmF3SVa1Qw1MGnXWOGYhAzuulDQ0xdUpjXJyUXA",prm);
}

function update_qty(s1,s2,s3) {
  //update quantity from basket
  item_buy(DV("in"+s1),s2,s1,s3)
}

function update_qty1(s1,s2,s3) {
  s0=DV("in"+s1)*1;
  if (s0<1) {
    DE("in"+s1).value=1;
  }
  item_buy(DV("in"+s1),s2,s1,s3)
}

function zoom_art(s1,s2) {
  //zoom on item

  prm="";
  //quantity
  prm+="&v100=";
  // Item (ans_key)
  prm+="&v101="+s2;
  //type
  prm+="&v102="+s1;

  //return screen
  prm+="&v103=";

  send("G6W3Ef0DCYRUTsWJSdHD3GbC6BPPCkQSLNwbsgYG",prm);
}

function category(s1) {
  //category details
  prm="&v100="+s1;
  send("g8MU1c6xRVxmvlNAMWouiKBCniRsAFLpH384fc5p",prm);
}

// ----------------------------- round div -----------------
var BGCOLORT="";
var BGCOLORB="";
var LEFTCOLOR="";
var RIGHTCOLOR="";

var roundDiv = "";
function roundAll(s1,s2,s3) {
  var iall = 0;
  getProperty(s3);
  for (iall=1;iall<=s1;iall++) {
    s3=document.getElementById(s2+iall);
    if (s3) {
      AddTop(s3,BGCOLORT,LEFTCOLOR);
      AddBot(s3,BGCOLORB,RIGHTCOLOR);
    }
  }
}

function AddTop(s1,color,border){
  roundDiv=document.createElement("span");
  roundDiv.className="round";
  for(i=1;i<=4;i++){
    roundDiv.appendChild(AddSpan(i,color,border));
  }
  s1.insertBefore(roundDiv,s1.firstChild);
}

function AddBot(s1,color,border){
  roundDiv=document.createElement("span");
  roundDiv.className="round";
  for(i=4;i>0;i--){
    roundDiv.appendChild(AddSpan(i,color,border));
  }
  s1.appendChild(roundDiv,s1.firstChild);
}

function AddSpan(s0,color,border) {
  var s3=document.createElement("span");
  s3.className="round" + s0;
  if (s0==1) {
    s3.style.backgroundColor=border;
  }
  else {
    s3.style.backgroundColor=color;
  }
  s3.style.borderLeftColor=LEFTCOLOR;
  s3.style.borderRightColor=RIGHTCOLOR;
  return s3;
}

// --------------------
function DSHOW(s0) {
  // product search page
  //
  // update price
  s1=look("a4");
  s2=s1.split("`");

  DH("dp"+s0,s2[0]);
  DE("in"+s0).value=s2[1];
  DH("dt"+s0,s2[2]);

  if (DE("tot1")) {
    DH("tot1",s2[3]);
  }
}

function DSHOW1(s0) {
  // order form
  //

  s1=look("a4");
  s2=s1.split("`");

  DE("bskq"+s0).value=s2[4];

  DE("bski"+s0).value=s2[0];
  DH("bskd"+s0,s2[1]);

  DH("bskp"+s0,s2[3]);
  DH("bskt"+s0,s2[5]);
  DH("tot1",s2[6]);
  DH("tot2",s2[6]);

  s3="<img src="+quote(IMG_SRC1_+"gif/trash.gif")+" class=bsk onclick="+quote("docdel("+s0+","+s2[7]+")")+" title="+quote(" * Remove * ")+">";
  DH("bskc"+s0,s3);

}

function hstgo(s0) {
  top.history.go(s0);
}

function goITM(s0) {
  zoom_art(2,s0);
}

// -- Delayed Popup -- //
var popupYN=0;
var popupH=0;
var popupW=0;
var mouseX=0;
var mouseY=0;
var docW=0;
var docH=0;

function inf(s0,s1,oEvent) {
  mouseX=oEvent.clientX
  mouseY=oEvent.clientY;
  DE("a8").style.display="inline";
  inf_show();
  DH("a8","...");
  popupYN=1;
  window.status=s0;
  interval=setTimeout("delayed_inf('"+s0+s1+"')",1000);
}

function delayed_inf(s0) {
  if (popupYN==1) {
    prm="&v100="+s0;
    send2("ZbEIEVKqc2tnmQQzCl4uAAmfZYNYyZIvwULCEi7e"+prm);
  }
}

function inf_remove() {
  DE("a8").style.display="none";
  popupYN=0;
}

function inf_move(oEvent) {
  mouseX=oEvent.clientX
  mouseY=oEvent.clientY
  inf_show();
}

function inf_show() {

  docW=f_clientWidth() ;
  docH=f_clientHeight();

  if (docH-mouseY<popupH) {
    mouseY-=popupH;
  }
  if (docW-mouseX<popupW) {
    mouseX-=popupW;
  }

  mouseX+=f_scrollLeft()
  mouseY+=f_scrollTop() ;

  DE("a8").style.top=mouseY+5+"px";
  DE("a8").style.left=mouseX+2+"px";
}

function f_clientWidth() {
  return f_filterResults (
  window.innerWidth ? window.innerWidth : 0,
  document.documentElement ? document.documentElement.clientWidth : 0,
  document.body ? document.body.clientWidth : 0
  );
}

function f_clientHeight() {
  return f_filterResults (
  window.innerHeight ? window.innerHeight : 0,
  document.documentElement ? document.documentElement.clientHeight : 0,
  document.body ? document.body.clientHeight : 0
  );
}

function f_scrollLeft() {
  return f_filterResults (
  window.pageXOffset ? window.pageXOffset : 0,
  document.documentElement ? document.documentElement.scrollLeft : 0,
  document.body ? document.body.scrollLeft : 0
  );
}

function f_scrollTop() {
  return f_filterResults (
  window.pageYOffset ? window.pageYOffset : 0,
  document.documentElement ? document.documentElement.scrollTop : 0,
  document.body ? document.body.scrollTop : 0
  );
}

function f_filterResults(n_win, n_docel, n_body) {
  var n_result = n_win ? n_win : 0;
  if (n_docel && (!n_result || (n_result > n_docel)))
  n_result = n_docel;
  return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

// -- Delayed Popup -- //

var isf=0;
function keydn(e) {
  e = e ? e : event;
  s3=e.srcElement ? e.srcElement : e.target;
  s4=s3.id.substring(0,2);
  s1=e.keyCode;

  if (s1==13) {
    if (s4=="in"||s4=="bs") {
      e.keyCode=9;
      return e.keyCode;
    }
  }
}

function frame1() {
  isf=0;
}

function anc(s0,s1) {
  prm="&v100="+s0;
  prm+="&v101="+s1;
  send_xhttp("E6WhVsb6XstUnE1c2bKuko3vx7g_42Rqg10Bh5ab",prm);
}

// ------------------------------------------------------------------------
// ----------------------- Geocoder functionalities -----------------------
// ------------------------------------------------------------------------
var geocode_coordinates = "";
var geocode_parameters = "";
var geocode_point = "";
var geocode_bulk = "";

var geocode_not_ok=0;
var geocode_errors=0;
var geocode_auto=0;
var geocode_showmap=0;
var geocode_save=0;
var geocode_addr="";


function geocode_bulk_next(s0) {
  
  geocode_bulk=s0;
  geocode_errors=DE("errors").checked;

  geocode_auto=DE("autom").checked;
  geocode_showmap=DE("showmap").checked;
  geocode_not_ok=0;
  send2(geocode_bulk+"v100=&v101=&v102=&v103=&v104="+DE("filter").value+"&v105="+DE("filter2").value+"&v106="+DE("filter3").value);
}

function geocode_bulk_go() {

  geocode_errors=DE("errors").checked;
  geocode_auto=DE("autom").checked;
  geocode_showmap=DE("showmap").checked;
  if (geocode_not_ok) {
    DH("coord","address not found in google map");
  }
  else if (geocode_auto) {
    geocode_not_ok=0;
    send2(geocode_bulk+"v100=&v101=&v102=&v103=&v104="+DE("filter").value+"&v105="+DE("filter2").value+"&v106="+DE("filter3").value);
  }
}

function geocode_retry() {

  geocode_addr=DE("addr_retry").value;
  geocode1(geocode_addr,geocode_point,geocode_save);
}

function geocode1(s0,s1,s2) {

  geocode_addr=s0;
  geocode_point=s1;
  geocode_save=s2;

  geocode_parameters="";

  geocoder = new GClientGeocoder();
  geocoder.getLatLng(s0, map2);

  geocode_auto=0;
  if (geocode_save) {
  }
  else {
    geocode_showmap=(1==1);
    geocode_errors=0;
  }
}

function map2(point) {

  if (point) {
    geocode_coordinates="&v104=&v102="+point.y+"&v103="+point.x+geocode_parameters;

    s3=point.y+","+point.x;
    DH("coord",s3);

    if (geocode_showmap) {
      var map = new GMap2(document.getElementById("map01"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());

      map.setCenter(point, 15);
      map.enableScrollWheelZoom();
      map.enableContinuousZoom();
      start_point=point;
      var marker = createMarker(point,"")
      map.addOverlay(marker);
    }

    if (geocode_save) {
      send2(geocode_bulk+geocode_save+geocode_coordinates);
    }

  }

  else {
    geocode_notFound();
  }
}

function geocode_notFound() {
  if (geocode_save) {

    if (geocode_errors) {
      geocode_not_ok=1;
      alert("google error..."+geocode_addr);
      DE("addr_retry").value=geocode_addr;
    }
    send2(geocode_bulk+geocode_save+"&v104=error");
  }
}

function geocode_find_near(s0) {
  s1=DE("v100").value;
  geocode_point=s1;
  geocode_coordinates="v100="+s1;
  geocode_bulk=s0;
  geocoder = new GClientGeocoder();
  geocoder.getLatLng(s1, map2B);
}

var map ="";

function map2B(point) {

  if (point) {
    geocode_coordinates+="&v104=&v102="+point.y+"&v103="+point.x+geocode_parameters;

    s3=point.y+","+point.x;

    map = new GMap2(document.getElementById("map01"));
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());

    map.setCenter(point, 15);
    map.enableScrollWheelZoom();
    map.enableContinuousZoom();
    start_point=point;
    var marker = createMarker(point,"")
    map.addOverlay(marker);

    if (geocode_bulk.length>10) {
      DH("details","<div class=h1>search in progress...</div>");
      //send_xhttp(geocode_bulk,geocode_coordinates);
      send2(geocode_bulk+geocode_coordinates);
    }
  }
  else {
    google_notfound();
 }
}

// -------------------
// Multiple Markers //

var markers = new Array();
var markers_num=0;
var marker_id=0;
var bounds = "";
var start_point =0;
var target_coordinates="";

function geocoder_show(s0) {
  bounds = new GLatLngBounds;
  markers_num=s0;
  markers = new Array();

  for (i=1;i<=s0;i++) {
    s2=DE("lat"+i).innerHTML;
    s3=DE("lon"+i).innerHTML;

    markers.push( {
      code: "",
      coord:0,
      name:"",
      color:"80a0ff"
    }
    );

    markers[i-1].code=i;
    markers[i-1].coord=new GLatLng(s2,s3);
    markers[i-1].name=DE("msg"+i).innerHTML;

    create_gmarker(markers[i-1]);
  }

  map.setCenter(bounds.getCenter());
  map.setZoom(map.getBoundsZoomLevel(bounds));

  marker_id=1;
  map3(markers[marker_id-1]);
  directions = new GDirections(mapx, "");
  directions_path = new GDirections(map, "");
}

var mapx="";
var directions_path="";
var google_lang="";
function map_path(s0) {
  marker=markers[s0-1];
  curr_from=marker.coord;
  geocoder = new GClientGeocoder();
  p=geocoder.getLatLng(curr_from,draw_path1);
}

function draw_path1(point) {
  target_coordinates=point ;
  directions_path.load("from: "+start_point+" to:"+target_coordinates, { "locale": google_lang });
}

function map3(marker) {
  geocoder = new GClientGeocoder();
  p=geocoder.getLatLng(marker.coord,draw_path);
}

function draw_path(point) {
  target_coordinates=point;
  directions.load("from: "+start_point+" to:"+target_coordinates, { "locale": google_lang });
  GEvent.addListener(directions, "load", function() { dist(); });
}

function dist() {
  directions.getMarker(0).getIcon().image="";
  directions.getMarker(1).getIcon().image="";
  map.removeOverlay(directions.getMarker(0));
  map.removeOverlay(directions.getMarker(1));
  //
  DH("dst"+marker_id,directions.getDistance().html);
  DH("tim"+marker_id,directions.getDuration().html);

  if (marker_id<markers_num) {
    marker_id++;
    map3(markers[marker_id-1]);
  }
}

function create_gmarker(marker)
{
  var Icon1 = new GIcon(G_DEFAULT_ICON);
  markerI1 = { icon:Icon1 };
  Icon1.image="http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld="+marker.code+"|"+marker.color+"|ffffff";

  bounds.extend(marker.coord);

  var gmarker = new GMarker( marker.coord,markerI1 );
  GEvent.addListener( gmarker, "click", function( ) {
    gmarker.openInfoWindowHtml( marker.name );
  }
  );
  map.addOverlay(gmarker);

  var Icon2 = new GIcon(G_DEFAULT_ICON);
  markerI2 = { icon:Icon2};
  Icon2.image ="/aranda_img/allpa_ico1.png";
  Icon2.iconAnchor=new GPoint(-5,10);
  Icon2.iconSize = new GSize(16,16);
  Icon2.shadowSize = new GSize(1,1);

  var gmarker = new GMarker( marker.coord,markerI2 );
  map.addOverlay(gmarker);

}

function createMarker(point,html) {
  var marker = new GMarker(point);

  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(geocode_point);
  }
  );
  return marker;
}

var curr_address=0;
function display_address(s0) {
  if (s0>0) {
    curr_address=s0-1;
    s1=DE("add"+s0).innerHTML;
    geocoder = new GClientGeocoder();
    geocoder.getLatLng(s1, show_address);
  }
}

function show_address(point) {

  if (point) {
    map = new GMap2(document.getElementById("map01"));
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());

    map.setCenter(point, 14);
    map.enableScrollWheelZoom();
    map.enableContinuousZoom();

    markers[curr_address].coord=point;
    create_gmarker(markers[curr_address]);
  }
}

