var city_info = 0;
var curCity = 0;
var getRepInfo = false;
var addCityCaut = "";//Add city arabic text

function getFirstCity(obj){
  document.getElementById('wait').style.display = "block";
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'getFirstCity',
      'id': document.getElementById(obj).value
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        city_info = result['city_info'];
        //curCity = result['city_id'];
        curCity = result['city_info'];
        var latLon = curCity.split(",");
        moveToPos(latLon[0], latLon[1]);
        
        //Calculate GMT
        var gmt = result['gmt'];
        if(!gmt){
          var lonGmt = latLon[1].split('.');
          gmt = gmtRound((lonGmt[0] / 180) * 12);
        }

        document.getElementById('gmt').value = gmt;
        document.getElementById('wait').style.display = "none";
      }
    },
    false
  );
}

function getCities(obj){
  document.getElementById('wait').style.display = "block";
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'getCities',
      'id': document.getElementById(obj).value
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        document.getElementById('usub_caut').style.display = "none";
        document.forms['info'].city.options.length = 0;
        for(i = 0; i < result['city_name'].length;i++){
          document.forms['info'].city.options[i] = new Option(result['city_name'][i],result['city_id'][i],(result['city_id'][i] == selectedCity ? true : false));
          if(result['city_usub'][i] == "1"){
            document.forms['info'].city.options[i].style.color = "#2C79BF";
            document.getElementById('usub_caut').style.display = "block";
          }
        }
        
        city_info = result['city_info'];
        curCity = result['city_info'][result['city_id'][0]];
        var latLon = curCity.split(",");
        moveToPos(latLon[0], latLon[1]);
        
        //Calculate GMT
        var gmt = result['gmt'];
        if(!gmt){
          var lonGmt = latLon[1].split('.');
          gmt = gmtRound((lonGmt[0] / 180) * 12);
        }

        /*if(result['dst'] == 1){
          document.getElementById('dst_m').innerHTML = result['dst_caut'];
          document.getElementById('dst').value = 1;
          //gmt++;
        }
        else{
          document.getElementById('dst_m').innerHTML = "";
          document.getElementById('dst').value = 0;
        }*/
        
        document.getElementById('gmt').value = gmt;
        document.getElementById('wait').style.display = "none";
        
        onMap = false;
        onGsr = false;
        
        //Woooooooooooooooow
        //if(getRepInfo) getUserInfo();
      }
    },
    false
  );
}

function getTimes(){
  var ctype = document.getElementById('ctype').value;
  var month = document.getElementById('mon_'+ ctype).value;
  var year = document.getElementById('year_'+ ctype).value;
  document.getElementById('month').value = month;
  document.getElementById('year').value = year;
  
  var mon_name = document.getElementById('mon_'+ ctype).options[document.getElementById('mon_'+ ctype).selectedIndex].text;//Get month name
  var latLon = curCity.split(",");
  document.getElementById('wait').style.display = "block";
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'getTimes',
      'lat': document.getElementById('latbox').innerHTML,
      'lon': document.getElementById('lonbox').innerHTML,
      'gmt': document.getElementById('gmt').value,
      'dst': document.getElementById('dst').value,
      'cal_by': document.getElementById('cal_day').checked ? 'day' : 'mon',
      'caltp_fadjr': document.getElementById('caltp_fadjr').value,
      'caltp_maghreb': document.getElementById('caltp_maghreb').value,
      'caltp_isha': document.getElementById('caltp_isha').value,
      'date': document.getElementById('date').value,
      'ctype': ctype,
      'month': month,
      'year': year,
      'cnt': document.getElementById('cnt').value,
      'on_map': onMap ? '1' : '0'
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        var times = result['times'];
        
        if(document.getElementById('cal_day').checked){
          document.getElementById('times').style.display = "block";
          document.getElementById('times_mon').style.display = "none";
          
          document.getElementById('Fajr').innerHTML = times['Fajr'];
          document.getElementById('Toloo').innerHTML = times['Toloo'];
          document.getElementById('Dhohr').innerHTML = times['Dhohr'];
          document.getElementById('Ghoroob').innerHTML = times['Ghoroob'];
          document.getElementById('Maghreb').innerHTML = times['Maghreb'];
          document.getElementById('Midnight').innerHTML = times['Midnight'];

          document.getElementById('gmt').style.color = "#BF0000";
          /*if(onMap){
            document.getElementById('map_caution').style.display = "block";
            document.getElementById('gmt').style.color = "#BF0000";
            document.getElementById('gmt_m').style.color = "#BF0000";
          }
          else{
            document.getElementById('map_caution').style.display = "none";
            document.getElementById('gmt').style.color = "#000000";
            document.getElementById('gmt_m').style.color = "#333333";
          }*/
        }
        else{
          document.getElementById('times').style.display = "none";
          document.getElementById('times_mon').style.display = "block";
          document.getElementById('mon_tbl').innerHTML = result['mon_table'];
        }
        
        document.getElementById('wait').style.display = "none";
        
        if(result['canCalc']){
          document.getElementById('canCalc1').style.display = "none";
          document.getElementById('canCalc2').style.display = "none";
        }
        else{
          document.getElementById('canCalc1').style.display = "block";
          document.getElementById('canCalc2').style.display = "block";
        }
      }
    },
    false
  );
}

