var blogGifts = $H({
                        "angel":"An Angel",
                        "coke":"Coke",
                        "condom":"Condom",
                        "thumb-up":"Thumb Up",
                        "dinner":"Dinner",
                        "goodgrade":"Grades",
                        "hamburger":"Hamburger",
                        "handcuff":"Handcuff",
                        "monster":"Monster",
                        "strawberry":"Strawberry",
                        "owl":"O Owl",
                        "peanuts":"Peanuts",
                        "kiss":"Kisssss...",
                        "hug":"Hug",
                        "spirit":"Spirit",
                        "for-you-2":"For you",
                        "have-fun":"Have Fun!",
                        "thank-you":"Thank you",
                        "salute":"My Salute"});


var funGifts = $H({
                        "apology":"My Apology",
                        "balloon":"Ballooons",
                        "beer":"Beer bash",
                        "be-me":"Be Me ;)",
                        "bunnies":"Bunnies",
                        "butter-fly":"Butterfly",
                        "cake":"Yummy Cake!",
                        "candle":"Brightness",
                        "cheers":"Cheers!!!",
                        "chewing-bones":"Bones",
                        "christmas-tree":"A Christmas tree",
                        "devil":"Devil",
                        "direction":"Compass",
                        "gogo":"go go fast",
                        "grapefruit":"Fruits",
                        "idea":"Idea!!!",
                        "memory":"Memory",
                        "myhouse":"My House",
                        "party":"Party",
                        "power-of-love":"Power of Love",
                        "thunder-bolt":"Thunderbolt",
                        "wings":"Wings"});

var himherGifts = $H({
                        "diamond":"A Diamond Necklace",
                        "purse":"Purse",
                        "rolex":"Rolex Watch",
                        "rose":"A Rose",
                        "pearl-shoe":"Pearl Shoes",
                        "shoe":"Sandals",
                        "are-you-thinking":"Thinking the same?",
                        "for-my-sweetheart":"For you",
                        "missing-you":"Missing you",
                        "muah":"Mu.aa.ah",
                        "would-you-accept":"Would you..?",
                        "for-you":"For you",
                        "you-are-very-special":"You are special",
                        "its-all-yours":"All yours!",
                        "teddy-bear":"Teddy Bear",
                        "cute-kitty":"Chweet.. Kitty",
                        "cute-puppy":"Cute Puppy",
                        "especially-for-you":"Specially for you!",
                        "fresh-flowers":"Fresh Flowers",
                        "ipod":"iPod",
                        "heart-flowers":"Beautiful flowers",
                        "tender-love":"Tender Love",
                        "red-wine":"Red Wine",
                        "sports-car":"Sports Car",
                        "teddy-puppy":"Teddy Puppy",
                        "romantic-dinner":"My Wish"
                        });


var generalGifts = $H({
                        "easter-eggs":"Easter Eggs",
                        "guitar-for-you":"Guitar for you",
                        "all-fruits":"Sweet Fruits",
                        "cars":"Car",
                        "chocolate":"Chocolates yum yum",
                        "coat":"Coat",
                        "cognac":"Cognac",
                        "cute-bunny":"Cute Bunny",
                        "dream":"Dream & Hope",
                        "duck":"A Ducklet",
                        "egg":"Baby Egg",
                        "elbow":"Bam Bam",
                        "gogo":"go go fast",
                        "home-threater":"Home-theatre",
                        "hot-chocolate":"Hot Chocolate",
                        "house-plant":"House Plant",
                        "ice-cream":"ice cream",
                        "iphone":"iPhone",
                        "kittens":"Cute Kittens",
                        "money-tree":"Money tree",
                        "mytwocents":"My two cents",
                        "peace":"Peace",
                        "pineapple":"Pineapple",
                        "prayer":"Prayer",
                        "puppy":"Puppy.. wo wo..",
                        "super-bowl":"Super Bowl",
                        "treasure":"Treasure",
                        "victory":"Victory",
                        "whiskey":"Whiskey",
                        "cocktails":"Cocktails",
                        "toy-car":"Toy Car",
                        "wish":"Wish"});

