﻿function load_location(id,type,zoom)
{
  var lat,lng,zoom,point,html,heading,address;
  lat = location_arr[id]['lat'];
  lng = location_arr[id]['lng'];
  html = location_arr[id]['html'];
  heading = location_arr[id]['heading'];
  address = location_arr[id]['address'];
  if(!zoom)
  {
    zoom = 15;
  }
  point = new google.maps.LatLng(lat, lng);

  map.setCenter(new google.maps.LatLng(lat, lng), zoom);
  map.openInfoWindowHtml(point, html_entity_decode(html));

  //var obj;
  //obj = document.getElementById(type+'_type_address');
  //obj.innerHTML = '<h3>'+heading+'</h3>'+address;
  var obj_heading;
  var obj_address;
  obj_heading = document.getElementById(type+'_heading');
  obj_heading.innerHTML = heading;
  obj_address = document.getElementById(type+'_address');
  obj_address.innerHTML = heading+' '+address;
}

function load_map(id,culture)
{
  document.location.href='/'+culture+'/contactUs/id/'+id;
}

function bookmark(title,url) {
  if (window.sidebar) { // firefox
     window.sidebar.addPanel(title, url, "");
  } else if (document.all) { // IE
     window.external.AddFavorite(url, title);
  } else if (window.opera && window.print) { // opera
     var elem = document.createElement('a');
     elem.setAttribute('href',url);
     elem.setAttribute('title',title);
     elem.setAttribute('rel','sidebar');
     elem.click();
  }
}

function sms_counter(culture)
{
  var obj1, obj2, obj3, message, max_length, current_length, is_7bit;
  obj1 = document.getElementById('sms_message');
  obj2 = document.getElementById('sms_counter');
  obj3 = document.getElementById('sms_value');
  message = obj1.value;
  current_length = message.length;
  is_7bit = str_7bit(message);

  if(is_7bit !== false)
  {
    current_length = current_length+is_7bit;
    max_length = 140;
  }
  else
  {
    max_length = 70;
  }
  if(current_length > max_length)
  {
    obj1.value = message.substr(0,max_length);
    message = obj1.value;
    current_length = message.length;
    is_7bit = str_7bit(message);
    current_length = current_length+is_7bit;
  }
  obj3.value = current_length;
  obj2.innerHTML = (max_length - current_length);
}
/**
 *
 * @access public
 * @return void
 **/


function str_7bit(str)
{
  var bit_arr = new Array('@','£','$','¥','è','é','ù','ì','ò','Ç','Ø','ø','Å','å','Δ','_','Φ','Γ','Λ','Ω','Π','Ψ','Σ','Θ','Ξ','Æ','æ','É',' ','!','"','#','¤','%','&','\'','(',')','*','+',',','-','.','/','0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?','¡','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','Ä','Ö','Ñ','Ü','§','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','ä','ö','ñ','ü','à');
  var valid = true;
  var double = 0;
  for(var i=0;i<str.length;i++)
  {
    var char = str.substr(i,1);
    if(!in_array(char,bit_arr) && str != '')
    {
      if(str_7bit_double(char))
      {
        double++;
      }
      else
      {
        valid = false;
      }
    }
  }

  if(valid)
  {
    return double;
  }
  else
  {
    return false;
  }
}
function str_7bit_double(char)
{
  var bit_arr = new Array('€','[','\\',']','^','{','|','}','~');
  var valid = true;
  if(!in_array(char,bit_arr) && char != '')
  {
    valid = false;
  }

  return valid;
}

function sms_counter_old(culture)
{
  var obj, obj2, val, actual_length, max_length, display_length, byte_length, active_length;
  obj = document.getElementById('sms_message');
  obj2 = document.getElementById('sms_counter');
  val = obj.value;
  actual_length = val.length;
  byte_length = checkLength('sms_message');
  max_length = 140;
  if(culture == 'en')
  {
    display_length = 140;
    active_length = byte_length;
  }
  else
  {
    //length in bytes
    //length = checkLength('sms_message');
    display_length = 140;
    active_length = byte_length;
  }

  if(byte_length <= max_length)
  {
    document.getElementById('sms_value').value = max_length - byte_length;
  }
  else
  {
    var diff_length = byte_length - actual_length;
    val = val.substr(0,(max_length-diff_length));
    obj.value = val;
    byte_length = max_length;
  }
  if(culture == 'en')
  {
    active_length = byte_length;
  }
  else
  {
    active_length = byte_length;
  }
  obj2.innerHTML = (display_length - active_length);
}