function getTimesPrint(){
  //var mon_name = document.getElementById('mon_'+ ctype).options[document.getElementById('mon_'+ ctype).selectedIndex].text;//Get month name
  //var latLon = curCity.split(",");
  document.getElementById('wait').style.display = "block";

  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'getTimes',
      'lat': document.getElementById('lat').value,
      'lon': document.getElementById('lon').value,
      'gmt': document.getElementById('gmt').value,
      'dst': document.getElementById('dst').value,
      'cal_by': 'mon',
      'caltp_fadjr': document.getElementById('caltp_fadjr').value,
      'caltp_maghreb': document.getElementById('caltp_maghreb').value,
      'caltp_isha': document.getElementById('caltp_isha').value,
      'ctype': document.getElementById('ctype').value,
      'day': document.getElementById('day').value,
      'month': document.getElementById('month').value,
      'year': document.getElementById('year').value,
      'cnt': document.getElementById('cnt').value,
      'city': document.getElementById('city').value,
      'print': '1',
      'on_map': '0'
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        var times = result['times'];
        
        document.getElementById('times_mon').style.display = "block";
        document.getElementById('mon_tbl').innerHTML = result['mon_table'];
        
        document.getElementById('wait').style.display = "none";
        
        if(!document.getElementById('no_print').value){
          window.print();
        }
      }
    },
    true
  );
}

function addCity(obj){
  document.getElementById('wait').style.display = "block";
  if(!onMap){
    alert(addCityCaut);
    document.getElementById('wait').style.display = "none";
    return;
  }
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'addCity',
      'cnt': document.getElementById('cnt').value,
      'city': document.getElementById('city_name').value,
      'lat': document.getElementById('latbox').innerHTML,
      'lon': document.getElementById('lonbox').innerHTML,
      'gmt': document.getElementById('gmt').value
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        if(result['res'] == 1){
          document.getElementById('res').innerHTML = result['op_res'];
          document.getElementById('res').className = "message";
        }
        else{
          document.getElementById('res').innerHTML = result['op_res'];
          document.getElementById('res').className = "error";
        }
        
        document.getElementById('res').style.display = "block";
        document.getElementById('wait').style.display = "none";
      }
    },
    false
  );
}