var defaultGifts = $H({
                        "cocktails":"Cocktails",
                        "cute-kitty":"Chweet.. Kitty",
                        "cute-puppy":"Cute Puppy",
                        "especially-for-you":"Specially for you!",
                        "fresh-flowers":"Fresh Flowers",
                        "ipod":"iPod",
                        "beer":"Beer bash",
                        "be-me":"Be Me ;)",
                        "bunnies":"Bunnies",
                        "butter-fly":"Butterfly",
                        "cake":"Yummy Cake!",
                        "candle":"Brightness",
                        "chocolate":"Chocolates yum yum",
                        "cars":"Car",
                        "cheers":"Cheers!!!",
                        "egg":"Baby Egg",
                        "dinner":"Dinner",
                        "direction":"Compass",
                        "dream":"Dream and Hope",
                        "ice-cream":"ice cream",
                        "iphone":"iPhone",
                        "monster":"Monster",
                        "sports-car":"Sports Car",
                        "cognac":"Cognac",
                        "gogo":"Go Go Fast",
                        "grapefruit":"Fruits",
                        "hamburger":"Hamburger",
                        "goodgrade":"Grades",
                        "strawberry":"Strawberry",
                        "super-bowl":"Super Bowl",
                        "teddy-bear":"Teddy Bear",
                        "teddy-puppy":"Teddy Puppy"});

var defaultMessages = $H({});

var extraGifts = $H({});


var extraMessages = $H({});

var userGifts = $H(defaultGifts);
var userMessages = $H(defaultMessages);



function saveUserItems(formId, resultShow)
{
  var userGiftsTmp = userGifts;
  userGifts = $H({});
  var cnt = 0;
  for (i=0; $(formId).giftItemsCB !==undefined && i<$(formId).giftItemsCB.length; i++)
  {
    if ($(formId).giftItemsCB[i].checked==true)
    {
      addToUserGifts($(formId).giftItemsCB[i].value);
      ++cnt;
    }
  }
  if(cnt == 0)
  {
    alert("Please select at least one gift item to save");
    userGifts = userGiftsTmp;
    return false;
  }

  userMessages = $H({});
  for (i=0; $(formId).msgItemsCB !==undefined && i<$(formId).msgItemsCB.length; i++)
  {
    if ($(formId).msgItemsCB[i].checked==true)
    {
      addToUserMessages($(formId).msgItemsCB[i].value);
    }
  }
  if(resultShow !== undefined)
  {
    $(resultShow).innerHTML = "<br/> Saved Successfully <a href='#' onclick=\"javascript:previewBasket('previewButton');return false;\">Preview</a>";
  }
  return true;
}

function markUserItems(formId)
{
  var userGiftsTmp = userGifts;
  //userGifts = $H({});
  var cnt = 0;
  for (i=0; $(formId).giftItemsCB !==undefined && i<$(formId).giftItemsCB.length; i++)
  {
    if($(formId).giftItemsCB[i].value in userGiftsTmp)
    {
      $(formId).giftItemsCB[i].checked = true;
      ++cnt;
    }
    else
    {
      $(formId).giftItemsCB[i].checked = false;
    }
  }

  for (i=0; $(formId).msgItemsCB !==undefined && i<$(formId).msgItemsCB.length; i++)
  {
    if($(formId).msgItemsCB[i].value in userMessages)
    {
      $(formId).msgItemsCB[i].checked = true;
      ++cnt;
    }
    else
    {
      $(formId).msgItemsCB[i].checked = false;
    }
  }
  return true;
}

function addToUserGifts(giftId)
{
  if(giftId in defaultGifts)
  {
    userGifts[giftId] = defaultGifts[giftId];
  }
  else if(giftId in blogGifts)
  {
    userGifts[giftId] = blogGifts[giftId];
  }
  else if(giftId in funGifts)
  {
    userGifts[giftId] = funGifts[giftId];
  }
  else if(giftId in generalGifts)
  {
    userGifts[giftId] = generalGifts[giftId];
  }
  else if(giftId in himherGifts)
  {
    userGifts[giftId] = himherGifts[giftId];
  }
  else if(giftId in extraGifts)
  {
    userGifts[giftId] = extraGifts[giftId];
  }
}

function addToUserMessages(msgId)
{
  if(msgId in defaultMessages)
  {
    userMessages[msgId] = defaultMessages[msgId];
  }
  else if(msgId in extraMessages)
  {
    userMessages[msgId] = extraMessages[msgId];
  }
}


