//var $ = jQuery.noConflict();
var $;
var vidteq;
var __FeedbackCustomHeaderTimer;
//variable used to switch between old and new business locate
// Major version of Flash required
var requiredMajorVersion = 8;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;
var hasReqestedFlashVersion=true;
var globalTextIndex = 0;
var classThis;
function vidteqClass() {
  this.topStripColor='#376092';
  this.account='VidTeq';
  this.theme='none'; // it was 'false'
  this.fvtColor='#99B3CC';
  this.topStripTextColor='';
  this.fvtTextColor='';
  this.fvtTextHoverColor='';
  this.showHeader='false';
  this.height = 600;
  this.width = 600;
  this.pf = 3;
  this.dataType ='json';
  this.q = '';
  //this.init();
}

vidteqClass.prototype.init = function() {
  if (typeof(accountDetails) == 'undefined') return;
  if (accountDetails.config.h) accountDetails.config.height = accountDetails.config.h;
  if (accountDetails.config.w) accountDetails.config.width = accountDetails.config.w;
  var params = ['theme','topStripColor','fvtColor','topStripTextColor','fvtTextColor','fvtTextHoverColor','showHeader','height','width','pf'];
  for (var i in params) {
    var val = params[i];
    if (accountDetails.config[val]) this[val] = accountDetails.config[val];
  }
  var params = ['account','q'];
  for (var i in params) {
    var val = params[i];
    if (accountDetails[val]) this[val] = accountDetails[val];
  }
  mainColor=this.topStripColor;
  this.urlId = accountDetails.urlId;
}

//imagePathsObj={};
var MSIE6=false;
var MSIE7=false;
isObjectEmpty = function (obj) {
  for(var prop in obj) {
    if(obj.hasOwnProperty(prop)) return false; 
  }
  return true;
}

var addressSubsArray=[  
  {field:'addr1'},
  {field:'addr2'},
  {field:'addr3'},
  {field:'addr4'},
  {field:'city'},
  {field:'pin'},
  {field:'phone',text:'Ph: '},
  {field:'email',text:'Email: '},
  {field:'website',text:'Website: '},
  {field:'workhrs',text:'Working Hours: '}
];

function createElem(name, doc) {
  if (! doc) {
    doc = document;
  }
  return doc.createElement(name);
}

function trim(str) {
  return str.replace(/^\s*|\s*$/g, '');
}

function createText(str, doc) {
  if (!doc) {
    doc = document;
  }
  return doc.createTextNode(str);
}

function attachHiddenInputField(elementToAttach, name, doc, value) {
  if (!doc) {
    doc = document;
  }
  var obj = createElem("input", doc);
  obj.type = "hidden";
  obj.name = name;
  obj.value = value;
  elementToAttach.appendChild(obj);
  return obj;
}

function getIFrameDocument(name) {
  var iframe = frames[name];  
  var doc = null;
  if (iframe.contentDocument) {
    doc = iframe.contentDocument; 
  } else if (iframe.contentWindow) {
    doc = iframe.contentWindow.document;
  } else if (iframe.document) {
    doc = iframe.document;
  } else {
    throw "Document not initialised";
  }
  return doc;
}

function attachForm(href, elementToAttach, doc, method) {
  var formObj = createElem("form", doc);
  formObj.method = method;
  formObj.action = href;
  elementToAttach.appendChild(formObj);
  return formObj;
}

function attachHiddenInputField(elementToAttach, name, doc, value) {
  if (!doc) {
    doc = document;
  }
  var obj = createElem("input", doc);
  obj.type = "hidden";
  obj.name = name;
  obj.value = value;
  elementToAttach.appendChild(obj);
  return obj;
}

function returnBrowserHeightWidth() {
  var a={};  
  if(typeof(window.innerHeight)=='number') {
    a.height=(typeof(ioAreaObj.embed)!='undefined')?window.innerHeight:document.body.offsetHeight;
    a.width=document.body.clientWidth;
  } else if(document.documentElement) {
    a.height=document.documentElement.clientHeight;  
    a.width=document.documentElement.clientWidth;  
  }
  return a;
} 

var imagePathsObj = {
  generated: false,
  nonThemed: {
    car:"car.png",
    proposed_a:"proposed_a.png",
    newSticker:"new.gif",
    viaBall:"viaBall.png",
    busStop:"bus_icon.jpg",
    vidteqMapLogo:"vidteq_map.png",
    start:"start.gif",
    startIconUrl:"start.gif",
    end:"end.gif",
    endIconUrl:"end.gif",
    close:"close.gif",
    camera:"camera.png",
    arrow:"arrow.gif",
    myplace:"myplace.png",
//    logosBase:imageLogosLoc,
    cross:"cross.png",
    load:"load.gif",
    sms:"sms.gif",
    email:"email.gif",
    ajaxLoader:"ajax-loader.gif",
    textdirs:{
      base:"textdirs/",
      start:"textdirs/start.png",
      straight:"textdirs/straight.png",
      left:"textdirs/left.png",
      right:"textdirs/right.png",
      uturn:"textdirs/uturn.png",
      stop:"textdirs/end.png"
    },
    logo:"vidteq_Alpha.png",
    poi:"poi.gif",
    doi:"doi.gif",
    biasstops:"BIASStops.png",
    front:{
      left:"front/left.png",
      center:"front/center.png",
      right:"front/right.png"
    },
    viaBallMarkers:"viamarkers/"
  },
  themed: {
    swap:"swap.png",
    feedback_v:"feedback_v.png",
    feedback_h:"feedback_h.png",
    demo:"demo.png",
    proposed:"proposed.png",
    govid:"govid.png",
    up:"up.gif",
    down:"down.gif",
    thumb:"thumb.gif",
    refBox:"refBox520x388p1.png",
    localityEnabled:"locality.gif",
    localityDisabled:"locality_d.png",
    storesEnabled:"stores.png",
    storesDisabled:"stores_d.png",
    locaMarkers:[]
  },
  MSIE6: {
    path:"ie6/",
    logo:"vidteq_Alpha.jpg",
    poi:"poi.png",
    biasstops:"transparent20.png",
    doi:"doi.png",
    textdirs:{
      start_jpg:"textdirs/start.jpg",
      straight_jpg:"textdirs/straight.jpg",
      left_jpg:"textdirs/left.jpg",
      right_jpg:"textdirs/right.jpg",
      uturn_jpg:"textdirs/uturn.jpg",
      stop_jpg:"textdirs/end.jpg"
    },
    front:{
      left:"front/left.jpg",
      center:"front/center.jpg",
      right:"front/right.jpg"
    }
  },
  generateLocaMarkers : function () {
    for(var i=0;i<30;i++) {
      this.themed.locaMarkers[i]={
        div:"loca_markers/"+(i+1)+".png",
        map:"loca_markers/"+(i+1)+".png"
      }
    }
  },
  isEmpty : function (obj) {
    for(var prop in obj) {
      if (prop == 0 && typeof(obj[prop]) == 'string') return true;
      if(obj.hasOwnProperty(prop)) return false; 
    }
    return true;
  },
  transferPath : function (count,target,refObj,path) {
    if (count > 3) return;
    count++;
    for (var i in refObj) { 
      if (this.isEmpty(refObj[i])) {target[i] = path+refObj[i];}
      else {target[i] = {};this.transferPath(count,target[i],refObj[i],path);}
    } 
  },
  generatePath : function () {
    if (this.generated) return;
    this.generateLocaMarkers();
    //var path = (vidteq.scriptBased)?_serverHostUrl+"images/":"http://img."+document.location.hostname+"/";
    var path = (vidteq.scriptBased)?_serverHostUrl+"images/":"images/";
    if(vidteq.vs) path="../images/";
    this.transferPath(0,this,this.nonThemed,path);
    delete this.nonThemed;
    if(vidteq.account && vidteq.theme!='none') {
      path+="themes/"+vidteq.theme+"/";
    }
    if(typeof(OpenLayers)!='undefined') OpenLayers.ImgPath=path+"ol/";
    this.transferPath(0,this,this.themed,path);
    delete this.themed;
    if(MSIE6) { 
      path=path+"ie6/"; 
      this.transferPath(0,this,this.MSIE6,path);
    }
    delete this.MSIE6;
    this.generated = true;
  }  
};

function call_state(stringResponse) {
  mboxObj.moveCarTo.apply(mboxObj,[stringResponse]);
  fvtObj.changeTextDirectionIfNeeded.apply(fvtObj,[stringResponse]);
}

function putNameBanner(index,quadrant) {
  pObj=lonLatObjFrmPoint(locations.wkt[index]);
  var px=map.getPixelFromLonLat(pObj)  
  px.x-=4
  px.y-=4
  var height=50
  var width=locations.newAddress[index].name.length*8
  var tipHtml=function (img,rl) {
    return "<div style='height:20px;background-color:none;'><img style='float:"+rl+";' src='images/ol/popupTip"+img+".png' /></div>"
  }
  var html="<b class='b1f' style='background-color:"+mainColor+";'></b><b style='background-color:"+mainColor+";' class='b2f'></b><b style='background-color:"+mainColor+";' class='b3f'></b><b style='background-color:"+mainColor+";' class='b4f'></b>"
  html+="<div style='background-color:#21598C;padding:2px 6px 2px 6px;'><div style='padding-left:2px;background-color:white;width"+width+"px;height:16px'>"
  html+="<a  class='simple'>"+locations.newAddress[index].name+"</a>"
  html+="</div></div>"
  html+="<b class='b4f' style='background-color:"+mainColor+";'></b><b class='b3f' style='background-color:"+mainColor+";'></b><b class='b2f' style='background-color:"+mainColor+";'></b><b class='b1f'style='background-color:"+mainColor+";'></b>"
  switch (quadrant) {
  case "nw":
    html=html+tipHtml("NW","right")
    break;
      case "ne":
      html=html+tipHtml("NE","left")
      break;
      case "se":
      html=tipHtml("SE","left")+html
      break;
      case "sw":html=tipHtml("SW","right")+html
      break;
      }
var flink="flink"+index
ioAreaObj.flink.Popup[index]=new OpenLayers.Popup(flink, new OpenLayers.LonLat(pObj.lon,pObj.lat),new
    OpenLayers.Size(width,height),html,false);
    ioAreaObj.flink.Popup[index].updatePosition=function() {
        if ((this.lonlat) && (this.map)) {
            var px = this.map.getLayerPxFromLonLat(this.lonlat);
      switch (quadrant) {
      case "nw":px.x-=width;px.y-=height;break;
      case "ne":px.y-=height;break;
      case "se":break;
      case "sw":px.x-=width;break;
      }
      if (px) {
                this.moveTo(px);           
            }    
        }
    }
    //ioAreaObj.flink.Popup[index].relativePosition="tl"
    map.addPopup(ioAreaObj.flink.Popup[index])
    $('#'+flink)[0].style.backgroundColor="";
    $('#'+flink+'_contentDiv')[0].style.height=$('#'+flink+'_GroupDiv')[0].style.height=$('#'+flink)[0].style.height='50px';
    $('#'+flink+'_contentDiv')[0].style.padding=$('#'+flink+'_GroupDiv')[0].style.padding=$('#'+flink)[0].style.padding='0px';
    $('#'+flink+'_contentDiv')[0].style.width=$('#'+flink+'_GroupDiv')[0].style.width=$('#'+flink)[0].style.width=width+'px';
    
}

function swfready () {
    var myVar = fvtObj.swfready.apply(fvtObj,[]);
                      }  // TBD check
//function swfready () {
//  var g=gECIndex;
//  if(expaCollapse) {
//  expaCollapse=false;  
//  textSync(g,"no");
//  return g;
//  }
//  else { return 0; }
//}

function demoFilename () {
  $.ajax({url:demoListUrl,success:sendDemoFiles}); 
}