function setData(){
  document.getElementById('wait').style.display = "block";
  var expiredays = 3650;
  var path = '/';
  var nuser = true;
  if (document.cookie.length > 0){
    var c_start = document.cookie.indexOf("azan=");
    if (c_start != -1){
      nuser = false;
    }
  }

  var cookiedata = "azan="+
       (onGsr | onMap ? -1 : escape(document.getElementById('city').value))+"|"+
       escape(document.getElementById('cityname').value)+"|"+
       escape(document.getElementById('latbox').innerHTML)+"|"+
       escape(document.getElementById('lonbox').innerHTML)+"|"+
       escape(document.getElementById('gmt').value)+"|"+
       escape(document.getElementById('dst').value)+"|"+
       escape(document.getElementById('caltp_fadjr').value)+"|"+
       escape(document.getElementById('caltp_maghreb').value)+"|"+
       escape(document.getElementById('caltp_isha').value)+"|"+
       (document.getElementById('snd').checked ? 1 : 0);

  var exdate = new Date();
  exdate.setDate(exdate.getDate() + expiredays);
  document.cookie = cookiedata + ((expiredays==null) ? "" : "; expires="+exdate.toGMTString()) + ((path==null) ? "" : "; path="+path);
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'setAzan',
      'cnt': document.getElementById('cnt').value,
      'city': document.getElementById('city').value,
      'cityname': document.getElementById('cityname').value,
      'lat': document.getElementById('latbox').innerHTML,
      'lon': document.getElementById('lonbox').innerHTML,
      'gmt': document.getElementById('gmt').value,
      'dst': document.getElementById('dst').value,
      'gsr': onGsr,
      'caltype': document.getElementById('caltype').value,
      'caltp_fadjr': document.getElementById('caltp_fadjr').value,
      'caltp_maghreb': document.getElementById('caltp_maghreb').value,
      'caltp_isha': document.getElementById('caltp_isha').value,
      'snd': document.getElementById('snd').checked ? 1 : 0,
      'nuser': nuser ? 1 : 0
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        if(result['res'] == 1){
          document.getElementById('res').innerHTML = result['op_res'];
          document.getElementById('res').className = "message";

          document.getElementById('azan_service').innerHTML = result['azan_service'];
          getAzanTimes(0);
        }
        else{
          document.getElementById('res').innerHTML = result['op_res'];
          document.getElementById('res').className = "error";
        }
        
        document.getElementById('res').style.display = "block";
        document.getElementById('wait').style.display = "none";
      }
    },
    false
  );
}

function getAzanTimes(day){
  document.getElementById('uazan_wait').style.display = "block";

  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'getAzanTimes',
      'day': day
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        var times = result['times'];
        
        Fajr   = times['Fajr'];
        Sunrise  = times['Toloo'];
        Dhohr  = times['Dhohr'];
        Sunset   = times['Ghoroob'];
        Maghreb  = times['Maghreb'];
        Midnight = times['Midnight'];
        TFajr  = times['TFajr'];
        
        lang = result['lang'];
        localTime = result['localtime'];
        
        getAzan();
        showRemainingTime();
        
        document.getElementById('uazan_wait').style.display = "none";
      }
    },
    true
  );
}

function getSrvTimes(userId){
  document.getElementById('uazan_wait').style.display = "block";
  uid = userId;
  serv = true;
  
  var now = new Date();
  var day   = now.getDate();
  var mon   = now.getMonth() + 1;
  var year  = now.getFullYear();
  var curDate = year +"-"+ mon +"-"+ day;
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'getAzanTimes',
      'serv': true,
      'userId': userId,
      'date': curDate
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        var times = result['times'];

        Fajr   = times['Fajr'];
        Sunrise  = times['Toloo'];
        Dhohr  = times['Dhohr'];
        Sunset   = times['Ghoroob'];
        Maghreb  = times['Maghreb'];
        Midnight = times['Midnight'];
        TFajr  = times['TFajr'];
        
        lang = result['lang'];
        localTime = result['localtime'];
        
        getAzan();
        showRemainingTime();
        
        document.getElementById('uazan_wait').style.display = "none";
      }
    },
    true
  );
}

function sendFeed(){
  document.getElementById('wait').style.display = "block";
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'sendFeed',
      'fname': document.getElementById('fname').value,
      'femail': document.getElementById('femail').value,
      'ftext': document.getElementById('ftext').value,
      'fcode': document.getElementById('fcode').value
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        if(result['res'] == 1){
          document.getElementById('res').innerHTML = result['op_res'];
          document.getElementById('res').className = "message";
          document.getElementById('ftext').value = "";
        }
        else{
          document.getElementById('res').innerHTML = result['op_res'];
          document.getElementById('res').className = "error";
        }
        
        document.getElementById('wait').style.display = "none";
      }
    },
    false
  );
}

function tellFriend(){
  document.getElementById('wait').style.display = "block";
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'tellFriend',
      'fname': document.getElementById('sname').value,
      'femail': document.getElementById('semail').value,
      'fname': document.getElementById('fname').value,
      'femail': document.getElementById('femail').value,
      'ftext': document.getElementById('ftext').value
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        if(result['res'] == 1){
          document.getElementById('res').innerHTML = result['op_res'];
          document.getElementById('res').className = "message";
          document.getElementById('ftext').value = "";
        }
        else{
          document.getElementById('res').innerHTML = result['op_res'];
          document.getElementById('res').className = "error";
        }
        
        document.getElementById('wait').style.display = "none";
      }
    },
    false
  );
}

