function common()
{
}

function AddToSearchBar()
{
  $("#lblAddSearchBar").css("cursor","pointer").hide();
  $("#lblAddSearchBar2").hide();
  var is_chrome = /chrome/.test( navigator.userAgent.toLowerCase() );
  if (window.external && ("AddSearchProvider" in window.external) && !isSearchEngineInstalled() && !is_chrome)
  {
    $("#lblAddSearchBar2").show();
    $("#lblAddSearchBar").show().click(installSearchEngine);
  }
}

function redirectSearch()
{
    var searchString = $("#txtSearch").val();
    if (searchString != '')
    {
        var url = "/search/?q=" + escape(searchString);
        if(isImage())
          url += "&src=img";

       window.location.href = url
    }
}

function getCurrentSource() {
    if(isImage())
        return 1;
    else
        return 0;
}

function queryParameters(query) {
  var keyValuePairs = query.split(/[&?]/g);

  var params = {};
  for (var i = 0, n = keyValuePairs.length; i < n; ++i) {
    var m = keyValuePairs[i].match(/^([^=]+)(?:=([\s\S]*))?/);
    //alert(m); check Ñ issue later
    if (m) {
      var key = decodeURIComponent(m[1]);
      (params[key] || (params[key] = [])).push(decodeURIComponent(m[2]));
    }
  }
  return params;
}

function isImage()
{
    var src = queryParameters(document.location.search)["src"];
    if (src == "img")
        return true;
    
    return false;
}

/* INFORM USER */

function informUser(message, fn) {
    var content;
    
    if (fn)
        content = $('<a></a>').html(message).click(informUserHide).click(fn);
    else
        content = message;
        
    // Creates the information message and add it after the footer
    var divMessage = $('<div id="informMessage">').addClass("message").append($('<strong>').append(content));
    if (fn)
        divMessage.css("cursor", "pointer")
    $("body").append(divMessage);
    
    jQuery.each(jQuery.browser, function(i) {
      if($.browser.msie && $.browser.version.substr(0,3) == '6.0'){
           $(".message").css("position","absolute");
      }
    });    
    
    // Do blink effect and on timeout slideUp (10sec)
    divMessage.fadeOut(800).fadeIn(800).fadeOut(400).fadeIn(400).fadeOut(400).fadeIn(400);
    setTimeout ( function() { $("div#informMessage").slideUp('slow'); }, 10000 );
}

function informUserHide()
{
    $("div#informMessage").hide();
}

/****FEEBACK***/


function feedbackLoad(inform)
{
    $(".feedbackLink").click(feedbackClick).css("cursor", "pointer");
    if (inform)
        informUser("Do you like Search3?<br>Please give us some feedback now!", feedbackClick);
}

function feedbackSetup() {
    $("#feedbackForm").validate({
      rules: {
        email: {
          required: true,
          minlength: 3
        },
        username: {
          required: true,
          minlength: 3
        },
        email: {
          required: true,
          email: true,
          minlength: 2
        },
        message: {
            required: true,
            minlength: 10
        }
      },
       messages: {
         first_name: { 
            minlength: jQuery.format("At least {0} characters required!")
         },
         last_name: { 
            minlength: jQuery.format("At least {0} characters required!")
         },
         message: { 
            required: "Please specify your message",
            minlength: jQuery.format("At least {0} characters required!")
         },
         email: {
           required: "We need your email address to contact you",
           minlength: jQuery.format("At least {0} characters required!"),
           email: "Your email address must be in the format of name@domain.com"
         }
       },
       
       submitHandler: function(form) {
       
            $.ajax({
                type: "POST",
                url: "/api/consume.asmx/PostFeedback",
                data: "{'name':'" + $('#first_name').val() + "','email':'" + $('#email').val() + "', 'message':'" + $('#message').val() + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    feedbackResponse(msg);
                }
            });

            return false;
       }
    });
    
    $(".feedbackClose").click(function(ev) {
        $.unblockUI();
    });
}

function feedbackBlinkClick() {
    $("div#reqFeedback").animate({left:"-=20px"}).animate({left:"+=20px"}).animate({left:"-5000px"}, feedbackClick);
}

function feedbackClick() {
    feedbackSetup();

    $("#first_name").focus();

    $.blockUI({  
        message: $('div#feedback'),  
        css: {  
            top:  ($(window).height() - 500) /2 + 'px', 
            left: ($(window).width() - 500) /2 + 'px', 
            width: '500px'
        }  
    });     
}

function feedbackResponse(msg)  { 
  $.unblockUI();
  informUser("Thank you for your feedback");
}

jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
    jQuery("<img>").attr("src", arguments[i]);
}

function installSearchEngine() {
   window.external.AddSearchProvider("http://www.search3.com/opensearch.xml");
}

function isSearchEngineInstalled() {
 if ("IsSearchProviderInstalled" in window.external)
     return (window.external.IsSearchProviderInstalled("http://www.search3.com/") != 0);

 return false;
}