function sendDemoFiles(response){
  response = JSON.parse(response);
  var demoFileName = [];
  if(response.demofiles != null) {
    demoFileName = response.demofiles;
  } else {
    demoFileName.push('ads/flv/zero.flv');
  }
  try {getMovieNameNew("demoVideo").playDemo(demoFileName);} catch (e) { }
}

function getMovieNameNew(movieName) {
  if (navigator.appName.indexOf("Microsoft") != -1) {
    return window[movieName];
  } else {
    return document[movieName];
  }
}

function getObjectVideo() {
  return ioAreaObj.response;
}

function getDirections(str) {
  return arrows;
}

function getBwCtrlUrl(){
  if(typeof(videoUrlLb) == 'undefined') {
    return "zero";
  } else {
    return videoUrlLb;
  }
}

function debugOn(){
  return debug;
}

function getMovieName(movieName) {
  if (navigator.appName.indexOf("Microsoft") != -1) {
    return window[movieName]
  } else {
    return document[movieName]
  }
}

function showComWindow() {
}

var isMapXpanded = false;

function changeLayout() {
  if(isMapXpanded) { 
    document.getElementById('mapexpand').innerHTML='Expand';
    fvtObj.undoExpandMapPopVideo.apply(fvtObj,[]); 
    document.getElementById("synctable").className="sync";
    mboxObj.undoExpandMapPopVideo.apply(mboxObj,[]); 
    ioAreaObj.toggleButtons({'minvideo':false});
    isMapXpanded=false;
  } else { 
    document.getElementById('mapexpand').innerHTML='Collapse';
    document.getElementById("synctable").className="syncxpand";
    fvtObj.expandMapPopVideo.apply(fvtObj,[]); 
    mboxObj.expandMapPopVideo.apply(mboxObj,[]); 
    ioAreaObj.toggleButtons({"minvideo":true});
    isMapXpanded=true;
  }
}

function undoExpandMapPopVideo() {
  isMapXpanded=false;
  expaCollapse=true;  
  expandIndex = globalTextIndex;
  document.getElementById('mapexpand').innerHTML='Expand';
  var elementVar=document.getElementById('videoTd');
  elementVar.className='videosync';
  elementVar.style.position='relative';
  elementVar.style.left='';
  elementVar.style.top='';
  document.getElementById('mapTd').height=500+"px";
  document.getElementById('map').style.height=525+"px";
  document.getElementById("synctable").className="sync";
  document.getElementById('VideoPlayerDiv').innerHTML=(fvtObj.vidPlayerHTML==undefined)?'':fvtObj.vidPlayerHTML;
  ioAreaObj.toggleButtons({'minvideo':false});
  if(document.getElementById('maxvideo')) document.getElementById('maxvideo').style.display="none";
  if(document.getElementById('videoTd').style.visibility=='hidden') {
    getBackVideoTd.call(this);
  }
  if(mboxObj.routeActive) {
    mboxObj.fitCurrentRoute.apply(mboxObj,[]);
    gECIndex=expandIndex;
  } else {
    document.getElementById('VideoPlayerDiv').innerHTML='';
    mboxObj.map.panTo(new OpenLayers.LonLat(lon,lat));
    mboxObj.map.zoomTo(0);
  }
// TBD
//if(biasWmsLayer){
//  map.removeLayer(biasWmsLayer);
//      map.removeLayer(ioAreaObj.bias.biasMarkerLayer);
//      vidteq.bias.biasMarkerLayer=null;
//      vidteq.bias=null;
//      map.layers[1].setOpacity(1)
//      document.getElementById('map').title='Right Click on Map for more options';
//      removeBiasLegend();
//      //$('#biaslink')[0].onclick=biasMap;
//  
//  }
}

function expandMapPopVideo() {
  expaCollapse=true;
  expandIndex = globalTextIndex;
  isMapXpanded=true;
  document.getElementById('mapexpand').innerHTML='Collapse';
  var elementVar=document.getElementById('videoTd');
  //elementVar.style.borderLeft="0px solid white";
  elementVar.className='popped';
  Drag.init(elementVar);
  elementVar.style.borderLeft.colorValue='#FFCC00';
  elementVar.style.position='absolute';
  elementVar.style.left=(document.body.offsetWidth/2)-240+"px";
  elementVar.style.top=(document.body.offsetHeight/2)-175+"px";
  elementVar.style.zIndex=40000;
  document.getElementById("synctable").className="syncxpand";
  //document.getElementById('mapTd').height=document.body.offsetHeight-450+"px";
  //document.getElementById('map').style.height=document.body.offsetHeight-450+"px";
  ioAreaObj.toggleButtons({"minvideo":true});
  document.getElementById('maxvideo').style.display="none";
  if(mboxObj.routeActive) {
    mboxObj.fitCurrentRoute.apply(mboxObj,[]);
    gECIndex=expandIndex;
  } else {
    document.getElementById('VideoPlayerDiv').innerHTML='';
    mboxObj.map.panTo(new OpenLayers.LonLat(lon,lat));
    mboxObj.map.zoomTo(0);
    clearVideoTd();
  }  
}

function clearVideoTd() {
  expaCollapse=true;  
  //vidPlayerHTML=document.getElementById('VideoPlayerDiv').innerHTML;
  expandIndex = globalTextIndex;
  gECIndex=expandIndex;
  document.getElementById('VideoPlayerDiv').innerHTML='';
  document.getElementById('videoTd').style.visibility='hidden';
  document.getElementById('maxvideo').style.display="block";
  document.getElementById('maxvideo').onclick=getBackVideoTd;
}

function getBackVideoTd() {
  document.getElementById('VideoPlayerDiv').innerHTML=(fvtObj.vidPlayerHTML==undefined)?'':fvtObj.vidPlayerHTML;
  document.getElementById('maxvideo').style.display="none";
  document.getElementById('videoTd').style.visibility='visible';
  if(this.id!='govidoption' && this.id!='mapexpand') {
    expaCollapse=true;  
  //swfAwake=setInterval(function () { textSync(expandIndex); },500);
  }
}

function reRequestKey() {
  var keyUrl=(vidteq.scriptBased)?(_serverHostUrl):'';  
  $.get(keyUrl+"vs/key.php?request=true",function (newKey) {vidteq.key=newKey;});
}

function checkEmailId(str) {
    var at="@"
    var dot="."
    var lat=str.indexOf(at)
    var lstr=str.length
    var ldot=str.indexOf(dot)
    if (str.indexOf(at)==-1){
       alert("Invalid E-mail ID")
       return false
    }
    if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
       alert("Invalid E-mail ID")
       return false
    }

    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        alert("Invalid E-mail ID")
        return false
    }

     if (str.indexOf(at,(lat+1))!=-1){
        alert("Invalid E-mail ID")
        return false
     }

     if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
        alert("Invalid E-mail ID")
        return false
     }

     if (str.indexOf(dot,(lat+2))==-1){
        alert("Invalid E-mail ID")
        return false
     }

     if (str.indexOf(" ")!=-1){
        alert("Invalid E-mail ID")
        return false
     }
      return true
}

function page2Process () {
  var mWidth;
  if(!ioAreaObj.newUi) {
    //document.getElementById("homebottom").style.display='none';
    $('#dynamicDiv')[0].style.backgroundColor='#21598C';
    document.getElementById("input_area").style.height='95px';
  } else {
    $('#ps_link')[0].innerHTML=''   
    mWidth=parseInt(($('#body')[0].offsetWidth)*0.98)+'px';
    $('#maintd')[0].style.width=$('#main')[0].style.width=mWidth; 
    try {
      $('#routedetails')[0].style.width=0.95*parseInt(mWidth)+"px";
      $('#routedetails')[0].style.textAlign="center";
      fvtObj.applyEventsSwfPlayer.apply(fvtObj,[]); 
    } catch (e) {}
    try {$('#leftcolumntop')[0].style.width=parseInt(mWidth)-60+"px"; 
    $('#leftcolumntop')[0].style.backgroundColor="#FFFFFF";} catch (e) {}
    try {$('#leftcolumn')[0].style.marginLeft=(parseInt(mWidth)-parseInt($('#leftcolumn')[0].style.width))/2+"px";} catch (e) { };
    //$('#trail_01')[0].style.width=mWidth;
    //$('#synctopcurve')[0].style.width="600px";
    //$('#dynamicDiv')[0].style.marginLeft=20+"px";
     $('#dynamicDiv')[0].style.width=0.98*parseInt(mWidth)+"px"; 
    //$('#dynamicDiv')[0].style.paddingLeft=(parseInt(mWidth)-parseInt($('#dynamicDiv')[0].style.width))/2+"px";
    $('#rightcolumn')[0].style.width=0.98*parseInt(mWidth)+"px";
    $('#maintd')[0].style.paddingLeft=(parseInt(mWidth)-parseInt($('#dynamicDiv')[0].style.width))/2+"px";  
    $('#dynamicDiv')[0].style.backgroundColor="#FFFFFF";
    $('#dynamicDiv')[0].style.textAlign="center";
    //$('#leftmosttd')[0].style.width='16px';
    //$('#trail_05')[0].style.width=parseInt(mWidth)+"px";
    $('#Table_01')[0].style.width=parseInt(mWidth)+"px";
    $('#Table_01')[0].width=parseInt(mWidth);
    $('#image')[0].style.display='none';
    //$('#synctable')[0].style.backgroundColor='#21598C';
  }  
  $('#vidlogo')[0].style.cursor='pointer';
  $('#vidlogo')[0].onclick=function () {document.location.href=".";};
  var a=(parseInt(mWidth)-802)/2;
  a=(a>184)?(a):0;
  $('#inputcover')[0].style.paddingLeft=((a>0)?(a):0)+"px";
  $.get('vs/ads.php?f=weekender1',function (data) {
            $('#bottomAd')[0].style.display='block';
            $('#topAd')[0].style.display='block';
            $('#bottomAd').html(data);
        });
}  

function timedComDivClose (seconds) {
  $('#comdiv')[0].innerHTML="<div style='text:align:center;'><p style='font-size:14px; text-align:center'>Sending and closing in "+seconds+" seconds</p></div>";
}

function textChange(textIndex) {
  fvtObj.changeTextDirection.apply(fvtObj,[textIndex]);
}

/********************************
 * Functions for Embed Apps TBD *
 * ******************************/
function lonLatObjFrmPoint(point) {
  if(point) {
  var temp=point.replace(/POINT\(/,"");
  temp=temp.replace(/\)/,"");
  temp=temp.replace(/\,/," ");
  var pt=temp.split(" ");
  var p={};
  p.lon=parseFloat(pt[0]);
  p.lat=parseFloat(pt[1]);
  return p;}
  else {return null;}
}

function userDetailsPopup () {
    if(typeof(accountDetails) =='undefined' || typeof(accountDetails.config.intrCredCookieTime) == 'undefined') return;
    if(accountDetails.config.intrCredCookieTime == 0 ) return;
    if(!readCookie(accountDetails.account+'_contactinfo')) {
    noOfQuestions=3;
    var force=0;
    if(parseInt(accountDetails.config.intrCredForce)) {
        force=1;
    }
    $.get('feedback/userinfo.html',function (content) {
              ioAreaObj.popup=(new PopUpWindow(2.2,undefined,force));
              ioAreaObj.popup.showContents({
              headerHtml:"May we get in touch with you?",
              innerDivHtml:content
              });
            $('#detailsSubmit')[0].onclick=function () {
                    if(!checkEmailId($('#q2-ans')[0].value)) {
                        return 0;
                    }
                    if($('#q3-ans')[0].value.length >=6 && $('#q3-ans')[0].value.match(/^[0-9]*$/)) {
                    sendFeedback(noOfQuestions);
                    ioAreaObj.showSendingPrompt();
                    }
                    else {
                        alert('Please enter a valid phone number')
                        return 0;
                    }
                }
            }
    );
    writeCookie(accountDetails.account+'_contactinfo',true,accountDetails.config.intrCredCookieTime);    
    } 
}

