#!/bin/sh

. /etc/default/locale

LL="${LANG%%_*}"
LL="${LL%%.*}"
LL="${LL%%@*}"
CC="${LANG##*_}"
CC="${CC%%.*}"
CC="${CC%%@*}"

fix_yahoo_xml() {
  url="$1"
  base="$2"
  file="$3"
  if [ -e "$file" ]; then
    sed -i "s|method=\"GET\" template=\".*\"|method=\"GET\" template=\"$url\"|" "$file"
    sed -i "s|<SearchForm>.*?\(.*\)</SearchForm>|<SearchForm>$base?\1</SearchForm>|" "$file"
  fi
}

search() {
  url="$1"
  base="${url%/*}"
  sed -i "s|pref(\"keyword.URL\", \".*?\(.*\)\");|pref(\"keyword.URL\", \"$url?\1\");|" "/usr/share/ubufox/defaults/preferences/yahoo.js"
  fix_yahoo_xml "$url" "$base" "/usr/lib/firefox-addons/searchplugins/yahoo.xml"
  fix_yahoo_xml "$url" "$base" "/usr/lib/moblin-web-browser-3.5.3/searchplugins/yahoo.xml"
  fix_yahoo_xml "$url" "$base" "/usr/lib/moblin-web-browser-3.5/searchplugins/yahoo.xml"
}

# Big table of possible specialized links:
case "$LL" in
  'ar')
    search "http://uk.search.yahoo.com/search"
    ;;
  'cs')
    search "http://uk.search.yahoo.com/search"
    ;;
  'hr')
    search "http://uk.search.yahoo.com/search"
    ;;
  'da')
    search "http://dk.search.yahoo.com/search"
    ;;
  'nl')
    search "http://nl.search.yahoo.com/search"
    ;;
  'de')
    search "http://de.search.yahoo.com/search"
    ;;
  'el')
    search "http://uk.search.yahoo.com/search"
    ;;
  'en')
    case "$CC" in
      'GB')
        search "http://uk.search.yahoo.com/search"
        ;;
      'GI')
        search "http://uk.search.yahoo.com/search"
        ;;
      'IE')
        search "http://uk.search.yahoo.com/search"
        ;;
      'ZA')
        search "http://uk.search.yahoo.com/search"
        ;;
      'AU')
        search "http://au.search.yahoo.com/search"
        ;;
      'NZ')
        search "http://au.search.yahoo.com/search"
        ;;
      'CA')
        search "http://ca.search.yahoo.com/search"
        ;;
      'IR')
        search "http://uk.search.yahoo.com/search"
        ;;
      'IN')
        search "http://in.search.yahoo.com/search"
        ;;
      'SG')
        search "http://sg.search.yahoo.com/search"
        ;;
      'BN')
        search "http://uk.search.yahoo.com/search"
        ;;
      'ID')
        search "http://id.search.yahoo.com/search"
        ;;
      'MY')
        search "http://my.search.yahoo.com/search"
        ;;
      'PH')
        search "http://ph.search.yahoo.com/search"
        ;;
      'TH')
        search "http://th.search.yahoo.com/search"
        ;;
      'VN')
        search "http://vn.search.yahoo.com/search"
        ;;
      *)
        search "http://search.yahoo.com/search"
        ;;
    esac
    ;;
  'fi')
    search "http://fi.search.yahoo.com/search"
    ;;
  'fr')
    case "$CC" in
      'CA')
        search "http://qc.search.yahoo.com/search"
        ;;
      *)
        search "http://fr.search.yahoo.com/search"
        ;;
    esac
    ;;
  'he')
    search "http://uk.search.yahoo.com/search"
    ;;
  'hu')
    search "http://uk.search.yahoo.com/search"
    ;;
  'it')
    search "http://it.search.yahoo.com/search"
    ;;
  'ja')
    search "http://search.yahoo.co.jp/search"
    ;;
  'ko')
    search "http://kr.search.yahoo.com/search"
    ;;
  'ms')
    case "$CC" in
      'ID')
        search "http://id.search.yahoo.com/search"
        ;;
      *)
        search "http://my.search.yahoo.com/search"
        ;;
    esac
    ;;
  'no')
    search "http://no.search.yahoo.com/search"
    ;;
  'pl')
    search "http://uk.search.yahoo.com/search"
    ;;
  'pt')
    search "http://br.search.yahoo.com/search"
    ;;
  'ru')
    search "http://ru.search.yahoo.com/search"
    ;;
  'zh')
    case "$CC" in
      'HK')
        search "http://hk.search.yahoo.com/search"
        ;;
      'TW')
        search "http://tw.search.yahoo.com/search"
        ;;
      *)
        search "http://cn.search.yahoo.com/search"
        ;;
    esac
    ;;
  'es')
    case "$CC" in
      'US')
        search "http://espanol.search.yahoo.com/search"
        ;;
      'MX')
        search "http://mx.search.yahoo.com/search"
        ;;
      'AR')
        search "http://ar.search.yahoo.com/search"
        ;;
      'CO')
        search "http://co.search.yahoo.com/search"
        ;;
      'PE')
        search "http://pe.search.yahoo.com/search"
        ;;
      'VE')
        search "http://ve.search.yahoo.com/search"
        ;;
      'CL')
        search "http://cl.search.yahoo.com/search"
        ;;
      *)
        search "http://es.search.yahoo.com/search"
        ;;
    esac
    ;;
  'sv')
    search "http://se.search.yahoo.com/search"
    ;;
  'th')
    search "http://th.search.yahoo.com/search"
    ;;
  'tr')
    search "http://uk.search.yahoo.com/search"
    ;;
  'vi')
    search "http://vn.search.yahoo.com/search"
    ;;
  *)
    search "http://search.yahoo.com/search"
    ;;