function getUserInfo(){
  document.getElementById('wait').style.display = "block";
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'getUserInfo',
      'userId': document.getElementById('userId').value
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        var res  = result['res'];
        var classname = "message";
        
        if(res == 1){
          var info = result['info'];
          
          document.getElementById('website').value = info['website'];
          
          var ucnt = document.getElementById('cnt');
          for(i = 0; i < ucnt.options.length;i++){
            if(ucnt.options[i].value == info['cnt']){
              ucnt.options[i].selected = true;
              break;
            }
          }
          
          if(!getRepInfo){
            getRepInfo = true;
            getCities('cnt');
          }
          else{
            getRepInfo = false;
          }
          
          var ucity = document.getElementById('city');
          for(i = 0; i < ucity.options.length;i++){
            if(ucity.options[i].value == info['city']){
              ucity.options[i].selected = true;
              break;
            }
          }

          document.getElementById('latbox').innerHTML = info['lat'];
          document.getElementById('lonbox').innerHTML = info['lon'];
          
          document.getElementById('gmt').value = info['gmt'];
          
          document.getElementById(info['caltype']).checked = true;

          document.getElementById('caltp_fadjr').value = info['caltp_fadjr'];
          document.getElementById('caltp_maghreb').value = info['caltp_maghreb'];
          document.getElementById('caltp_isha').value = info['caltp_isha'];
          
          var ops = info['options'];
          document.getElementById('color_a').value = ops['color_a'];
          document.getElementById('color_b').value = ops['color_b'];
          document.getElementById('color_c').value = ops['color_c'];
          document.getElementById('color_d').value = ops['color_d'];
          document.getElementById('color_e').value = ops['color_e'];
          document.getElementById('color_f').value = ops['color_f'];
          document.getElementById('color_g').value = ops['color_g'];
          document.getElementById('color_h').value = ops['color_h'];
          document.getElementById('color_i').value = ops['color_i'];
          document.getElementById('color_j').value = ops['color_j'];
          
          var font = document.getElementById('font');
          for(i = 0; i < font.options.length;i++){
            if(font.options[i].value == ops['font']){
              font.options[i].selected = true;
              break;
            }
          }
          
          classname = "message";
        }
        else{
          classname = "error";
        }
        
        document.getElementById('res').style.display = "block";
        document.getElementById('res').className = classname;
        document.getElementById('res').innerHTML = result['op_res'];
        
        document.getElementById('wait').style.display = "none";
      }
    },
    false
  );
}

function saveUserInfo(){
  document.getElementById('wait').style.display = "block";
  document.getElementById('wait_srv').style.display = "block";
  var lang = document.getElementById('lang');
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'saveUserInfo',
      'userId': document.getElementById('userId').value,
      'website': document.getElementById('website').value,
      'cnt': document.getElementById('cnt').value,
      'city': document.getElementById('city').value,
      'lat': document.getElementById('latbox').innerHTML,
      'lon': document.getElementById('lonbox').innerHTML,
      'gmt': document.getElementById('gmt').value,

      'caltype': document.getElementById('caltype').value,
      
      'fadjr': document.getElementById('caltp_fadjr').value,
      'maghreb': document.getElementById('caltp_maghreb').value,
      'isha': document.getElementById('caltp_isha').value,

      'color_a': document.getElementById('color_a').value,
      'color_b': document.getElementById('color_b').value,
      'color_c': document.getElementById('color_c').value,
      'color_d': document.getElementById('color_d').value,
      'color_e': document.getElementById('color_e').value,
      'color_f': document.getElementById('color_f').value,
      'color_g': document.getElementById('color_g').value,
      'color_h': document.getElementById('color_h').value,
      'color_i': document.getElementById('color_i').value,
      'color_j': document.getElementById('color_j').value,
      
      'font': document.getElementById('font').value,
      'lang': lang.options[lang.selectedIndex].value
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        var res  = result['res'];
        var msg  = result['msg'];
        var classname = "message";
        
        if(res == 1){
          classname = "message";
        }
        else if(res == 2){
          document.getElementById('userId').value = result['userid'];
          document.getElementById('srv_code_1').innerHTML = result['code_1'];
          document.getElementById('srv_code_2').innerHTML = result['code_2'];
          document.getElementById('srv_code_1').style.display = "block";
          document.getElementById('srv_code_2').style.display = "block";
          classname = "message";
        }
        else{
          classname = "error";
        }
        
        document.getElementById('res').style.display = "block";
        document.getElementById('res').className = classname;
        document.getElementById('res').innerHTML = msg;
        
        document.getElementById('wait').style.display = "none";
        document.getElementById('wait_srv').style.display = "none";
      }
    },
    false
  );
}