function attachTabs () {
  var noOfQuestions=0;
  // special blocate first time rule
  if (typeof(accountDetails.config.pfLayer)!= 'undefined' && parseInt(accountDetails.config.pfLayer)) {
    prepareProposedTab();  
  }
  if(accountDetails.feedbackemail && accountDetails.feedbackemail !='') {
    var feedbackUrl='feedback/feedback_vidteq.html';
    if(ioAreaObj.embed.wayfinder)  {
        feedbackUrl='feedback/feedback_wayfinder.html';
        noOfQuestions=6;
    }
    if(ioAreaObj.embed.blocate)  {
        feedbackUrl='feedback/feedback_evisit.html';
        noOfQuestions=13;
    }
    if(ioAreaObj.embed.locateStores) {
        feedbackUrl='feedback/feedback_storelocator.html';
        noOfQuestions=9;
    }
    $('#feedbackhref')[0].onclick=function () {
      $.get(feedbackUrl,function (content) {
        ioAreaObj.embed.feedbackContent=content;
        ioAreaObj.popup=(new PopUpWindow(1.7));
        var feedbackHeaderMessage="We take our customer’s feedback very seriously in making constant improvements to our service. Please take a moment to tell us how you feel about this service. Thank you!!";
        
        if(accountDetails.q == 'wayfinder') {
            feedbackHeaderMessage="Please provide your Feedback.";
        }

        ioAreaObj.popup.showContents({
          headerHtml:feedbackHeaderMessage,
          innerDivHtml:ioAreaObj.embed.feedbackContent
        });
        $('#messageDiv')[0].style.display='none';
        //$('#innerDiv')[0].style.width="100%"
        //$('#innerDiv')[0].style.height="100%";
        $('#innerDiv')[0].style.padding="10px";
        //$('#headerDiv')[0].style.padding="5px";
        //$('#headerDiv')[0].style.height="15px";
         $("#feedback_submit")[0].onclick=function () {
            sendFeedback(noOfQuestions,1);
        }
      });
      if(typeof(__experimentalUI)!='undefined' && __experimentalUI) {
          ioAreaObj.selectInTopPanel('div_feedbackhref');
      }
     
    }
  } else  {
    if (typeof($('#feedbackhref')[0]) != 'undefined') { $('#feedbackhref')[0].style.display='none'; }
    if (typeof($('#feedbackdiv')[0]) != 'undefined') { $('#feedbackdiv')[0].style.display='none'; }
  }
  if(accountDetails.account == "theindiamarket") {
  $('#demohref')[0].style.display = "none";
  }
  $('#demohref')[0].onclick = function () {
    //ftrLink=prepareFtrLink('{"geom":"POINT(77.597515,12.980938)","address":{"name":"Cubbon Road"}}');
   //ftrLink=prepareFtrLink('{"start":{"geom":"POINT(77.597515,12.980938)","address":{"name":"Cubbon Road"}}}');
    //document.location.href=ftrLink;
    if(typeof(__experimentalUI)!='undefined' && __experimentalUI) {
        ioAreaObj.selectInTopPanel('div_demohref');
    }
    mboxObj.removeViaBall(); 
    if (accountDetails.demoRoute.start) { 
      if(ioAreaObj.embed.locateStores) { 
        ioAreaObj.dirFromTo('end',0,'locateStores',true); 
      }
      // TBD do we need to support via in demo ? if so how for start and end
      ioAreaObj.dirFromTo('start',1,'demoStart'); 
    }
    if (accountDetails.demoRoute.end) { 
      if(ioAreaObj.embed.locateStores) { 
        ioAreaObj.dirFromTo('start',0,'locateStores',true); 
      }
      ioAreaObj.dirFromTo('end',1,'demoEnd'); 
    }
    ioAreaObj.goVid();
  }
  
  if(!accountDetails.config.pfLayer)  {
    try {
        $('#proposedref')[0].style.display='none';
    } catch (e) {}
   }
}

function prepareFtrLink (objString) {
  var ftrLink=["http://"+document.location.host+document.location.pathname+"?urlid="];
    ftrLink.push(vidteq.urlId+'&');
    ftrLink.push('firstTimeRule=');
    ftrLink.push(objString);
    ftrLink=ftrLink.join('');
    return ftrLink;
}

function timeFeed () {
  if(readCookie(accountDetails.account+"_feedbackgiven")) return;
  if (accountDetails.feedbackpopped) return;
  //if(readCookie(accountDetails.account+"_feedbackpopped")) return;
  else {
    //writeCookie(accountDetails.account+"_feedbackpopped",true,1);
    accountDetails.feedbackpopped = 1;
    if (typeof($('#feedbackhref')[0]) != 'undefined') { $('#feedbackhref')[0].onclick(); }
  }
}

function setCustomFeedbackHeader () {
    clearInterval(__FeedbackCustomHeaderTimer);
    var timeInSecs=(parseInt(accountDetails.config.intrFeedTime))/1000;
    var timeMsg=((timeInSecs)>=60)?(timeInSecs/60)+" mins.":timeInSecs+" seconds";
    $('#headerDiv').html("<a class=style8>Dear Customer, Thanks for spending \
     "+timeMsg+" on the portal. We request you to spend another 45 seconds,\
     by completing this survey and help us serve you better.</a>");
}

function timedFeedbackCall () {
    //Forced feedback after 10 Minutes. Once he gives feedback, cookie is written and force won't happen for that account for 3 days.
    if(accountDetails.feedbackemail=='') return;
    if(typeof(accountDetails) =='undefined' || typeof(accountDetails.config.intrFeedTime) == 'undefined') return;
    if(parseInt(accountDetails.config.intrFeedTime) == 0 ) return;
    if(!readCookie(vidteq.account))
    timedFeedback=setTimeout('timeFeed()',parseInt(accountDetails.config.intrFeedTime));
}

function prepareProposedTab (){
  $('#proposed')[0].src= imagePathsObj.proposed;
  $('#proposedref').toggle (function () {
    if(typeof(__experimentalUI)!='undefined' && __experimentalUI) { ioAreaObj.selectInTopPanel('div_proposedref',1); }
    $('#proposed')[0].src= imagePathsObj.proposed_a;
    if (accountDetails.config.pfLegendW && parseInt(accountDetails.config.pfLegendW) &&
        accountDetails.config.pfLegendH && parseInt(accountDetails.config.pfLegendH)) {
      if (!self.navigator.userAgent.match(/MSIE\s[6-8]/)){
        if (typeof(accountDetails.config.pfLegendW)!='undefined'){
          $("#proposedLegend").animate({position:"absolute",width:accountDetails.config.pfLegendW,height:accountDetails.config.pfLegendH,right:"0px"},1000);
        }
      } else {
        $("#proposedLegend").addClass('proposedLegendVisible');
      }
      document.getElementById('proposedLegend').style.backgroundImage="url("+imageLogosLoc+""+ accountDetails.config.pfLegendIcon+")";
    }
    callMakePfLayer();
  },
  function () {
    if(typeof(__experimentalUI)!='undefined' && __experimentalUI) { 
      //ioAreaObj.selectInTopPanel('');
      ioAreaObj.selectInTopPanel('div_proposedref',0);
      closeAnyDropDowns();
    } 
    if (accountDetails.config.pfLegendW && parseInt(accountDetails.config.pfLegendW) &&
        accountDetails.config.pfLegendH && parseInt(accountDetails.config.pfLegendH)) {
      if (!self.navigator.userAgent.match(/MSIE\s[6-8]/)){
        $("#proposedLegend").animate({width:"0px",height:"0px",right:  "0px",position:"absolute"},1000);
      } else {
         $("#proposedLegend").removeClass('proposedLegendVisible');
      }
    }
    $('#proposed')[0].src= imagePathsObj.proposed;
    mboxObj.removePfLayer();
  });
}

function myPlaceTabPreparation() {
  $('#myPlace').show();
  $('#myPlace')[0].src=imagePathsObj.myplace;
  $('#myPlace').click(function () {
    shrinkMap();
    clearAll();
    var n=accountDetails.places.center.entity.address.name
    n=n.toString()
    fvtObj.playCustomVideo.apply(fvtObj,["B|Clearing the video",accountDetails.customVideo,accountDetails.customVideoDuration,n,"clear",true])
    fvtObj.launchVideoPlayerFirstTime.apply(fvtObj,[])
    if(ioAreaObj.embed.place.popup && ioAreaObj.embed.place.popup.open==1) mboxObj.popoutCenterPlace.apply(mboxObj,[])
    $("#directions_div").html('<div class=customcontent>'+accountDetails.customHtml+'</div>');
    $("#directions_div")[0].style.overflow='auto';
    ioAreaObj.displayMessage(inAreaObj.defaultRouteEmbedMessage);
  });
  return 0;
}

function addCalls() {
  if(typeof(__experimentalUI)!='undefined' && __experimentalUI) { 
    prepareTopPanel();
    ioAreaObj.selectInTopPanel('div_home-link');
    eventAssignments();
  }
  ioAreaObj.displayMessage(ioAreaObj.defaultRouteEmbedMessage);
  $(window).resize(function(){
     fixTheApp(); 
  });
  attachTabs();
  timedFeedbackCall();
  $('#GoVid').onclick=function () {ioAreaObj.goVid.apply(ioAreaObj,[]);}
  $('#locadiv')[0].style.overflow='auto';
  ioAreaObj.toggleButtons({'localinkhref':true});
  ioAreaObj.embed.mapShrinked=true;
  fixTheApp();
  if(!ioAreaObj.embed.hosting) {$('#map')[0].style.left="0px";}
  else {hostingCustomisations();}
  imagePathsObj.generatePath();
  mboxObj = new mbox('map','map_OpenLayers_ViewPort','javascript:ioAreaObj.invokeTheMode.apply(ioAreaObj,[])');
  ioAreaObj.initialiseInputArea(); 
  if(ioAreaObj.embed.place) {
    routeEndsObj.addByIndex(ioAreaObj.embed.fix,1,'center');
    ioAreaObj.showFixedEnd();
    if (accountDetails.account=="Arthabfs"){
      mboxObj.zoomToGivenBound(77.71882,12.80352,77.74601,12.81451);
  }
  }
  if(ioAreaObj.embed.minimap) {
    $('#input-div')[0].style.display='none';
    $('#dynamicDiv')[0].style.display='none';
    $('#map')[0].style.top='0px';
    $('#map')[0].style.height=parseInt($('#map')[0].style.height)+ioAreaObj.embed.inputPanelHeight+"px";
  }
  firstTimeRuleInvoke();
  fvtObj.applyEventsSwfPlayer.apply(fvtObj,[]);
  try {
    $('#feedbackimage')[0].src=(accountDetails.q=='wayfinder')?imagePathsObj.feedback_v:imagePathsObj.feedback_h;
    $('#demoimage')[0].src=imagePathsObj.demo;
  } catch (e) {}
  if(accountDetails.customVideo) {
    myPlaceTabPreparation();
  }
  if(accountDetails.landmarkRoutes) {
    if(typeof(__experimentalUI)!='undefined' && __experimentalUI) { } else ioAreaObj.attachLandmarkRoutes();
  }
  if(accountDetails.q == 'blocate') {
  /*$("#collapse-parent")[0].style.display='inline';
  $("#collapse")[0].onclick = function () {
      var state=$("#dynamicDiv")[0].style.display;
      if(state == 'block') {
        $('#dynamicDiv').hide('slow');
        $("#collapse").html(">>");
      }
      if(state == 'none') {
        $('#dynamicDiv').show('slow');
        $("#collapse").html("<<");
      }
  }*/
  }
  if(typeof(__experimentalUI)!='undefined' && __experimentalUI) { 
    $('#driving-dir-video-link').toggle(function () {
      ioAreaObj.selectInTopPanel('div_driving-dir-video-link');
      $('#float_input_block_moved').show("slow",function(){});
      $('#driving-dir-video-link')[0].className='headlink-clicked';
      $('#div_driving-dir-video-link')[0].className = 'top-panel-height-clicked';
    },
    function () {
      ioAreaObj.selectInTopPanel(''); // TBD
      $('#float_input_block_moved').hide("slow",function(){});
      $('#driving-dir-video-link')[0].className='headlink';
      $('#div_driving-dir-video-link')[0].className = 'top-panel-height';
    });
    $('#close-float-input')[0].onclick = function () {
      closeAnyDropDowns();
    }
    //$('#bizdisplay')[0].onclick = function () {
    //  ioAreaObj.selectInTopPanel('div_bizdisplay');
    //  ioAreaObj.locateNearByBiz();
    //  $('#div_biz').show('slow',null);
    //  $('#bizdisplay')[0].className='headlink-clicked';
    //  $('#div_bizdisplay')[0].className = 'top-panel-height-clicked';
    //}
    $('#home-link')[0].onclick = function () {
      ioAreaObj.selectInTopPanel('div_home-link');
      $('#dynamicDiv').hide("slow",null);
      clearAll();
      ioAreaObj.displayMessage(ioAreaObj.defaultRouteEmbedMessage);
     
      if (accountDetails.account=="Arthabfs"){
      mboxObj.zoomToGivenBound(77.71882,12.80352,77.74601,12.81451);
  }
   ioAreaObj.showFixedEnd();
    }
    
    /*  $('#min-input')[0].onclick = function () {
        $('#input-div').hide("slow");
    }
    $('#max-input')[0].onclick = function () {
        $('#input-div').show("fast");
    } */
  }
}