esac

export LANG

# Set Yahoo! IDs (will be blank if no ID file installed)
YAHOO_DEFAULT_ID=$(yahoo-get-id 2>/dev/null)
sed -i "s/fr=.*/fr=${YAHOO_DEFAULT_ID}/g" /usr/share/ubufox/defaults/preferences/yahoo.properties

YAHOO_CHROME_ID=$(yahoo-get-id chrome 2>/dev/null)
sed -i "s/fr=.*</fr=${YAHOO_CHROME_ID}</g" /usr/lib/firefox-addons/searchplugins/yahoo.xml
sed -i "s/fr=.*</fr=${YAHOO_CHROME_ID}</g" /usr/lib/moblin-web-browser-3.5.3/searchplugins/yahoo.xml
sed -i "s/fr=.*</fr=${YAHOO_CHROME_ID}</g" /usr/lib/moblin-web-browser-3.5/searchplugins/yahoo.xml
sed -i "s/yahoo-fr\", \".*\");/yahoo-fr\", \"${YAHOO_CHROME_ID}\");/g" /usr/share/ubufox/defaults/preferences/yahoo.js
sed -i "s/yahoo-fr-cjkt\", \".*\");/yahoo-fr-cjkt\", \"${YAHOO_CHROME_ID}\");/g" /usr/share/ubufox/defaults/preferences/yahoo.js
sed -i "s/fr=.*&/fr=${YAHOO_CHROME_ID}\&/g" /usr/share/ubufox/defaults/preferences/yahoo.js

YAHOO_TOOLBAR_ID=$(yahoo-get-id toolbar 2>/dev/null)
sed -i "s/installer.dc\\\\\", \\\\\".*\\\\\");/installer.dc\\\\\", \\\\\"${YAHOO_TOOLBAR_ID}\\\\\");/g" /usr/bin/yahoo-set-defaults-user
sed -i "s/installer.sc\\\\\", \\\\\".*\\\\\");/installer.sc\\\\\", \\\\\"${YAHOO_TOOLBAR_ID}\\\\\");/g" /usr/bin/yahoo-set-defaults-user
sed -i "s/installer.pc\\\\\", \\\\\".*\\\\\");/installer.pc\\\\\", \\\\\"${YAHOO_TOOLBAR_ID}\\\\\");/g" /usr/bin/yahoo-set-defaults-user
rm -f /home/*/.config/.yahoo-set-defaults-user

# Now set up any Baidu info, if in China
case "$CC" in
  CN|HK|TW)
    sed -i "s|homepage=.*|homepage=http://www.baidu.com/?tn=ubuntuu_cb|" /usr/share/ubufox/defaults/preferences/yahoo.properties
    sed -i "s|selectedEngine=.*|selectedEngine=百度一下|" /usr/share/ubufox/defaults/preferences/yahoo.properties
    sed -i "s|defaultenginename=.*|defaultenginename=百度一下|" /usr/share/ubufox/defaults/preferences/yahoo.properties
    sed -i "s|order\.1=.*|order.1=百度一下|" /usr/share/ubufox/defaults/preferences/yahoo.properties
    sed -i "s|order\.2=.*|order.2=Yahoo|" /usr/share/ubufox/defaults/preferences/yahoo.properties
    sed -i "s|pref(\"keyword.URL\", \".*\");|pref(\"keyword.URL\", \"http://www.baidu.com/s?cl=3\&tn=ubuntuu_dg\&wd=\");|" /usr/share/ubufox/defaults/preferences/yahoo.js
    ;;
esac
