/***************************************************************
primary JS functionality  :: swinginsam.com
author                    :: skoti-alain elliott for swingin'sam.designs
***************************************************************/

AJAX_URL      = "_scripts/ssd_ajax.php";
TRACER        = true;

$(document).ready(function() {
  
  browser_detect();
  
  $("footer ul").find("li::last-child").css({'border':'none'});
  
  init_header();
  
  init_nav();
  
  if($browser != 'ios') { $("[rel='tt']").tooltip( {offset:[0,-5],effect:'slide'} ); }
  
  local_storage('pull');
  
});

function init_header() {
  colours             = new Array(
    'rgba(91,67,71,   0.2)',
    'rgba(107,108,85, 0.2)',
    'rgba(155,138,126,0.2)',
    'rgba(184,199,210,0.2)',
    'rgba(183,175,178,0.2)',
    'rgba(201,186,184,0.2)',
    'rgba(229,231,230,0.2)',
    'rgba(243,243,243,0.2)',
    'rgba(160,160,160,0.2)',
    'rgba(131,176,48, 0.2)');
  bar_w               = 10;
  if(Modernizr.rgba) { // not IE...
    parse_bars('metre');
  }
}

function parse_bars(obj) {
  var win_w           = $("#"+obj).width();
  var num_bars        = win_w / bar_w;
  //console.log(num_bars);
  var tot_w           = 0;
  for(kk=0;kk<=Math.ceil(num_bars);kk++) {
    tot_w             += bar_w;
    add_bar(obj);
    if(tot_w >= $("#"+obj).width()) { break; }
  }
  
  $("#"+obj).append("<div class='clear'></div>");
  
  $("#"+obj).find('div.left::odd').addClass('box-shadow');
  
  if($browser != 'iPad' && $browser != 'iPhone') {
    $("#"+obj).find('div.left').each(function() {
      $(this).animate({height:gen_rand(15)+'px'},1000);
    });
  }
}

function add_bar(obj) {
  if($browser != 'iPad' && $browser != 'iPhone') {
    var $bar          = "<div class='left' style='background:"+colours[gen_rand(1)]+";height:5px;width:"+bar_w+"px;'></div>";
  } else {
    var $bar          = "<div class='left' style='background:"+colours[gen_rand(1)]+";height:"+gen_rand(15)+"px;width:"+bar_w+"px;'></div>";
  }
  $("#"+obj).append($bar);
}

function gen_rand(multi) {
  return rand         = Math.floor(Math.random()*(10*multi));
}

function init_nav() {
  if($browser != 'ios') {
    $("header nav").find("li")
      .each(function() {
        $(this).append('<label>'+$(this).find("a").attr('title')+'</label>');
      }).hover(function() {
        $(this).find("label").fadeIn(200);
      },function() {
        $(this).find("label").fadeOut(500);
      });
  } else {
    $("header nav").find("li::odd").each(function() {
      $(this).append('<label class="ios_top">'+$(this).find("a").attr('title')+'</label>');
    });
    $("header nav").find("li::even").each(function() {
      $(this).append('<label class="ios_bot">'+$(this).find("a").attr('title')+'</label>');
    });
  }
}

function choice(obj,val) {
  //console.log(obj,val);
  switch(obj) {
    case 'contact_route' : {
      $("#form_submit").fadeOut(100);
      var divs = new Array(
        'div_contact_firstname',        // 0
        'div_contact_lastname',         // 1
        'div_contact_email',            // 2
        'div_contact_telephone',        // 3
        'div_contact_company',          // 4
        'div_contact_change_type',      // 5
        'div_contact_urgency',          // 6
        'div_contact_url',              // 7
        'div_contact_multi',            // 8
        'div_contact_alt_url',          // 9
        'div_contact_current_content',  // 10
        'div_contact_new_content',      // 11
        'div_contact_os',               // 12
        'div_contact_browser',          // 13
        'div_contact_browser_v',        // 14
        'div_contact_description1',     // 15
        'div_contact_description2',     // 16
        'div_contact_comment');         // 17
        for(key in divs) {
          $("#"+divs[key]).fadeOut(100);
        }
      switch(val) {
        case 'designs' : {
          $("#"+divs[0]).fadeIn(200);
          $("#"+divs[1]).fadeIn(200);
          $("#"+divs[2]).fadeIn(200);
          $("#"+divs[3]).fadeIn(200);
          $("#"+divs[4]).fadeIn(200);
          $("#"+divs[17]).fadeIn(200);
          $("#form_submit").val('Send Email').fadeIn(200);
          break;
        }
        case 'clients' : {
          $("#"+divs[0]).fadeIn(200);
          $("#"+divs[1]).fadeIn(200);
          $("#"+divs[2]).fadeIn(200);
          $("#"+divs[5]).fadeIn(200);
          $("#"+divs[6]).fadeIn(200);
          $("#"+divs[7]).fadeIn(200);
          $("#"+divs[8]).fadeIn(200);
          //$("#"+divs[10]).fadeIn(200);
          $("#"+divs[11]).fadeIn(200);
          $("#"+divs[17]).fadeIn(200);
          $("#form_submit").val('Submit Request').fadeIn(200);
          break;
        }
        case 'bugs' : {
          $("#"+divs[0]).fadeIn(200);
          $("#"+divs[1]).fadeIn(200);
          $("#"+divs[2]).fadeIn(200);
          $("#"+divs[7]).fadeIn(200);
          $("#"+divs[12]).fadeIn(200);
          $("#"+divs[13]).fadeIn(200);
          $("#"+divs[14]).fadeIn(200);
          $("#"+divs[15]).fadeIn(200);
          $("#"+divs[16]).fadeIn(200);
          $("#"+divs[17]).fadeIn(200);
          $("#form_submit").val('Submit Report').fadeIn(200);
          break;
        }
      }
      break;
    }
    case 'contact_multi' : {
      val == false ? $("#div_contact_alt_url").fadeOut(100) : $("#div_contact_alt_url").fadeIn(200);
      break;
    }
    case 'change_type' : {
      val == 'existing' ? $("#div_contact_current_content").fadeIn(200) : $("#div_contact_current_content").fadeOut(100);
      break;
    }
  }
}