function writeIoBlockNewUI () {
  $('#div_driving-dir-video-link').append("<div id=float_input_block_moved class=top-drop-down-float-wide>"+$('#float_input_block').html()+"</div>");
  var boxImage = { url:imagePathsObj.refBox, cornerW:10, cornerH:10, boxW:510, boxH:378, offsetW:0, offsetH:0 };
  boxify(boxImage,'float_input_block_moved',{tc:parseInt($('#div_driving-dir-video-link').outerWidth())+1,mc:1,rt:1,lb:1,rb:1});  // 1 px is divider stuff
  $('#float_input_block').html('');
}

function attachLandmarkRoutesNewUI() {
  var opt="<div id='lr_div' class=top-drop-down-float><ul id='ul-dropdown' class='drop-down'>";
  var count=0;
  for(var i in accountDetails.landmarkRoutes) {
    opt+='<li id='+count+'__landmark_route class=drop-down-list>'; //+ ioAreaObj.embed.place.address.name;
    opt+='<a  class=headlink-drop-down>'+accountDetails.landmarkRoutes[i].address.name+'</a>';
    opt+='</li>';
    count++;
  }
  $('#div_landmarkroutes').append(opt+"</ul></div>");
  var boxImage = { url:imagePathsObj.refBox, cornerW:10, cornerH:10, boxW:510, boxH:378, offsetW:0, offsetH:0 };
  boxify(boxImage,'lr_div',{tc:parseInt($('#div_landmarkroutes').outerWidth())+1,mc:1,rt:1,lb:1,rb:1});
  var totalCount=count;
  for(count=0;count<totalCount;count++) {
    $('#'+count+'__landmark_route')[0].onclick=function () {
      var index=parseInt(this.id);
      if(accountDetails.landmarkRoutes[index].via) {
        for(var i in accountDetails.landmarkRoutes[index].via) {
          mboxObj.placeViaBallMarker(accountDetails.landmarkRoutes[index].via[i]);
        }
      }
      //var strRep=JSON.stringify(accountDetails.landmarkRoutes[index]);
      //strRep = "{\""+ioAreaObj.embed.other+"\":"+strRep+"}";
      //document.location.href=prepareFtrLink(strRep);
      mboxObj.removeViaBall();
      if (accountDetails.landmarkRoutes[index].via) {
        for (var i in accountDetails.landmarkRoutes[index].via) {
          var jj =  accountDetails.landmarkRoutes[index].via[i].split(' ');
          var j = new OpenLayers.LonLat(jj[0],jj[1]);
          mboxObj.placeViaBallMarker.apply(mboxObj,[j])
        }
      }
      ioAreaObj.dirFromTo('start',index,'landmarkRoutes');
      ioAreaObj.goVid();
    }
  }
  
  $('#landmarkroutes').click(function () {
    if($('#lr_div')[0].style.display=='block') {
      ioAreaObj.selectInTopPanel('');
      $('#lr_div').hide('slow',null);
      $('#landmarkroutes')[0].className='headlink';
      $('#div_landmarkroutes')[0].className = 'top-panel-height';
    } else {
      ioAreaObj.selectInTopPanel('div_landmarkroutes');
      $('#lr_div').show('slow',null);
      $('#landmarkroutes')[0].className='headlink-clicked';
      $('#div_landmarkroutes')[0].className = 'top-panel-height-clicked';
    }
  });
  return;
}

function writeCategoryNewUI () {
  var catList  = ioAreaObj.embed.blocate.allowedCategoryList;
  if (typeof(catList[0]) == 'undefined' ||
      typeof(catList[0].name) == 'undefined') {
    var newVar = [];
    for(var i in catList) {
      newVar.push({name:i,categoryList:catList[i],sortby:accountDetails.config.sortby || 'priority'});
    }
    catList = newVar;
  }
  var width=0.75*parseInt(ioAreaObj.embed.vidWidth)-10+"px"
  var categoryDropDown="";
  categoryDropDown+="<ul id='ul-dropdown' class='drop-down'>";
  for(var i in catList) {
    var id=catList[i].name.replace(/\s+/g,"_");
    categoryDropDown+="<li id='"+id+"' onclick='ioAreaObj.invokeBizSearch(null,{\"categoryList\":\""+catList[i].categoryList+"\",\"name\":\""+catList[i].name+"\",\"sortby\":\""+catList[i].sortby+"\"});closeAnyDropDowns();' class=drop-down-list ><a id='"+id+"' class=headlink-drop-down>"+catList[i].name+"</a></li>";
    //if (typeof(catList[0]) != 'undefined') {
    //  var id=catList[i].replace(/\s+/,"_");
    //  categoryDropDown+="<li id='"+id+"' onclick=ioAreaObj.invokeBizSearch(null,{categoryList:"+catList[i]+",name:"+i+"}) class=drop-down-list>";
    //  categoryDropDown+="<a id='"+id+"' class=headlink-drop-down>"+catList[i]+"<a></li>";
    //} else {
    //  var id=i.replace(/\s+/g,"_");
    //  categoryDropDown+="<li id='"+id+"' onclick='ioAreaObj.invokeBizSearch(null,{\"categoryList\":\""+catList[i]+"\",\"name\":\""+i+"\"});closeAnyDropDowns();' class=drop-down-list ><a id='"+id+"' class=headlink-drop-down>"+i+"</a></li>";
    //}
  }
  categoryDropDown+="</ul>";
  $('#div_biz').append(categoryDropDown);
  var boxImage = { url:imagePathsObj.refBox, cornerW:10, cornerH:10, boxW:510, boxH:378, offsetW:0, offsetH:0 };
  boxify(boxImage,'div_biz',{tc:parseInt($('#div_bizdisplay').outerWidth())+1,mc:1,rt:1,lb:1,rb:1});
  $('#bizdisplay')[0].onclick = function () {
    ioAreaObj.selectInTopPanel('div_bizdisplay');
    ioAreaObj.locateNearByBiz();
    $('#div_biz').show('slow',null);
    $('#bizdisplay')[0].className='headlink-clicked';
    $('#div_bizdisplay')[0].className = 'top-panel-height-clicked';
    $('#bizdisplay')[0].onclick=null;
    $('#bizdisplay').click(function () {
      if($('#div_biz')[0].style.display=='block') {
        ioAreaObj.selectInTopPanel('');
        $('#div_biz').hide('slow',null);
        $('#bizdisplay')[0].className='headlink';
        $('#div_bizdisplay')[0].className = 'top-panel-height';
      } else {
        ioAreaObj.selectInTopPanel('div_bizdisplay');
        $('#div_biz').show('slow',null);
        $('#bizdisplay')[0].className='headlink-clicked';
        $('#div_bizdisplay')[0].className = 'top-panel-height-clicked';
      }
    });
    return false;
  };
}

function prepareTopPanel() {
  var elems =[{
    "id":"home-link",
    "text":"Map Home"},
   {"id":"driving-dir-video-link",
    "text":"Driving Directions in Video",
    "dropDown":'float_input_block_moved',
    "dropDownCreator": writeIoBlockNewUI
   },
   {"id":"bizdisplay",
    "text":"What's Nearby",
    "dropDown":'div_biz',
    "dropDownCreator": writeCategoryNewUI
   },
   {"id":"landmarkroutes",
    "text":"Landmark Routes",
    "dropDown":'lr_div',
    "dropDownCreator": attachLandmarkRoutesNewUI,
    "check": function () {
      if(accountDetails.landmarkRoutes && accountDetails.landmarkRoutes.length) return true; else return false;
   }},
   {"id":"proposedref",
    "text":"Proposed development",
    "check":function () {
      if (accountDetails.config.pfLayer && parseInt(accountDetails.config.pfLayer)) return true; else return false;
   }},
   {"id":"demohref",
    "text":"Demo"},
   {"id":"feedbackhref",
    "text":"Feedback",
    "check":function () {
      if(accountDetails.feedbackemail && accountDetails.feedbackemail !='') return true; else return false;
    }
   }
  ];
  ioAreaObj.embed.topPanelLinks=elems;
  var first = -1;
  for(var i in elems) {
    if (elems[i].check && !elems[i].check()) continue;
    if (first == -1) { first = i; }
    if(i>first) {
      $('#ul-top-panel').append("<li class='topWidget' ><div class='top-panel-height-separator'></div></li>");
    }
    $('#ul-top-panel').append("<li class='topWidget'><div id=div_"+elems[i].id+" class='top-panel-height'><a class='headlink' id="+elems[i].id+">"+elems[i].text+"</a></div></li>");
    if(elems[i].id=='bizdisplay') {
      $('#div_bizdisplay').append("<div id='div_biz' class=top-drop-down-float-wide ></div>");
    }
    if (elems[i].dropDownCreator) { elems[i].dropDownCreator(); }
    //if(i!=(elems.length-1)) {
    //  $('#ul-top-panel').append("<li class='topWidget' ><div class='top-panel-height-separator'></div></li>");
    //}
  }
  $('#top-panel-div').width((parseInt($('#ul-top-panel').width())+10)+'px');
}

function closeAnyDropDowns () {
  var dropDownCheck = ioAreaObj.embed.topPanelLinks;
  for (var i in dropDownCheck ) {
    if (!dropDownCheck[i].dropDown) continue;
    if(typeof($('#'+dropDownCheck[i].dropDown)[0])!='undefined' && 
       $('#'+dropDownCheck[i].dropDown)[0].style.display == 'block') {
      $('#'+dropDownCheck[i].id).click();
    }
  }
}

function fixTheApp () {
  //console.log("document height is ");
  //console.log($(document).height());
  //alert($(document).height());
  //alert($(window).height());
  //alert($('#input-div').height());
  //alert($('#map').height());
  var inputHeight=$('#input-div').height();
  if(typeof(__experimentalUI)!='undefined' && __experimentalUI) { 
  //    inputHeight=0;
   //   $('#input-div').height($(window).height());
      //$('#input-div').width(0.8*$(window).width);
  }
  $('#map')[0].style.height=$(window).height()-inputHeight+"px";
  $('#map')[0].style.width=typeof(ioAreaObj.embed.width)!='undefined'?ioAreaObj.embed.width+"px":"100%";
  $('#main')[0].style.width="100%";
  $('#locadiv')[0].style.height=$('#dynamicDiv')[0].style.height=parseInt($('#map')[0].style.height)+"px";;
}

