﻿var cart=new Array(); // global scope
var itemPtr=0;        //
var Sum=0.0;

var cust='';         //global var used in cookie and in file to identify customer
var keepCookie = 1;  // days to keep a cookie in browser


// item class
function item(name,size,price,color)
{
  this.name=name;
  this.size=size;
  this.price=price;
  this.color=color;
  this.active=true;   // if item will be deleted - the value will be set to false
}


function show_frakt_text(event)
{
   var x=event.pageX - 100;
   var y=event.pageY + 20;

   $('<div id="frakt"></div>').appendTo('body').hide();
   $('#frakt').css({top:y,left:x});

   $('#frakt').load("/frakt.php", {},function(){ $('#frakt').show() });
   return false;
}

function hide_frakt_text()
{

   $('#frakt').remove();
   return false;
}




// loading cart at start
function loadCart()
{

  $.post('/cart2.php',{op: 'read', cust: cust},function(data){

    //console.log(data);
    //alert(data.length);
    var len=data.length;

    for (var i=0; i< len; i++){

      cart[i]=new item(data[i].name,data[i].size,data[i].price,data[i].color);

      floatprice=price_to_float(data[i].price);
      Sum += floatprice;

      $('#carttable').append('<tr id="item'+i+'"><td class="iname">'+data[i].name+'</td><td class="icolor">'+data[i].color+'</td><td class="isize">'+data[i].size+'</td><td class="price">'+data[i].price+' kr</td><td class="idel"><a href="#" id="del'+i+'"><img src="/images/varukorg_delete_off.gif"/></a></td></tr>');
      $('#item'+i).show();

     // hover for delete

      $('#del'+i+' img').hover(
         function () {
           $(this).attr('src',"/images/varukorg_delete_on.gif");
         },
         function () {
           $(this).attr('src',"/images/varukorg_delete_off.gif");
         }
      );

/*
      $('#item'+itemPtr).css('background-color','#181818');
      $('#item'+itemPtr).animate({ backgroundColor: "green" }, 300)
                   .animate({ backgroundColor: "#181818" }, 300, function(){
                   $(this).css('background-color','transparent');});
*/

      $('#del'+i).click(removeItem);
    }
    itemPtr=i;
    var strSum = price_to_string(roundNumber(Sum,2));
    $('#price span').html(strSum);
  },"json");


  // frakt tip

  $('#price a').mouseover(show_frakt_text);
  $('#price a').mouseout(hide_frakt_text);
  $('#price a').click(function(){return false});


  $('a.kop img').hover(
     function () {
       $(this).attr('src',"/images/button_kop_on.gif");
     },
     function () {
        $(this).attr('src',"/images/button_kop_off.gif");
     }
  );
}


function addItem(name,size,price,inp)
{

 var amount=$('#amount'+inp).val();
 var color=$('#color'+inp).val();

 if (typeof(color) == 'undefined' ) color = " "; // for items without color selection

 if ((amount < 1) || (amount > 10)){

   alert ('Amount must be greater 0 and not more than 10');
   return false;
 }

 while (amount > 0){

   cart[itemPtr]=new item(name,size,price,color);
   var floatprice=price_to_float(price);
   Sum+= floatprice;

   //adding to cart on page
   $('#carttable').append('<tr id="item'+itemPtr+'"><td class="iname">'+name+'</td><td class="icolor">'+color+'</td><td class="isize">'+size+'</td><td class="price">'+price+' kr</td><td class="idel"><a href="#" id="del'+itemPtr+'"><img src="/images/varukorg_delete_off.gif"/></a></td></tr>');

   // hover for delete

   $('#del'+itemPtr+' img').hover(
       function () {
           $(this).attr('src',"/images/varukorg_delete_on.gif");
       },
       function () {
           $(this).attr('src',"/images/varukorg_delete_off.gif");
       }
   );


   $('#item'+itemPtr).show();
   $('#item'+itemPtr).css('background-color','#181818');
   $('#item'+itemPtr).animate({ backgroundColor: "green" }, 300)
                   .animate({ backgroundColor: "#181818" }, 300, function(){
                   $(this).css('background-color','transparent');});


   //$('#carttable tr td.idel a').click(removeItem);
   $('#del'+itemPtr).click(removeItem);

   var strSum = price_to_string(roundNumber(Sum,2));
   $('#price span').html(strSum);

   $.post("/cart2.php", {op: 'add', cust: cust, name: name, color: color, size: size, price: price });

   itemPtr++;
   amount--;
 }

 return false;
}

