//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",
    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)) {
    proposedTabPreparation();	
    }
 if(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 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);
        }
      });
     
    }
  } else  {
    $('#feedbackhref')[0].style.display='none';
    $('#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(!accountDetails.config.pfLayer)  {
    $('#proposedref')[0].style.display='none'; 	
  }   
}

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(readCookie(accountDetails.account+"_feedbackpopped")) return;
    else {
       writeCookie(accountDetails.account+"_feedbackpopped",true,1);
       $('#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(accountDetails.config.intrFeedTime == 0 ) return;
    if(!readCookie(vidteq.account))
    timedFeedback=setTimeout('timeFeed()',accountDetails.config.intrFeedTime);
}
function proposedTabPreparation (){
    $('#proposed')[0].src= imagePathsObj.proposed;
  $('#proposedref').toggle (
    function () {
      $('#proposed')[0].src= imagePathsObj.proposed_a;
      if (!self.navigator.userAgent.match(/MSIE\s[6-8]/)){
      	  $("#proposedLegend").animate({position:"absolute",width:"120px",height:"80px",right:"0px"},1000);
    }else {
       $("#proposedLegend").addClass('proposedLegendVisible');
    }
    document.getElementById('proposedLegend').style.backgroundImage="url("+imageLogosLoc+"legend2.png)";
       callMakePfLayer();


    },
    function () {
      $('#proposed')[0].src= imagePathsObj.proposed;
      if (!self.navigator.userAgent.match(/MSIE\s[6-8]/)){
          $("#proposedLegend").animate({width:"0px",height:"0px",right:  "0px",position:"absolute"},1000);
      }
      else {
      	 $("#proposedLegend").removeClass('proposedLegendVisible');
      	}
      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('Please enter your Address for Video Directions');
    });
    return 0;
}

function addCalls() {
  ioAreaObj.displayMessage('Please enter your Address for Video Directions');
  $(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(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,[]);
  $('#feedbackimage')[0].src=(accountDetails.q=='wayfinder')?imagePathsObj.feedback_v:imagePathsObj.feedback_h;
  $('#demoimage')[0].src=imagePathsObj.demo;    
  if(accountDetails.customVideo) {
      myPlaceTabPreparation();
  }
  if(accountDetails.landmarkRoutes) ioAreaObj.attachLandmarkRoutes();
}

function fixTheApp () {
  //console.log("document height is ");
  //console.log($(document).height());
  //alert($(document).height());
  //alert($(window).height());
  //alert($('#input-div').height());
  //alert($('#map').height());
  $('#map')[0].style.height=$(window).height()-$('#input-div').height()+"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) { 
        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
  
    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(this.className!='maptabdisabled') this.className='maptabhover'; };
    elem.onmouseout=function () { 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";
  $('#input-div')[0].style.width=$('#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";
  $('#directions_div')[0].style.height=parseInt($('#map')[0].style.height)-parseInt(ioAreaObj.embed.vidHeight)-40+"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 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=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</a>";
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() {
  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(){
    //console.log("tell me");
    $("#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 divsize= $("#scrolltabv_title").css("width");
  var marginTop= parseInt($("#"+this.id).css("top"));
  var cat = $("#"+this.id).data('cat');
  $("#scrolltabv_title").removeClass('scrolltabv_title_none');
  $("#scrolltabv_title").addClass('scrolltabv_title_show');
  $("#scrolltabv_title_inside").addClass('cat_title');
  if (!cat.z_category) { marginTop += 20; }
  $("#scrolltabv_title_inside").css('top',marginTop+'px');
  $("#scrolltabv_title_inside").css('background-image','url('+cat.buttonCaption+')');
  $("#"+this.id).css('background-image','url('+cat.buttonActiveIcon+')');
}

function catOnmouseout()  {
  var divsize= $("#scrolltabv_title").css("width");
  var cat = $("#"+this.id).data('cat');
  $("#scrolltabv_title_inside").removeClass('cat_title_bottom cat_title_middle  cat_title_top');
  $("#scrolltabv_title").removeClass('scrolltabv_title_show');
  // $("#scrolltabv_title_inside").addClass('scrolltabv_title_none');
  $("#"+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",
    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: "Restaurant",
    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: "Mall",
    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: "School",
    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);
}