function firstTimeRuleInvoke () {
  if(ioAreaObj.embed.wayfinder && ioAreaObj.embed.firstTimeRule) {
    // bus route first time rules are allowed only in wayfinder
    if(ioAreaObj.embed.firstTimeRule.name=='BusRoute') {
      $('#inputtable')[0].style.display='none';
      $('#helpmesg')[0].style.display='none';
    }
    if(ioAreaObj.embed.firstTimeRule.nameHeader) {
      //$('#inputtable')[0].innerHTML='';
      $('#helpmesg')[0].style.display='inline';
      $('#helpmesg')[0].innerHTML=ioAreaObj.embed.firstTimeRule.nameHeader;
      //$('#inputtable')[0].style.display='block';  
    }
    if (ioAreaObj.embed.firstTimeRule.busId) {
      ioAreaObj.getBusRoute(ioAreaObj.embed.firstTimeRule.busId);
      $('#inputtable')[0].style.display='none';
      $('#helpmesg')[0].style.display='none';
      return;
    }
  }
  if((ioAreaObj.embed.wayfinder || ioAreaObj.embed.blocate) && ioAreaObj.embed.firstTimeRule) {
    // start end first time rules are allowed in wayfinder and blocate
    if (ioAreaObj.embed.firstTimeRule.start) {
      var lonLat=lonLatObjFrmPoint(ioAreaObj.embed.firstTimeRule.start.geom);
      if (ioAreaObj.embed.firstTimeRule.start.address && ioAreaObj.embed.firstTimeRule.start.address.name) {
        ioAreaObj.dirFromTo('start',1,'ftrStart');
      } else { 
        ioAreaObj.dirFromTo('start',-1,lonLat);
      }
      if(ioAreaObj.embed.firstTimeRule.start.via) {
          for(var i in ioAreaObj.embed.firstTimeRule.start.via) {
              mboxObj.placeViaBallMarker(ioAreaObj.embed.firstTimeRule.start.via[i]);
          }
      }
      ioAreaObj.invokeTheMode();
      if(ioAreaObj.embed.blocate) { 
        if(!__experimentalUI) {
            ioAreaObj.toggleButtons({"locality":true});
            $('#bizdisplay')[0].style.display='block';
            $('#locality')[0].style.display='block';
        }
      }
      return;
    } else if (ioAreaObj.embed.firstTimeRule.end) {
      var lonLat=lonLatObjFrmPoint(ioAreaObj.embed.firstTimeRule.end.geom);
      if (ioAreaObj.embed.firstTimeRule.end.address && ioAreaObj.embed.firstTimeRule.end.address.name) {
        ioAreaObj.dirFromTo('end',1,'ftrEnd');
      } else { 
        ioAreaObj.dirFromTo('end',-1,lonLat);
      }
      if(ioAreaObj.embed.firstTimeRule.start.via) {
          for(var i in ioAreaObj.embed.firstTimeRule.start.via) {
              mboxObj.placeViaBallMarker(ioAreaObj.embed.firstTimeRule.start.via[i]);
          }
      }
      ioAreaObj.invokeTheMode();
      if(ioAreaObj.embed.blocate) { 
        ioAreaObj.toggleButtons({"locality":true}); 
        $('#bizdisplay')[0].style.display='block';
        $('#locality')[0].style.display='block';
      }
      return;
    } else if (ioAreaObj.embed.firstTimeRule.geom) { // old type  Need to be deprecated
      var lonLat=lonLatObjFrmPoint(ioAreaObj.embed.firstTimeRule.geom);
      mboxObj.addRcmStartOrEndMarker.apply(mboxObj,[ioAreaObj.embed.other,lonLat]);
      ioAreaObj.invokeTheMode();
      if(ioAreaObj.embed.firstTimeRule.address.name) document.GetVal[ioAreaObj.embed.other].value=ioAreaObj.embed.firstTimeRule.address.name;
      if(ioAreaObj.embed.blocate) { 
        ioAreaObj.toggleButtons({"locality":true}); 
        $('#bizdisplay')[0].style.display='block';
        $('#locality')[0].style.display='block';
      }
      return;
    }
  }
  if(ioAreaObj.embed.blocate) {
    // special blocate first time rule
    //Locadiv not to be shown anymore . 
    if(!__experimentalUI) {
      ioAreaObj.locateNearByBiz();
      ioAreaObj.toggleButtons({"locality":true});
    }
    return;
  }
  if(ioAreaObj.embed.locateStores) {
    if (ioAreaObj.embed.firstTimeRule) {
      // TBD case of start and end should be handled
      // First get the store of interest and then do routing
      // Following is the default case - old type firstTimeRule
      // Following control flow is completely wrong - needs TBD
      if (ioAreaObj.embed.firstTimeRule.start) {
        var lonLat=lonLatObjFrmPoint(ioAreaObj.embed.firstTimeRule['start'].geom);
        mboxObj.rcmLonlat=lonLat;  // TBD - dont alter the property of a class
        ioAreaObj.locateNearByStoresByIndex(-1,'start');
      } else {
        var lonLat=lonLatObjFrmPoint(ioAreaObj.embed.firstTimeRule['end'].geom);
        mboxObj.rcmLonlat=lonLat;  // TBD - dont alter the property of a class
        ioAreaObj.locateNearByStoresByIndex(-1,'end');
      }
      ioAreaObj.timeInterval=setInterval('delayedGovid()',5);
      return;
    } else { // no first time rule case
      ioAreaObj.toggleButtons({"stores":true});
      ioAreaObj.embed.locateStores.myLocStr = 'center of city';
      ioAreaObj.locateNearByStores('POINT('+globalLon+' '+globalLat+')',true);
      return;
    }
  }
}

function delayedGovid () {
    if(ioAreaObj.searchComplete) {
    clearInterval(ioAreaObj.timeInterval);
    ioAreaObj.goVid();
    return true;
    }
    else return 0;
}

function eventAssignments() {
  $('#GoVid')[0].src=imagePathsObj.govid;   
  $('#swaptd')[0].src=imagePathsObj.swap;   
  $('#starttextbox')[0].onkeyup=function () {ioAreaObj.suggestMatches($('#starttextbox')[0]);return false;};
  $('#endtextbox')[0].onkeyup=function () {ioAreaObj.suggestMatches($('#endtextbox')[0]);return false;};
  if($('#body')[0]) {
    $('#body')[0].onkeydown=function (e) {e=e?e:window.event;ioAreaObj.checkKeyEvents(e);return true;};
    $('#body')[0].onclick=function () {ioAreaObj.clearSuggestDiv($('#sugdivstart')[0]);ioAreaObj.clearSuggestDiv($('#sugdivend')[0])};
  }
  $('#starttextbox')[0].onclick=function () {ioAreaObj.clickTextbox($('#starttextbox')[0]);};
  $('#endtextbox')[0].onclick=function () {ioAreaObj.clickTextbox($('#endtextbox')[0]);};  
  $('#starttextbox')[0].onfocus=function (){ioAreaObj.focusTextbox($('#starttextbox')[0]);};
  $('#endtextbox')[0].onfocus=function (){ioAreaObj.focusTextbox($('#endtextbox')[0]);};  
  $('#starttextbox')[0].onblur=function (){ioAreaObj.blurTextbox($('#starttextbox')[0]);};
  $('#endtextbox')[0].onblur=function (){ioAreaObj.blurTextbox($('#endtextbox')[0]);};  
  $('#swaptd')[0].onclick=function () {ioAreaObj.swapRoute();return false;};
  $('#GoVid')[0].onclick=function () {ioAreaObj.goVid();return false;};
  var tabs = ['clearroutetab','emailtab','smstab','printtab','localinkhref','minvideo'];
  for (var i in tabs) {
    var elem = $('#'+tabs[i])[0];
    if (typeof(elem) == 'undefined') {continue;}
    elem.onmouseover=function () {
      if(typeof(__experimentalUI)!='undefined' && __experimentalUI) {
        //if(this.className!='maptabdisabled1') this.className='maptabhover1';
      } else  {
        if(this.className!='maptabdisabled') this.className='maptabhover';
      }
    }
    elem.onmouseout=function () {
      if(typeof(__experimentalUI)!='undefined' && __experimentalUI) {
        //if(this.className!='maptabdisabled1') this.className='comlink';
      } else {
        if(this.className!='maptabdisabled') this.className='maptab';
      }
    }
  }
}
function eventAssignmentsForIndex() {
  $('#locationtabtext')[0].onclick=function () {ioAreaObj.selectMode('LOCATE');return false;};
  $('#routetabtext')[0].onclick=function () {ioAreaObj.selectMode('ROUTE');return false;};
  $('#starttextbox')[0].onkeyup=function () {ioAreaObj.suggestMatches($('#starttextbox')[0]);return false;};  // same
  $('#endtextbox')[0].onkeyup=function () {ioAreaObj.suggestMatches($('#endtextbox')[0]);return false;};  // same
  $('#body')[0].onkeydown=function (e) {e=e?e:window.event;ioAreaObj.checkKeyEvents(e);return true;};  // same with condition
  $('#body')[0].onclick=function () {ioAreaObj.clearSuggestDiv($('#sugdivstart')[0]);ioAreaObj.clearSuggestDiv($('#sugdivend')[0])}; // same with condition
  $('#starttextbox')[0].onclick=function () {ioAreaObj.clickTextbox($('#starttextbox')[0]);};  // same
  $('#endtextbox')[0].onclick=function () {ioAreaObj.clickTextbox($('#endtextbox')[0]);};   // same
  $('#starttextbox')[0].onfocus=function (){ioAreaObj.focusTextbox($('#starttextbox')[0]);};  // same
  $('#endtextbox')[0].onfocus=function (){ioAreaObj.focusTextbox($('#endtextbox')[0]);};  // same
  $('#starttextbox')[0].onblur=function (){ioAreaObj.blurTextbox($('#starttextbox')[0]);};  // same
  $('#endtextbox')[0].onblur=function (){ioAreaObj.blurTextbox($('#endtextbox')[0]);};  // same  
  $('#swaptd')[0].onclick=function () {ioAreaObj.swapRoute();return false;};  // same
  $('#GoVid')[0].onclick=function () {ioAreaObj.loadSync();return false;};  // different
}

function attachEvents() {
  eventAssignments();
  addCalls();
}

function hostingCustomisations() {
  $('#directions_div')[0].style.border='0px solid black';
  $('#routedetails')[0].style.borderLeft='0px solid black';
  $('#routedetails')[0].style.borderRight='0px solid black';
  var shrink=typeof(ioAreaObj.embed.shrink)!='undefined'?(ioAreaObj.embed.shrink):1;
  if(vidteq.scriptBased)
    var bodyOffsetWidth=parseInt($('#vidteq')[0].style.width);
  else 
    var bodyOffsetWidth=parseInt($('#body')[0].offsetWidth);
  ioAreaObj.embed.bigWidth=parseInt(shrink*bodyOffsetWidth);
  ioAreaObj.embed.mapShrinked=false;
  var a=returnBrowserHeightWidth();
  ioAreaObj.embed.browserHeight=(typeof(vidteq.height)!='undefined')?parseInt(vidteq.height):a.height;
  ioAreaObj.embed.browserHeight=(parseInt(ioAreaObj.embed.browserHeight)<=500)?600:ioAreaObj.embed.browserHeight;  
  ioAreaObj.embed.margins=bodyOffsetWidth-ioAreaObj.embed.bigWidth;
  ioAreaObj.embed.resized=true;
  //showCompanyHeader();
  if(!ioAreaObj.embed.showHeader) {  
    //$('#maintable')[0].style.top=ioAreaObj.embed.inputPanelHeight+"px";
  }
  $('#VideoPlayerDiv')[0].style.border='0px solid #376092';
  $('#minvideo')[0].style.display='none'
  $('#map')[0].style.border="0px solid #376092";
  ioAreaObj.embed.mapBorderWidth=parseInt($('#map')[0].style.borderWidth);
  $('#maintable')[0].style.width="100%";
  //$('#input-div')[0].style.width=$('#maintable')[0].style.width=ioAreaObj.embed.bigWidth-(ioAreaObj.embed.margins+2*ioAreaObj.embed.mapBorderWidth)+"px";
  $('#maintable')[0].style.width="100%"
  $('#map')[0].style.width="100%";
  $('#main')[0].style.textAlign='center';
}