function removeItem(event)
{
  var p=$(event.target).parent();
  var id=p.attr('id');
  var n=id.replace(/del/,'');

  
  //$('#item'+n).css('background-color','#181818');
  //$('#item'+n).animate({ backgroundColor: "red" }, 500,function(){  });
  $('#item'+n).remove();

  //$('#item'+n).fadeOut("slow",function(){ $('#item'+n).remove() });
  //$('#item'+n).remove();

  var floatprice=price_to_float(cart[n].price);
  Sum-= floatprice;
  var strSum = price_to_string(roundNumber(Sum,2));
  $('#price span').html(strSum);

  cart[n].active=false;
  $.post("/cart2.php", {op: 'del', cust: cust, name: cart[n].name, color: cart[n].color, size: cart[n].size, price: cart[n].price });
  //console.log(cart);

  return false;
}

function onOrderSubmit(data)
{

  $('#order').html(data);
  $('#carttable').empty();
  $('#price').empty();

  return false;
}

function manageShopSelects(event)
{
  var town = $('#town').val();

  $.post('/cart2.php',{op: 'getShop', city: town, cust: cust},function(data){

   if (data.length > 10) {

      $('#shopselect').html(data);
      $('#shopselect').show();
   }
   else {

     $('#shopselect').empty();
   }
 });

}

//check form fields
function validateUserData()
{
  // validating name
  var name=$('#orderform input[name="cname"]').val();
  if (name.length == 0){

    alert('Name field is empty');
    return false;
  }

  // validating street address
  var adr=$('#orderform input[name="adr"]').val();
  if (adr.length == 0){

    alert('Address field is empty');
    return false;
  }

  // validating zip
  var zip=$('#orderform input[name="zip"]').val();
  if (zip.length == 0){

    alert('Zip field is empty');
    return false;
  }

  // validating town
  var town=$('#orderform input[name="town"]').val();
  if (town.length == 0){

    alert('Town field is empty');
    return false;
  }

  // validating mail address
  var mail=$('#orderform input[name="mail"]').val();
   if (! mail.match(/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/)){
    alert('E-mail ' + mail + ' not valid');
    return false;
  }

  // validating phone
  var phone=$('#orderform input[name="phone"]').val();
  if (phone.length == 0){

    alert('Phone field is empty');
    return false;
  }


  return true;
}

// loading cart at start
function prepareOrder()
{
  $.post('/cart2.php',{op: 'getOrder', cust: cust},function(data){

     if (data == '0'){  // cart is empty

       $.facebox('Varukorgen är tom');
       return false;
     }

     $.facebox(data);
     $('#submorder').click( function(){

       // validation here !!

      if (! validateUserData()) return false;


       $('#orderform').ajaxSubmit({data : {op : 'submOrder', cust: cust},success: onOrderSubmit});
       return false;
     });

     $('#town').change(manageShopSelects);

   });
   return false;
}

function price_to_float(val)
{
   var s = new String(val);
   s=s.replace(',','.');
   var res =parseFloat(s);
   return res;
}

function price_to_string(val)
{
   var s = new String(val);
   s=s.replace('.',',');
   return s;
}

function roundNumber(num, dec) {
  var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
  return result;
}

function addMail()
{
   var mail = $('#mailinp input').val();
   if (! mail.match(/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/))
   {
      alert('E-mail ' + mail + ' not valid');
      return false;
   }
   $.post('/subscribe.php',{mail: mail},function(data){

        alert('Tack! Din e-postadress är nu sparad.');
   });
}