function checkLength(textBoxId)
{
  var countMe = document.getElementById(textBoxId).value
  var escapedStr = encodeURI(countMe)
  if (escapedStr.indexOf("%") != -1)
  {
    var count = escapedStr.split("%").length - 1
    if (count == 0)
    {
      count++  //perverse case; can't happen with real UTF-8
    }

    var tmp = escapedStr.length - (count * 3)
    count = count + tmp
  }
  else
  {
    count = escapedStr.length
  }
  //alert(escapedStr + ": size is " + count)
  return count;
}

function in_array(needle, haystack, argStrict) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true

    var found = false, key, strict = !!argStrict;

    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }

    return found;
}

function toggleField(el, string) {

  if (el.value == string) {
    el.value = '';
    return true;
  }

  if (el.value == '') {
    el.value = string;
    return true;
  }

  return false;
}

function html_entity_decode( string, quote_style ) {
    // http://kevin.vanzonneveld.net
    // +   original by: john (http://www.jd-tech.net)
    // +      input by: ger
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // +   improved by: marc andreu
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // -    depends on: get_html_translation_table
    // *     example 1: html_entity_decode('Kevin &amp; van Zonneveld');
    // *     returns 1: 'Kevin & van Zonneveld'
    // *     example 2: html_entity_decode('&amp;lt;');
    // *     returns 2: '&lt;'

    var histogram = {}, symbol = '', tmp_str = '', entity = '';
    tmp_str = string.toString();

    if (false === (histogram = get_html_translation_table('HTML_ENTITIES', quote_style))) {
        return false;
    }

    // &amp; must be the last character when decoding!
    delete(histogram['&']);
    histogram['&'] = '&amp;';

    for (symbol in histogram) {
        entity = histogram[symbol];
        tmp_str = tmp_str.split(entity).join(symbol);
    }

    return tmp_str;
}
function get_html_translation_table(table, quote_style) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: noname
    // +   bugfixed by: Alex
    // +   bugfixed by: Marco
    // +   bugfixed by: madipta
    // +   improved by: KELAN
    // +   improved by: Brett Zamir (http://brettz9.blogspot.com)
    // %          note: It has been decided that we're not going to add global
    // %          note: dependencies to php.js. Meaning the constants are not
    // %          note: real constants, but strings instead. integers are also supported if someone
    // %          note: chooses to create the constants themselves.
    // *     example 1: get_html_translation_table('HTML_SPECIALCHARS');
    // *     returns 1: {'"': '&quot;', '&': '&amp;', '<': '&lt;', '>': '&gt;'}

    var entities = {}, histogram = {}, decimal = 0, symbol = '';
    var constMappingTable = {}, constMappingQuoteStyle = {};
    var useTable = {}, useQuoteStyle = {};

    // Translate arguments
    constMappingTable[0]      = 'HTML_SPECIALCHARS';
    constMappingTable[1]      = 'HTML_ENTITIES';
    constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
    constMappingQuoteStyle[2] = 'ENT_COMPAT';
    constMappingQuoteStyle[3] = 'ENT_QUOTES';

    useTable     = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';
    useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';

    if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') {
        throw Error("Table: "+useTable+' not supported');
        // return false;
    }

    // ascii decimals for better compatibility
    entities['38'] = '&amp;';
    if (useQuoteStyle !== 'ENT_NOQUOTES') {
        entities['34'] = '&quot;';
    }
    if (useQuoteStyle === 'ENT_QUOTES') {
        entities['39'] = '&#039;';
    }
    entities['60'] = '&lt;';
    entities['62'] = '&gt;';

    if (useTable === 'HTML_ENTITIES') {
      entities['160'] = '&nbsp;';
      entities['161'] = '&iexcl;';
      entities['162'] = '&cent;';
      entities['163'] = '&pound;';
      entities['164'] = '&curren;';
      entities['165'] = '&yen;';
      entities['166'] = '&brvbar;';
      entities['167'] = '&sect;';
      entities['168'] = '&uml;';
      entities['169'] = '&copy;';
      entities['170'] = '&ordf;';
      entities['171'] = '&laquo;';
      entities['172'] = '&not;';
      entities['173'] = '&shy;';
      entities['174'] = '&reg;';
      entities['175'] = '&macr;';
      entities['176'] = '&deg;';
      entities['177'] = '&plusmn;';
      entities['178'] = '&sup2;';
      entities['179'] = '&sup3;';
      entities['180'] = '&acute;';
      entities['181'] = '&micro;';
      entities['182'] = '&para;';
      entities['183'] = '&middot;';
      entities['184'] = '&cedil;';
      entities['185'] = '&sup1;';
      entities['186'] = '&ordm;';
      entities['187'] = '&raquo;';
      entities['188'] = '&frac14;';
      entities['189'] = '&frac12;';
      entities['190'] = '&frac34;';
      entities['191'] = '&iquest;';
      entities['192'] = '&Agrave;';
      entities['193'] = '&Aacute;';
      entities['194'] = '&Acirc;';
      entities['195'] = '&Atilde;';
      entities['196'] = '&Auml;';
      entities['197'] = '&Aring;';
      entities['198'] = '&AElig;';
      entities['199'] = '&Ccedil;';
      entities['200'] = '&Egrave;';
      entities['201'] = '&Eacute;';
      entities['202'] = '&Ecirc;';
      entities['203'] = '&Euml;';
      entities['204'] = '&Igrave;';
      entities['205'] = '&Iacute;';
      entities['206'] = '&Icirc;';
      entities['207'] = '&Iuml;';
      entities['208'] = '&ETH;';
      entities['209'] = '&Ntilde;';
      entities['210'] = '&Ograve;';
      entities['211'] = '&Oacute;';
      entities['212'] = '&Ocirc;';
      entities['213'] = '&Otilde;';
      entities['214'] = '&Ouml;';
      entities['215'] = '&times;';
      entities['216'] = '&Oslash;';
      entities['217'] = '&Ugrave;';
      entities['218'] = '&Uacute;';
      entities['219'] = '&Ucirc;';
      entities['220'] = '&Uuml;';
      entities['221'] = '&Yacute;';
      entities['222'] = '&THORN;';
      entities['223'] = '&szlig;';
      entities['224'] = '&agrave;';
      entities['225'] = '&aacute;';
      entities['226'] = '&acirc;';
      entities['227'] = '&atilde;';
      entities['228'] = '&auml;';
      entities['229'] = '&aring;';
      entities['230'] = '&aelig;';
      entities['231'] = '&ccedil;';
      entities['232'] = '&egrave;';
      entities['233'] = '&eacute;';
      entities['234'] = '&ecirc;';
      entities['235'] = '&euml;';
      entities['236'] = '&igrave;';
      entities['237'] = '&iacute;';
      entities['238'] = '&icirc;';
      entities['239'] = '&iuml;';
      entities['240'] = '&eth;';
      entities['241'] = '&ntilde;';
      entities['242'] = '&ograve;';
      entities['243'] = '&oacute;';
      entities['244'] = '&ocirc;';
      entities['245'] = '&otilde;';
      entities['246'] = '&ouml;';
      entities['247'] = '&divide;';
      entities['248'] = '&oslash;';
      entities['249'] = '&ugrave;';
      entities['250'] = '&uacute;';
      entities['251'] = '&ucirc;';
      entities['252'] = '&uuml;';
      entities['253'] = '&yacute;';
      entities['254'] = '&thorn;';
      entities['255'] = '&yuml;';
    }

    // ascii decimals to real symbols
    for (decimal in entities) {
        symbol = String.fromCharCode(decimal);
        histogram[symbol] = entities[decimal];
    }

    return histogram;
}