function shrinkMap() {
if(!ioAreaObj.embed.mapShrinked) {
  $('#divider')[0].style.width="2px"; 
  //$('#dynamicDiv')[0].style.width=parseInt(ioAreaObj.embed.vidWidth)+"px";
  $('#locadiv')[0].style.height=$('#dynamicDiv')[0].style.height=parseInt($('#map')[0].style.height)+"px";
  $('#locadiv')[0].style.height=parseInt($('#locadiv')[0].style.height)-20+"px";
  //$('#directions_div')[0].style.height=parseInt($('#map')[0].style.height)-parseInt($('#comtab')[0].offsetHeight)-parseInt($('#routedetails')[0].offsetHeight)-parseInt(ioAreaObj.embed.vidHeight)-43+"px";
  if(typeof(__experimentalUI)!='undefined' && __experimentalUI) {
    // Subtract 25px for the comTab
    $('#directions_div')[0].style.height=parseInt($('#map')[0].style.height)-parseInt(ioAreaObj.embed.vidHeight)-80+"px";
  } else {
    $('#directions_div')[0].style.height=parseInt($('#map')[0].style.height)-parseInt(ioAreaObj.embed.vidHeight)-26+"px";
  }
  $('#dynamicDiv').show("fast",function () {} );
  $('#dynamicDiv')[0].style.display='block';
  $('#routediv')[0].style.display='block';
  if(ioAreaObj.embed.place) {  
    var a;a={};a.point=[];a.point.push(ioAreaObj.embed.place.lonlat);mboxObj.zoomToFit(a);
  }
  ioAreaObj.embed.mapShrinked=true;
  }
}  

function clientCustomTickerHandle(pathToTickerXml) {
  getMovieName("VideoPlaylist").ticker(pathToTickerXml);
}

function clientCustomSoundHandle(pathToSoundFile) {
  getMovieName("VideoPlaylist").playSoundTrack(pathToSoundFile);
}

createAllObj = function (accountDetails) {
  // can it be called when account details are not there ? TBD
  // should I treat accountDetails as global variable ? TBD
  vidteq.init();
  imagePathsObj.generatePath();
  routeEndsObj=new routeEnds();
  switch (accountDetails.q) {
    case "wayfinder":
    case "blocate":
      ioAreaObj=new ioArea({on:true,fix:'end',hosting:true},{});
      break;
    case "locatestores":
      ioAreaObj=new ioArea({on:true,fix:'',hosting:true},{locationName:'Enter your address to find a store nearby'}); 
      break;
    //default: document.location.href='error.html'; break;
    default:break;
      //var helpLocate="<? include('example.php'); echo $locationHelpText; ?>"
      //var helpRoute="<? echo $routeHelpText; ?>"
      //var ioAreaObj=new ioArea({on:false},{helpLocate:helpLocate,helpRoute:helpLocate});
    // TBD - generic error handler needed - with messaging provision
    // Automatic minimap fall back in case allotted size is small TBD
  }
  fvtObj = new fvt();
  fvtObj.clearFvtContent=accountDetails.clearFvtContent;
  accountDetails.clearFvtContent='';
  // how about mbox object? vidteq object and paths ? TBD
}

function prepareEmbedVariables(where) {
  // browser check first
  if(self.navigator.userAgent.indexOf("MSIE 6")!=-1) MSIE6=true;
  if(self.navigator.userAgent.indexOf("MSIE 7")!=-1) MSIE7=true;
  $ = jQuery.noConflict();
  vidteq = new vidteqClass();
  vidteq.debug=parseInt(debug);
  fetchBrowserDetails();
  // now attach special items for GWay
  setInterval('reRequestKey()',accountDetails.interval);
  vidteq.key=accountDetails.initKey;
  if (typeof(where) != 'undefined' && where == 'widget') {
    magicHappensUrl=_serverHostUrl+magicHappensUrl;
    vidteq.scriptBased=true;
    vidteq.dataType='jsonp';
    lightPullUrl=_serverHostUrl+lightPullUrl;
    emailUrl=_serverHostUrl+emailUrl;
    // now attach div contents
    document.getElementById('vidteq').innerHTML=embedHtmlContent;
    embedHtmlContent = '';
    vidteq.width = parseInt($('#vidteq')[0].style.width);
    vidteq.height = parseInt($('#vidteq')[0].style.height);
  }
  // now create handler variables
  createAllObj(accountDetails);
  //addItemInHead(ioAreaObj.embed.cssUrl,'link');
  attachEvents();
}

function boxify(boxImage,divId,corners) {
  if (typeof(corners) == 'undefined') { var corners = {lt:1,rt:1,lb:1,rb:1}; }
  var w = parseInt($('#'+divId).outerWidth(true));
  if (corners.mc) { w += corners.mc; }
  var h = parseInt($('#'+divId).outerHeight(true));
  var oldHtml = $('#'+divId).html();
  $('#'+divId).html('');
  var lt = {w:0,h:0};
  var rt = {w:0,h:0};
  var lb = {w:0,h:0};
  var rb = {w:0,h:0};
  if (corners.lt) {
    var newHtml = "<div id='"+divId+"TopLeft' style='position:absolute;top:0px;left:0px;width:"+boxImage.cornerW+"px;height:"+boxImage.cornerW+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.offsetW)+"px "+(-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
    lt = {w:boxImage.cornerW,h:boxImage.cornerH};
  }
  if (!corners.lt && corners.tc) { lt.w = corners.tc; corners.tcl = corners.tc; }
  if (!corners.lt && corners.lc) { lt.h = corners.lc; corners.lct = corners.tc; }
  if (corners.rt) {
    var newHtml = "<div id='"+divId+"TopRight' style='position:absolute;top:0px;right:0px;width:"+boxImage.cornerW+"px;height:"+boxImage.cornerW+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.boxW-boxImage.offsetW)+"px "+(-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
    rt = {w:boxImage.cornerW,h:boxImage.cornerH};
  }
  if (!corners.rt && corners.tc) { rt.w = corners.tc; corners.tcr = corners.tc; }
  if (!corners.rt && corners.rc) { rt.h = corners.rc; corners.rct = corners.tc; }
  if (corners.lb) {
    var newHtml = "<div id='"+divId+"BotLeft' style='position:absolute;bottom:0px;left:0px;width:"+boxImage.cornerW+"px;height:"+boxImage.cornerW+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.offsetW)+"px "+(-boxImage.boxH-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
    lb = {w:boxImage.cornerW,h:boxImage.cornerH};
  }
  if (!corners.lb && corners.lc) { lb.h = corners.lc; corners.lcb = corners.lc; }
  if (!corners.lb && corners.bc) { lb.w = corners.bc; corners.bcl = corners.lc; }
  if (corners.rb) {
    var newHtml = "<div id='"+divId+"BotRight' style='position:absolute;bottom:0px;right:0px;width:"+boxImage.cornerW+"px;height:"+boxImage.cornerW+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.boxW-boxImage.offsetW)+"px "+(-boxImage.boxH-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
    rb = {w:boxImage.cornerW,h:boxImage.cornerH};
  }
  if (!corners.rb && corners.rc) { rb.h = corners.rc; corners.rcb = corners.rc; }
  if (!corners.rb && corners.bc) { rb.w = corners.bc; corners.bcr = corners.bc; }

  boxImage.w = boxImage.boxW - 2*boxImage.cornerW;
  boxImage.h = boxImage.boxH - 2*boxImage.cornerH;
  var tt,bb,ll,rr;
  if (corners.tcl) {
    tt = {  cut:{w:corners.tcl-boxImage.cornerW,h:boxImage.cornerH,
                 t:0,l:boxImage.cornerW},
          uncut:{w:w-corners.tcl-boxImage.cornerW,h:boxImage.cornerH,
                 t:0,l:corners.tcl}};
  } else if (corners.tcr) {
    tt = {uncut:{w:w-corners.tcr-boxImage.cornerW,h:boxImage.cornerH,
                 t:0,l:boxImage.cornerW},
            cut:{w:corners.tcr-boxImage.cornerW,h:boxImage.cornerH,
                   t:0,l:corners.tcr}};
  } else {
    var c1 = corners.lct?0:boxImage.cornerW;
    var c2 = corners.rct?0:boxImage.cornerW;
    tt = {cut:{w:0,h:0,t:0,l:0},
        uncut:{w:w-c1-c2,h:boxImage.cornerH,t:0,l:c1}};
  }
  var newHtml;
  if (tt.cut.w > 0) {
    //for(var i=b.l;i+b.w<noOfQuestions;i++) {
    var b = tt.cut;
    newHtml = "<div id='"+divId+"TopCut' style='position:absolute;top:"+b.t+"px;left:"+b.l+"px;width:"+b.w+"px;height:"+b.h+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.cornerW-boxImage.offsetW)+"px "+(-boxImage.cornerW-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
  }
  if (tt.uncut.w > 0) { 
    var b = tt.uncut;
    newHtml = "<div id='"+divId+"TopUncut' style='position:absolute;top:"+b.t+"px;left:"+b.l+"px;width:"+b.w+"px;height:"+b.h+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.cornerW-boxImage.offsetW)+"px "+(-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
  }
  //var newHtml = "<div id='"+divId+"Top' style='position:absolute;top:0px;left:"+lt.w+"px;width:"+(w-lt.w-rt.w)+"px;height:"+boxImage.cornerH+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.cornerW-boxImage.offsetW)+"px "+(-boxImage.offsetH)+"px;'></div>";
  //$('#'+divId).append(newHtml);
  if (corners.rct) {
    rr = {  cut:{w:boxImage.cornerW,h:corners.rct-boxImage.cornerH,
                 t:boxImage.cornerH,r:0},
          uncut:{w:boxImage.cornerW,h:h-corners.rct-boxImage.cornerH,
                 t:corners.rct,r:0}};
  } else if (corners.rcb) {
    rr = {uncut:{w:boxImage.cornerW,h:h-corners.rcb-boxImage.cornerH,
                 t:boxImage.cornerH,r:0},
            cut:{w:boxImage.cornerW,h:corners.rcb-boxImage.cornerH,
                 t:corners.rcb,r:0}};
  } else { 
    var c1 = corners.tcr?0:boxImage.cornerH;
    var c2 = corners.bcr?0:boxImage.cornerH;
    rr = {cut:{w:0,h:0,t:0,r:0},
        uncut:{w:boxImage.cornerW,h:h-c1-c2,t:c1,r:0}};
  }
  if (rr.cut.h > 0) {
    var b = rr.cut;
    newHtml = "<div id='"+divId+"RightCut' style='position:absolute;top:"+b.t+"px;right:"+b.r+"px;width:"+b.w+"px;height:"+b.h+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.boxW+boxImage.CornerW-boxImage.offsetW)+"px "+(-boxImage.cornerH-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
  }
  if (rr.uncut.h > 0) {
    var b = rr.uncut;
    newHtml = "<div id='"+divId+"RightUncut' style='position:absolute;top:"+b.t+"px;right:"+b.r+"px;width:"+b.w+"px;height:"+b.h+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.boxW-boxImage.offsetW)+"px "+(-boxImage.cornerH-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
  }
  //var newHtml = "<div id='"+divId+"Right' style='position:absolute;top:"+rt.h+"px;right:0px;width:"+boxImage.cornerW+"px;height:"+(h-rt.h-rb.h)+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.boxW-boxImage.offsetW)+"px "+(-boxImage.cornerH-boxImage.offsetH)+"px;'></div>";
  //$('#'+divId).append(newHtml);
  if (corners.bcl) {
    bb = {  cut:{w:corners.bcl-boxImage.cornerW,h:boxImage.cornerH,
                 b:0,l:boxImage.cornerW},
          uncut:{w:w-corners.bcl-boxImage.cornerW,h:boxImage.cornerH,
                 b:0,l:corners.bcl}};
  } else if (corners.bcr) {
    bb = {uncut:{w:w-corners.bcr-boxImage.cornerW,h:boxImage.cornerH,
                 b:0,l:boxImage.cornerW},
            cut:{w:corners.bcr-boxImage.cornerW,h:boxImage.cornerH,
                 b:0,l:corners.bcr}};
  } else {
    var c1 = corners.lcb?0:boxImage.cornerW;
    var c2 = corners.rcb?0:boxImage.cornerW;
    bb = {cut:{w:0,h:0,b:0,l:0},
        uncut:{w:w-c1-c2,h:boxImage.cornerH,b:0,l:c1}};
  }
  if (bb.cut.w > 0) {
    var b = bb.cut;
    newHtml = "<div id='"+divId+"BotCut' style='position:absolute;bottom:"+b.b+"px;left:"+b.l+"px;width:"+b.w+"px;height:"+b.h+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.cornerW-boxImage.offsetW)+"px "+(-boxImage.boxH+boxImage.cornerH-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
  }
  if (bb.uncut.w > 0) {
    var b = bb.uncut;
    newHtml = "<div id='"+divId+"BotUncut' style='position:absolute;bottom:"+b.b+"px;left:"+b.l+"px;width:"+b.w+"px;height:"+b.h+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.cornerW-boxImage.offsetW)+"px "+(-boxImage.boxH-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
  }
  //var newHtml = "<div id='"+divId+"Bot' style='position:absolute;bottom:0px;left:"+lb.w+"px;width:"+(w-lb.w-rb.w)+"px;height:"+boxImage.cornerH+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.cornerW-boxImage.offsetW)+"px "+(-boxImage.boxH-boxImage.offsetH)+"px;'></div>";
  //$('#'+divId).append(newHtml);
  if (corners.lct) {
    ll = {  cut:{w:boxImage.cornerW,h:corners.lct-boxImage.cornerH,
                 t:boxImage.cornerH,l:0},
          uncut:{w:boxImage.cornerW,h:h-corners.lct-boxImage.cornerH,
                 t:corners.lct,l:0}};
  } else if (corners.lcb) {
    ll = {uncut:{w:boxImage.cornerW,h:h-corners.lcb-boxImage.cornerH,
                 t:boxImage.cornerH,l:0},
            cut:{w:boxImage.cornerW,h:corners.lcb-boxImage.cornerH,
                 t:corners.rcb,l:0}};
  } else {
    var c1 = corners.tcl?0:boxImage.cornerH;
    var c2 = corners.bcl?0:boxImage.cornerH;
    ll = {cut:{w:0,h:0,t:0,r:0},
        uncut:{w:boxImage.cornerW,h:h-c1-c2,t:c1,l:0}};
  }
  if (ll.cut.w > 0) {
    var b = ll.cut;
    newHtml = "<div id='"+divId+"LeftCut' style='position:absolute;top:"+b.t+"px;left:"+b.l+"px;width:"+b.w+"px;height:"+b.h+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.cornerW-boxImage.offsetW)+"px "+(-boxImage.cornerH-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
  }
  if (ll.uncut.w > 0) {
    var b = ll.uncut;
    newHtml = "<div id='"+divId+"LeftUncut' style='position:absolute;top:"+b.t+"px;left:"+b.l+"px;width:"+b.w+"px;height:"+b.h+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.offsetW)+"px "+(-boxImage.cornerH-boxImage.offsetH)+"px;'></div>";
    $('#'+divId).append(newHtml);
  }
  //var newHtml = "<div id='"+divId+"Left' style='position:absolute;top:"+lt.h+"px;left:0px;width:"+boxImage.cornerW+"px;height:"+(h-lt.h-lb.h)+"px;background:url(\""+boxImage.url+"\"); background-repeat:no-repeat;background-position:"+(-boxImage.offsetW)+"px "+(-boxImage.cornerH-boxImage.offsetH)+"px;'></div>";
  //$('#'+divId).append(newHtml);
  $('#'+divId).append("<div id='"+divId+"Inner'>"+oldHtml+"</div>");
  //$('#'+divId+"Inner").css('background-color',$('#'+divId).css('background-color'));
  //$('#'+divId).css('background-color','transparent');
  //$('#'+divId+"Inner").css('margin-left','-5px');
}