function setPoll(){
  if(document.getElementById('ans').value == 0){
    document.getElementById('poll_res').innerHTML = "&nbsp;";
    document.getElementById('poll_res').className = "error";
    document.getElementById('poll_res').style.display = "block";
    return;
  }
  
  document.getElementById('wait_poll').style.display = "block";
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'setPoll',
      'poll': document.getElementById('poll').value,
      'ans': document.getElementById('ans').value
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        if(result['res'] == 1){
          document.getElementById('poll_text').innerHTML = result['text'];
          document.getElementById('poll_res').innerHTML = result['op_res'];
          document.getElementById('poll_res').className = "message";
        }
        else{
          document.getElementById('poll_res').innerHTML = result['op_res'];
          document.getElementById('poll_res').className = "error";
        }

      }
    },
    false
  );
}

function sendRelatedFeed(){
  document.getElementById('com_wait').style.display = "block";
  
  var cal_by = document.getElementById('cal_day').checked ? "Day: "+ document.getElementById('date').value : "Month: "+ document.getElementById('month').value +" "+ document.getElementById('year').value;
  
  var text = "";
  if(document.getElementById('ftext').value != ""){
    text = "Lat: "+ document.getElementById('latbox').innerHTML +"<br />\n";
    text+= "Lon: "+ document.getElementById('lonbox').innerHTML +"<br />\n";
    text+= "GMT: "+ document.getElementById('gmt').value +"<br />\n";
    text+= "DST: "+ document.getElementById('dst').value +"<br />\n";
    text+= cal_by +"<br />\n";
    text+= "Parameters: "+ document.getElementById('caltp_fadjr').value +","+ document.getElementById('caltp_maghreb').value +","+ document.getElementById('caltp_isha').value +"<br />\n";
    text+= "Country: "+ document.forms['info'].cnt.options[document.getElementById('cnt').selectedIndex].innerHTML +"<br />\n";
    text+= "City: "+ document.forms['info'].city.options[document.getElementById('city').selectedIndex].innerHTML +"<br />\n";
    text+= "Type: <b>"+ document.forms['info'].comtype.options[document.getElementById('comtype').selectedIndex].innerHTML +"</b><br />\n";
    text+= "<br />\n"+ document.getElementById('ftext').value;
  }
  
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'sendFeed',
      'fname': document.getElementById('fname').value,
      'femail': document.getElementById('femail').value,
  	'fcode': document.getElementById('fcode').value,
      'ftext': text
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        if(result['res'] == 1){
          document.getElementById('com_res').innerHTML = result['op_res'];
          document.getElementById('com_res').className = "message";
          document.getElementById('ftext').value = "";
        }
        else{
          document.getElementById('com_res').innerHTML = result['op_res'];
          document.getElementById('com_res').className = "error";
        }
        
        document.getElementById('com_wait').style.display = "none";
      }
    },
    false
  );
}

function getWorks(){
  JsHttpRequest.query(
    'ajax.php',
    {
      'm': 'getWorks',
      'day': document.getElementById('day').value,
      'month': document.getElementById('month').value,
      'year': document.getElementById('year').value
    },

    function(result, errors) {
      if (errors){
        alert(errors);
      }
      
      if (result) {
        if(result['res'] == 1){
          window.location = result['op_res'];
        }
        else{
          document.getElementById('res').innerHTML = result['op_res'];
          document.getElementById('res').className = "error";
        }
      }
    },
    false
  );
}