function getEditHTML_bak()
{
  //alert(userGifts.inspect());
  var str = '';
  for (var id in defaultGifts)
  {
    var value = defaultGifts[id];
    if (value && value == Hash.prototype[id])
       continue; //avoid function declarations
    str = str + getGiftDiv(id, value, 0);
  }


  for (var id in defaultMessages)
  {
    var value = defaultMessages[id];
    if (value && value == Hash.prototype[id])
       continue;
    str = str + getMessagesDiv(id, value, 0);
  }

  for (var id in extraGifts)
  {
    var value = extraGifts[id];
    if (value && value == Hash.prototype[id])
       continue; //avoid function declarations
    if(!(defaultGifts[id] == undefined))
      continue;
    str = str + getGiftDiv(id, value, 0);
  }

  for (var id in extraMessages)
  {
    var value = extraMessages[id];
    if (value && value == Hash.prototype[id])
       continue;
    if(!(defaultMessages[id] == undefined))
      continue;
    str = str + getMessagesDiv(id, value, 0);
  }

  return str;
}


function getEditHTML(form)
{
  //alert(userGifts.inspect());
  var strBlog = '';
  for (var id in blogGifts)
  {
    var value = blogGifts[id];
    if (value && value == Hash.prototype[id])
       continue; //avoid function declarations
    strBlog = strBlog + getGiftDiv(id, value, 0);
  }

  var strFun = '';
  for (var id in funGifts)
  {
    var value = funGifts[id];
    if (value && value == Hash.prototype[id])
       continue; //avoid function declarations
    strFun = strFun + getGiftDiv(id, value, 0);
  }

  var strHimher = '';
  for (var id in himherGifts)
  {
    var value = himherGifts[id];
    if (value && value == Hash.prototype[id])
       continue; //avoid function declarations
    strHimher = strHimher + getGiftDiv(id, value, 0);
  }

  var strGeneral = '';
  for (var id in generalGifts)
  {
    var value = generalGifts[id];
    if (value && value == Hash.prototype[id])
       continue; //avoid function declarations
    strGeneral = strGeneral + getGiftDiv(id, value, 0);
  }

  var str = "<div id=blogGiftsDiv class=categoryGiftsDiv><div class=headingMsg> &nbsp;&nbsp;&nbsp;Gifts For Blog Fun <a href='#' onclick=\"javascript:checkCat(blogGifts, '"+form+"'); return false;\">Check All</a> <a href='#' onclick=\"javascript:uncheckCat(blogGifts, '"+form+"'); return false;\">Uncheck All</a></div>"+strBlog+"</div>";
  str += "<div id=himherGiftsDiv class=categoryGiftsDiv><div class=headingMsg> &nbsp;&nbsp;&nbsp;Gifts For Her/Him <a href='#' onclick=\"javascript:checkCat(himherGifts, '"+form+"'); return false;\">Check All</a> <a href='#' onclick=\"javascript:uncheckCat(himherGifts, '"+form+"'); return false;\">Uncheck All</a></div>"+strHimher+"</div>";
  str += "<div id=funGiftsDiv class=categoryGiftsDiv><div class=headingMsg> &nbsp;&nbsp;&nbsp;Gifts Just For Fun <a href='#' onclick=\"javascript:checkCat(funGifts, '"+form+"'); return false;\">Check All</a> <a href='#' onclick=\"javascript:uncheckCat(funGifts, '"+form+"'); return false;\">Uncheck All</a></div>"+strFun+"</div>";
  str += "<div id=generalGiftsDiv class=categoryGiftsDiv><div class=headingMsg> &nbsp;&nbsp;&nbsp;General Gifts (For Any Occation) <a href='#' onclick=\"javascript:checkCat(generalGifts, '"+form+"'); return false;\">Check All</a> <a href='#' onclick=\"javascript:uncheckCat(generalGifts, '"+form+"'); return false;\">Uncheck All</a></div>"+strGeneral+"</div>";

  return str;
}


function getPreviewHTML()
{
  //alert(userGifts.inspect());
  var str = '';
  for (var id in userGifts)
  {
    var value = userGifts[id];
    if (value && value == Hash.prototype[id])
       continue; //avoid function declarations
    str = str + getGiftDiv(id, value, 1);
  }

  for (var id in userMessages)
  {
    var value = userMessages[id];
    if (value && value == Hash.prototype[id])
       continue;
    str = str + getMessagesDiv(id, value, 1);
  }

  return str;
}