function fetchBrowserDetails () {
      vidteq=vidteq || {};
      vidteq.browser={};
      $.each($.browser, function(i, val) {
      if(val) vidteq.browser[i]=val;
    });
}

function writeCookie(name,value,days) {
    if(typeof(days)=='undefined') days=3;
        if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}


function readCookie(cookieName) {
 var theCookie=""+document.cookie;
 var ind=theCookie.indexOf(cookieName);
 if (ind==-1 || cookieName=="") return ""; 
 var ind1=theCookie.indexOf(';',ind);
 if (ind1==-1) ind1=theCookie.length; 
 return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
}


function validateFeedbackQuestions (qArr) {
var valid=true;
    for(i in qArr) {
            var condition=null;
            if(qArr[i].match(/:/)) {
                var a=qArr[i].split(/:/);
                qArr[i]=a[0];
                condition=a[1];
            }
        $('#'+qArr[i]+'-td')[0].style.backgroundColor='white';    
        if(condition && $('#'+condition)[0].style.display=='none') continue;
        if($('#'+qArr[i])[0].type== 'radio') {
            if($('#'+qArr[i])[0].checked == false && $('#'+qArr[i]+'-a')[0].checked ==false) {
                $('#'+qArr[i]+'-td')[0].style.backgroundColor='red';
                valid=false;
            }
        }
        else if($('#'+qArr[i])[0].type == 'text') {
                if($('#'+qArr[i]).val() == '') {
                $('#'+qArr[i]+'-td')[0].style.backgroundColor='red';
                valid=false;
            }
        }
    else if($('#'+qArr[i])[0].name == 'select') {
        if($('#'+qArr[i])[0].selectedIndex==0) 
         $('#'+qArr[i]+'-td')[0].style.backgroundColor='red';
    }
    }
    return valid;
}

// feedback.js also got copied here ....Reason... For Contact detail form I want to use the sendFeedback routine. 
function sendFeedback(noOfQuestions,validate) {
validate=validate || 0;
//Follow a simple convention for feedback forms .
//All Question texts have id as q(number)-text and input fields have corresponding as q(number)-ans.
//Special case of radio buttons as q(number)-ans and q(number)-ans-a.
//Also give name=select for identification of select tags. As we use id to access and not NAMES
//Validation takes array of ids of input types to be validated, append id of tr if it is under a condition
if(typeof(accountDetails)!='undefined' && validate) {
    if(accountDetails.q=='blocate' && !validateFeedbackQuestions(['q6-ans','q5-ans','q9-ans:condition3'])) {
        alert('Please fill the fields in red');
        return 0;
    }
    if(accountDetails.q=='locatestores' && !validateFeedbackQuestions(['q1-ans','q2-ans:condition0','q3-ans','q4-ans:condition1','q6-ans:condition2'])) {
    alert('Please fill the fields in red'); 
        return 0;
    }
}

$('#messageDiv')[0].innerHTML="<a style='font-size:18px;color:#21598C' ></a>";
enableDisableFields('disable');
var account= (typeof vidteq.account!='undefined'?vidteq.account:'vidteq');
var paramsToSend = {
            action:'feedback',
            account:account
           };
var cookieTime=3;           
if(typeof(accountDetails)!='undefined') {
    if(typeof(accountDetails.config.intrFeedCookieTime)!='undefined');
    cookieTime=parseInt(accountDetails.config.intrFeedCookieTime);    
}           
writeCookie(account+"_feedbackgiven",true,90); //Hijack to 90 DayS
if(typeof(accountDetails)!='undefined') {
//Mails should not go to customer if tried in Raste     
            if(document.location.hostname.match(/vidteq/i)) paramsToSend.customersEmail=accountDetails.feedbackemail;
}
var feedback=[];
for(i=0;i<noOfQuestions;i++) {
        var txt=$('#q'+(i+1)+'-text').html();   
    var ans=$('#q'+(i+1)+'-ans').val() || 'No Answer';
    if($('#q'+(i+1)+'-ans')[0].type == 'radio') {
        if($('#q'+(i+1)+'-ans')[0].checked) {
            ans='yes'
        }
        else if($('#q'+(i+1)+'-ans-a')[0].checked) {
            ans='No'
        }
        else {
            ans='No Answer';
        }
        }
    if($('#q'+(i+1)+'-ans')[0].name == 'select') {
        ans=$('#q'+(i+1)+'-ans')[0].options[($('#q'+(i+1)+'-ans')[0].selectedIndex)].value;
        }   
        txt=txt.replace(/\n/g,"");
        txt=txt.replace(/\t/g,"");
        feedback.push({'text':txt,'ans':ans});
}
paramsToSend.feedback=JSON.stringify(feedback);
if(vidteq && vidteq.browser) {
        paramsToSend.browser='';
        for(var i in vidteq.browser)
            if(i!='version') paramsToSend.browser+=i;
            paramsToSend.browser+=" "+vidteq.browser.version;
}
$('#messageDiv')[0].innerHTML="<a style='font-size:18px;color:#21598C' >Thanks for feedback. <br/> <br/> Want a Vidteq Application for your business? Checkout the Products and Services to learn more.</a>";
if(typeof($('#feedbackQuestions')[0])!='undefined') {
    $('#feedbackQuestions')[0].style.visibility="hidden";
}
if(typeof(ioAreaObj)!='undefined') {
    if(ioAreaObj.embed)
    ioAreaObj.showSendingPrompt();
}
$.post(
        magicHappensUrl,
    paramsToSend,
    function (data) { 
        enableDisableFields('');
        reset(noOfQuestions);
                    });
}

function enableDisableFields (what) {return 0;
var token=(what=='disable')?('disabled'):('');
for (var i = 1; i <= noOfQuestions; i++) {
            var elem = $("#q"+i+"-ans");
            if(elem[0].type=='radio') {
                    elem[0].disabled=token;
                    elem = $("#q"+i+"-ans-a");
                    elem[0].disabled=token;
            }
            else if(elem[0].type='text'){
                    elem[0].disabled=token;
            }
    }
}

function reset(noOfQuestions) {
if(ioAreaObj && ioAreaObj.embed) return;    
for (var i = 0; i < noOfQuestions; i++) {
            var elem = $("#q"+i+"-ans");
            if(elem[0].type=='radio') {
                    elem[0].checked=false;
                    elem = $("#q"+i+"-ans-a");
                    elem[0].checked=false;
            }
            else if(elem[0].type='text'){
                    elem[0].html("");
            }
    }
}

function showHideDecider(id,validIndexes,idsAffected) {
    var ind=$('#'+id)[0].selectedIndex;
    for(var i in validIndexes) {
        if(validIndexes[i]==ind) {
            for(var j in idsAffected) 
                $('#'+idsAffected[j]).show();
            return 0;
        }
    }
    for(var j in idsAffected) 
        $('#'+idsAffected[j]).hide();
}

function showHide(arr,yesNo) {
    for(i in arr) {
        if(yesNo) $('#'+arr[i]).show();
        else $('#'+arr[i]).hide();
    }
}
function callMakePfLayer() {
  ioAreaObj.changeBackOpacity(0.2);
  var cat={};
  var data={action:"getPfLayerData",
    account:vidteq.account,key:vidteq.key};
  if(vidteq.scriptBased) {data.callbackFunction='ioAreaObj.handleGetRoute';}
  cat.magicCall = $.ajax({
    url:magicHappensUrl,
    data:data,
    dataType:'text/html',
    success: function (response) {mboxObj.createPfLayer(response)},
    error:function(response) {ioAreaObj.handleError.apply(ioAreaObj,[response]);}
  }); 
}  