function validate_contact() {
  clear_err();
  var objects = new Array(
    'contact_route',            // 0
    'contact_firstname',        // 1
    'contact_lastname',         // 2
    'contact_email',            // 3
    'contact_telephone',        // 4
    'contact_company',          // 5
    'contact_change_type',      // 6
    'contact_urgency',          // 7
    'contact_url',              // 8
    'contact_multi',            // 9
    'contact_alt_url',          // 10
    'contact_current_content',  // 11
    'contact_new_content',      // 12
    'contact_os',               // 13
    'contact_browser',          // 14
    'contact_browser_v',        // 15
    'contact_description1',     // 16
    'contact_description2',     // 17
    'contact_comment');         // 18
  switch($("#contact_route").val()) {
    case 'designs' : {
      var elements = new Array(1,2,3,18);
      break;
    }
    case 'clients' : {
      var elements  = new Array(1,2,3,8);
      if( $("#"+objects[9]).attr('checked') ) { elements[4] = 10; }
      if( $("#"+objects[6]).val() == 'existing' ) { elements[5] = 11; }
      elements[6]   = 12;
      elements[7]   = 7;
      break;
    }
    case 'bugs' : {
      var elements = new Array(1,2,3,8,13,14,15,16,17);
      break;
    }
  }
  for(key in elements) {
    var $status = parse_form_element(objects[elements[key]]);
    if($status != 'pass') {
      $("#fb_"+$status).html('This is a mandatory field.');
      $("#"+$status).focus();
      return false;
      break;
    }
  }
  local_storage('push'); // save the basic contact data for next time
  if(confirm("Everything looks good. Click 'OK' to send the email or 'CANCEL' to make changes.")) {
    push_contact();
  }
}

function push_contact() {
  $("#contact_form").hide();
  $("#wait").fadeIn(200);
  var objects = new Array(
    'contact_route',            // 0
    'contact_firstname',        // 1
    'contact_lastname',         // 2
    'contact_email',            // 3
    'contact_telephone',        // 4
    'contact_company',          // 5
    'contact_change_type',      // 6
    'contact_urgency',          // 7
    'contact_url',              // 8
    'contact_multi',            // 9
    'contact_alt_url',          // 10
    'contact_current_content',  // 11
    'contact_new_content',      // 12
    'contact_os',               // 13
    'contact_browser',          // 14
    'contact_browser_v',        // 15
    'contact_description1',     // 16
    'contact_description2',     // 17
    'contact_comment');         // 18
  
  var params = "FTC=parse_contact";
  $.each(objects, function(key,obj) {
    params += "&"+obj+"="+$("#"+obj).val();
  });
  $.ajax({
    type: 'POST',
    url: AJAX_URL,
    dataType: "TEXT",
    data: params,
    success: function(result) {
      if(result == 'pass') {
        $("#wait").hide();
        $("#pass").fadeIn(200);
      } else {
        $("#wait").hide();
        $("#fail").fadeIn(200);
        console.log(result);
      }
    }
  });
}

function parse_form_element(obj) {
  //console.log( obj + ' -> ' + $("#"+obj).val() );
  var status = 'pass';
  if( isBlank( $("#"+obj).val() ) || isNull( $("#"+obj).val() ) ) { status = obj; }
  return status;
}

function local_storage(method) {
  if(Modernizr.localstorage) {
    var $objects = new Array(
      'contact_firstname',
      'contact_lastname', 
      'contact_email',    
      'contact_telephone',
      'contact_company');
    switch(method) {
      case 'push' : {
        localStorage.setItem("flag",true);
        $.each($objects,function(key,obj) {
          localStorage.setItem( obj, $("#"+obj).val() );
        });
        break;
      }
      case 'pull' : {
        if( localStorage.getItem("flag") ) {
          $.each($objects,function(key,obj) {
            $("#"+obj).val( localStorage.getItem(obj) );
          });
        }
        break;
      }
    }
  }
}

function load_article() {
  $("#content")
    .fadeOut(50)
    .load( 'article_' + $("#current_article").val() + '.php #article_' + $("#current_article").val() )
    .delay(200)
    .fadeIn(200);
    
  //$("#content").find("[rel='tt']").each(function() {
  //  console.log($(this));
  //  $(this).tooltip( {offset:[0,-5],effect:'slide'} );
  //});
}


/* TEMPORARY SCRIPTS - ARTICLES */

function change_colour(rgb) {
	$("#colour_box").css({"background":rgb});
}