function getGiftDiv(imgId, caption, isPreview)
{
  var imgPath = "/images/gifts/" + imgId + "-icon.jpg";
  var imgPathBig = "/images/gifts/" + imgId + "-popup.jpg";

  var captionHtml = caption.substring(0,30).escapeHTML();

  var prev = '';
  var checked = '';

  if(!isPreview)
  {
    prev = 'H';
    if(imgId in userGifts)
    {
      checked = 'checked';
    }

  }


  var divId = imgId + "Div";

  var mouseOverOutHtml = " onMouseOver=\"javascript:pupupDisplayImg('"+divId+"', '"+imgPathBig+"', 402, 402, 0, 2);\" \
                          onMouseOut='javascript:pupupHideImg()'";

  var html = "<div class='giftDivContainer"+prev+"'>  \
                <div class='giftImg' id="+divId+" "+mouseOverOutHtml+"> \
                  <img src='" + imgPath + "' /> \
                </div> \
                <div class='giftCaption'> \
                 " + captionHtml + "\
                </div>";
  if(!isPreview)
  {
    html += "  <div class='checkOption' > \
                 <input type=checkbox name=giftItemsCB value='"+imgId+"' "+checked+" /> Add to Basket \
                </div>";
  }
  html += "   </div>";
  //alert(html);
  return html;
}

function getMessagesDiv(imgId, message, isPreview)
{
  var prev = '';
  var checked = '';
  if(!isPreview)
  {
    prev = 'H';
    if(imgId in userMessages)
    {
      checked = 'checked';
    }
  }
  var imgArr = imgId.split('__');
  var x = (imgArr[1] === undefined) ? 20 : imgArr[1];
  var y = (imgArr[2] === undefined) ? 10 : imgArr[2];

  var imgPath = "/images/gifts/" + imgArr[0] + "-icon.jpg";
  var imgPathBig = "/images/gifts/" + imgArr[0] + "-popup.jpg";

  var messageHtml = message.substring(0,80).escapeHTML();

  var divId = imgId + "Div";

  var mouseOverOutHtml = " onMouseOver=\"javascript:pupupDisplayImg('"+divId+"', '"+imgPathBig+"', 402, 402, 0, 2);\" \
                          onMouseOut='javascript:pupupHideImg()'";


  var html = "<div class='msgDivContainer"+prev+"'>  \
                <div class='msgImg' id="+divId+" "+mouseOverOutHtml+" style='background:url("+imgPath+") no-repeat; padding-top:"+y+"; padding-left:"+x+"'> \
                  "+messageHtml+" \
                </div> ";
  if(!isPreview)
  {
    html += "   <div class='checkOption'> \
                  <input type=checkbox name=msgItemsCB value='"+imgId+"' "+checked+" /> Add to Basket \
                </div>";
  }
  html += "   </div>";
  return html;

}


var giftsTaken = $H({});

var giftsGiven = $H({});

function addGift(basket, giftId)
{
  if(giftId in blogGifts)
  {
    basket[giftId] = blogGifts[giftId];
  }
  else if(giftId in funGifts)
  {
    basket[giftId] = funGifts[giftId];
  }
  else if(giftId in himherGifts)
  {
    basket[giftId] = himherGifts[giftId];
  }
  else if(giftId in generalGifts)
  {
    basket[giftId] = generalGifts[giftId];
  }
  else if(giftId in extraGifts)
  {
    basket[giftId] = extraGifts[giftId];
  }
}

function removeGift(basket, giftId)
{
  basket.remove(giftId);
}

var basketSaved = false;
function isBasketSaved()
{
  return basketSaved;
}

function setBasketSaved()
{
  basketSaved = true;
}

function resetBasketSaved()
{
  basketSaved = false;
}

function checkCat(hash, formId)
{
  for (i=0; $(formId).giftItemsCB !==undefined && i<$(formId).giftItemsCB.length; i++)
  {
    if(!(hash[$(formId).giftItemsCB[i].value] == undefined))
    {
      $(formId).giftItemsCB[i].checked=true;
    }
  }
}

function uncheckCat(hash, formId)
{
  for (i=0; $(formId).giftItemsCB !==undefined && i<$(formId).giftItemsCB.length; i++)
  {
    if(!(hash[$(formId).giftItemsCB[i].value] == undefined))
    {
      $(formId).giftItemsCB[i].checked=false;
    }
  }
}