function attachClicksToUpDown( ) {
  $("#buttondown").toggle ( function(){
    $("#containera").show('slide',{direction:'up'},700);
    $("#containerb").hide('slide',{direction:'down'},700);
  },function(){
    $("#containera").hide('slide',{direction:'down'},700);
    $("#containerb").show('slide',{direction:'up'},700);
  });
  $('#buttonup').toggle ( function(){
    $("#containera").show('slide',{direction:'down'},700);
    $("#containerb").hide('slide',{direction:'up'},700);
  },function (){
    $("#containera").hide('slide',{direction:'up'},700);
    $("#containerb").show('slide',{direction:'down'},700);
  });
}

function catClick() {
  makeAllBackgroundWhite();
  //BounceUp(this.id);
  makeBackGroundBlue(this.id);
  var geom;
  geom= mboxObj.getCenter();
  var cat = $("#"+this.id).data('cat');
  cat.center=geom.lon+","+geom.lat;
  var data={action:"businessLocate",center:cat.center,limit:cat.catLimit,distance:cat.distance,category:cat.categoryList,account:"test",key:232};
  cat.magicCall = $.ajax({
    url:magicHappensUrl,
    data:data,
    suggestedplace:this.suggestedPlace,
    dataType:vidteq.dataType,
    success: function (response) {mboxObj.createCatLayer(cat,response)},
    error:function(response) {ioAreaObj.handleError.apply(ioAreaObj,[response]);}
  }); 
}  

function catOnmouseover() {
  var marginTop= parseInt($("#"+this.id).css("top"));
  var cat = $("#"+this.id).data('cat');
  var param = ['scrolltabv_title_lbg','scrolltabv_title_rbg','scrolltabv_title_inside_text','scrolltabv_title'];
  for (var i in param) {
    $("#"+param[i])[0].style.display = 'block';
    //$("#"+param[i])[0].style.marginRight = '60px';
  }
  //$("#scrolltabv_title").removeClass('scrolltabv_title_none');
  //$("#scrolltabv_title").addClass('scrolltabv_title_show');
  //$("#scrolltabv_title_lbg").addClass('scrolltabv_title_lbg');
  //$("#scrolltabv_title_rbg").addClass('scrolltabv_title_rbg');
  //$("#scrolltabv_title_inside_text").addClass('scrolltabv_title_inside_text');
  if (!cat.z_category) {marginTop += 20;}
  $("#scrolltabv_title_lbg").css('top',marginTop+'px');
  $("#scrolltabv_title_rbg").css('top',marginTop+'px');
  $("#scrolltabv_title_inside_text").css('top',marginTop+'px');
  $("#scrolltabv_title_inside_text").text(cat.name);
  //var divsize= parseFloat($("#scrolltabv_title").css("width"));
  var divsize= parseFloat($("#scrolltabv_title").outerWidth());
  //var textsize = parseFloat($("#scrolltabv_title_inside_text").css("width"));
  var textsize = parseFloat($("#scrolltabv_title_inside_text").outerWidth());
  var leftParam = parseInt(divsize-textsize-20);
  $("#scrolltabv_title_lbg").css('left',leftParam+'px');
  leftParam += 7;
  $("#scrolltabv_title_inside_text").css('left',leftParam+'px');
  leftParam = parseInt(textsize)+7;
  $("#scrolltabv_title_lbg").css('width',leftParam+'px');
  $("#"+this.id).css('background-image','url('+cat.buttonActiveIcon+')');
}

function catOnmouseout()  {
  var cat = $("#"+this.id).data('cat');
  var param = ['scrolltabv_title_lbg','scrolltabv_title_rbg','scrolltabv_title_inside_text','scrolltabv_title'];
  for (var i in param) {
    $("#"+param[i])[0].style.display = 'none';
  }
  //$("#scrolltabv_title_lbg").removeClass('scrolltabv_title_lbg');
  //$("#scrolltabv_title_rbg").removeClass('scrolltabv_title_rbg');
  //$("#scrolltabv_title_inside_text").removeClass('scrolltabv_title_inside_text');
  //$("#scrolltabv_title").removeClass('scrolltabv_title_show');
  //$("#scrolltabv_title").addClass('scrolltabv_title_none');
  $("#scrolltabv_title_inside_text").text('');
  $("#"+this.id).css('background-image','url('+cat.buttonIcon+')');
}

function attachClicksToCatagory() {
  var params = ['a','b','c','d','e','f'];
  for (var i in params) {
    $("#"+params[i])[0].onmouseover=catOnmouseover;
    $("#"+params[i])[0].onmouseout=catOnmouseout;
  }
  var catButtons = {a:{
    categoryList:"702,701",
    name:"Entertainment",
    distance:60000,
    catLimit: 1000,
    buttonCaption:imageLogosLoc+"category_logos/cinema_t.png",
    buttonIcon:imageLogosLoc+"category_logos/cinema.png",
    buttonActiveIcon:imageLogosLoc+"category_logos/cinema_a.png",
    categoryIcon:imageLogosLoc+"category_logos/cinema_p.png",
    categoryClusterIcon:imageLogosLoc+"category_logos/cinema_p_p.png",
    shadow:imageLogosLoc+"category_logos/shadow_20.png",
    shadow_p:imageLogosLoc+"category_logos/shadow_20_p.png"
  },
  b:{
    categoryList : "102",
    name: "Pubs",
    distance:600000,
    catLimit: 2000,
    buttonCaption:imageLogosLoc+"category_logos/pubs_bars_t.png",
    buttonIcon : imageLogosLoc+"category_logos/pubs_bars.png",
    buttonActiveIcon : imageLogosLoc+"category_logos/pubs_bars_a.png",
    categoryIcon : imageLogosLoc+"category_logos/pubs_bars_p.png",
    categoryClusterIcon : imageLogosLoc+"category_logos/pubs_bars_p_p.png",
    shadow:imageLogosLoc+"category_logos/shadow_20.png",
    shadow_p:imageLogosLoc+"category_logos/shadow_20_p.png"
  },
  c:{
    categoryList:"115",
    name: "Coffee Shops",
    distance:600000,
    catLimit: 1000,
    buttonCaption:imageLogosLoc+"category_logos/coffee_t.png",
    buttonIcon : imageLogosLoc+"category_logos/coffee.png",
    buttonActiveIcon : imageLogosLoc+"category_logos/coffee_a.png",
    categoryIcon : imageLogosLoc+"category_logos/coffee_p.png",
    categoryClusterIcon : imageLogosLoc+"category_logos/coffee_p_p.png",
    shadow:imageLogosLoc+"category_logos/shadow_20.png",
    shadow_p:imageLogosLoc+"category_logos/shadow_20_p.png"
  },
  d:{
    categoryList : "102,199",
    name: "Restaurants",
    distance:600000,
    buttonCaption:imageLogosLoc+"category_logos/restaurant_t.png",
    catLimit: 3000,
    buttonIcon : imageLogosLoc+"category_logos/restaurant.png",
    buttonActiveIcon : imageLogosLoc+"category_logos/restaurant_a.png",
    categoryIcon : imageLogosLoc+"category_logos/restaurant_p.png",
    categoryClusterIcon : imageLogosLoc+"category_logos/restaurant_p_p.png",
    shadow:imageLogosLoc+"category_logos/shadow_20.png",
    shadow_p:imageLogosLoc+"category_logos/shadow_20_p.png"
  },
  e:{
    categoryList : "400,444",
    name: "Malls",
    distance:60000,
    catLimit: 2000,
    buttonCaption:imageLogosLoc+"category_logos/mall_t.png",
    buttonIcon : imageLogosLoc+"category_logos/mall.png",
    buttonActiveIcon : imageLogosLoc+"category_logos/mall_a.png",
    categoryIcon : imageLogosLoc+"category_logos/mall_p.png",
    categoryClusterIcon : imageLogosLoc+"category_logos/mall_p_p.png",
    shadow:imageLogosLoc+"category_logos/shadow_20.png",
    shadow_p:imageLogosLoc+"category_logos/shadow_20_p.png"
  },
  f:{
    categoryList : "201",
    name: "Schools",
    distance:600000,
    catLimit: 2000,//1482
    buttonCaption:imageLogosLoc+"category_logos/school_t.png",
    buttonIcon : imageLogosLoc+"category_logos/school.png",
    buttonActiveIcon : imageLogosLoc+"category_logos/school_a.png",
    categoryIcon : imageLogosLoc+"category_logos/school_p.png",
    categoryClusterIcon : imageLogosLoc+"category_logos/school_p_p.png",        
    shadow:imageLogosLoc+"category_logos/shadow_20.png",
    shadow_p:imageLogosLoc+"category_logos/shadow_20_p.png"
  }};

  var params = ['a','b','c','d','e','f'];
  for (var i in params) {
    $("#"+params[i]).data('cat',catButtons[params[i]]);
    $("#"+params[i]).css('background-image','url('+catButtons[params[i]].buttonIcon+')');
    $("#"+params[i])[0].onclick = catClick;
  }
  if (typeof(z_category) != 'undefined') {
    var old_z = z_category;
    var catIcon = old_z.category.icon;
    catIcon = catIcon.replace(/.png/,""); 
    if (catIcon.match(/^$/)) {catIcon = 'category_16x16';}
    z_category = {
      categoryList : old_z.category.id,
      name: old_z.category.name,
      distance:600000,
      catLimit: 500,
      buttonCaption:imageLogosLoc+"category_logos/"+catIcon+".png",
      buttonIcon : imageLogosLoc+"category_logos/"+catIcon+"_z.png",
      buttonActiveIcon : imageLogosLoc+"category_logos/"+catIcon+"_a.png",
      categoryIcon : imageLogosLoc+"category_logos/"+catIcon+"_p.png",
      categoryClusterIcon : imageLogosLoc+"category_logos/"+catIcon+"_p_p.png", 
      shadow:imageLogosLoc+"category_logos/shadow_20.png",
      shadow_p:imageLogosLoc+"category_logos/shadow_20_p.png",
      z_category:1
    };
    $('#scrolltabv')[0].style.height='160px';
    $('#button_zcat')[0].style.display='block';
    $("#button_zcat").data('cat',z_category);
    $("#button_zcat").css('background-image','url('+z_category.buttonIcon+')');
    $("#button_zcat")[0].onmouseover=catOnmouseover;
    $("#button_zcat")[0].onmouseout=catOnmouseout;
    $("#button_zcat")[0].onclick = catClick;
  } else {
    $('#button_zcat')[0].style.display='none';
  }
}      

function makeAllBackgroundWhite() {//tbd this needs to be generalized . access the parent div may be
  ioAreaObj.displayMessage("");
  //ioAreaObj.removeCurtain();
 //$("#curtainDiv").removeClass('semiOpac');
  var params = ['a','b','c','d','e','f'];
  for (var i in params) {
    $("#"+params[i]).animate({backgroundColor:'#ffffff'},10);
  }
  if (typeof(z_category) != 'undefined') {
    $("#button_zcat").animate({backgroundColor:'#ffffff'},10);
  }
}

function makeBackGroundBlue(wht){
  ioAreaObj.displayMessage("Please wait");
 // ioAreaObj.putCurtainCall();
  $("#"+wht+"").animate({backgroundColor:'##0066cc'},100);
}
function BounceUp(wht) {
  $("#"+wht+"").show('bounce',100);
}

function invokeVidteqDemo(start,end) {
  ioAreaObj.selectMode('ROUTE');
  document.getElementById("starttextbox").value = start;
  document.getElementById("endtextbox").value = end;
  if (ioAreaObj.loadSyncCalled) {
    routeEndsObj.remove('start');
    routeEndsObj.remove('end');
    ioAreaObj.invokeTheMode();
  } else {
    ioAreaObj.loadSync();
  }
}

function debugPrint (inVar) {
  if (vidteq.debug) {
    try { console.log(inVar); } catch (e) { };
  }
}


