﻿var giftCardUrl = '/giftcertificate.aspx';
var regexProdNumber = /^(\D\D)*\d+-*\d*$/;
var regex10Digit = /^\d{10}$/;
var regexDigitLetterSku = /^(\D\D)*\d+\w*$/;
var regexSingleDigit = /^[0-9]$/;
var searchSKU = '';
var baseURL = '';
var currentURL = '';
var freeTextValue = '';
var defaultURL = '';

//this function is called when clicking on the 
//Go button in the free search area
function goFreeTextSearch()
{
    var didError = false;
    var redirectTo = '';
    //05-06-09 avc >> rewrote for jquery
    //var freeTextValue = document.getElementById('txtSearch').value;
    freeTextValue = $('#txtSearch').val();
    
    try {
        baseURL = $('.baseURL', '#MercadoFreeSearch').val();
    }
    catch(err) {
        didError = true;
        //alert(err);
    }
    
    try {
        currentURL = $('.currentURL', '#MercadoFreeSearch').val();
    }
    catch(err) {
        didError = true;
        //alert(err);
    }
    
    defaultURL = '/' + baseURL + '&free_text=' + encodeURIComponent(freeTextValue);
        
    var prodParse = ParseProductNumber(freeTextValue);
    
    if(prodParse.length > 0) {
        searchSKU = prodParse;
        SearchPageRedirect(searchSKU);
        //ValidateSKU(searchSKU, RedirectProduct)
        redirectTo = prodParse;
    }
    
    //06-12-09 avc >> turned off per Nancy
    //check for gift card and redirect if needed
    //if(GiftCardCheck(freeTextValue)) {
    //    redirectTo = giftCardUrl;
    //}        
            
    if(redirectTo.length > 0) {
        //only want to redirect for GC direct sku search will be handled elsewhere
        if(prodParse.length == 0) {
            window.location.href = redirectTo;    
        }
    }
    else {    	
        if(didError == false) {
	        //freeTextValue = freeTextValue;
	        //var dt = new Date();
	        //window.location.href = baseURL + '&free_text|' + dt.getTime() + '=' + freeTextValue;
	        window.location.href = defaultURL;
        }	
    }	
	//alert('end');
	return false;
}

function GiftCardCheck(searchText) {
    var doRedirect = false;
    
    if(searchText.indexOf('777777') > -1) {
        doRedirect = true;
    }
    
    if(searchText.indexOf('777778') > -1) {
        doRedirect = true;
    }    
    
    if(searchText.indexOf('gift') > -1 && searchText.indexOf('cert') > -1) {
        doRedirect = true;
    }    
    
    if(searchText.indexOf('gift') > -1 && searchText.indexOf('card') > -1) {
        doRedirect = true;
    }
    
    return doRedirect;
}

function ParseProductNumber(searchText) {    
    var retval = '';
    //alert(searchText);
    if(regexProdNumber.test(searchText)) {
        // Check to see if the first two characters are not digits and remove them if necessary
        if(!IsDigit(searchText.substring(0,1)) && !IsDigit(searchText.substring(1,1))) {
            retval = searchText.substring(2);
        }
        else {
            retval = searchText;
        }
        
        // Check to see if the search term is a 10 digit sku without the "-"
        if (regex10Digit.test(retval)) {
            retval = retval.substring(0, 6) + '-' + retval.substring(6);
        }
    }
    else {
        if(regexDigitLetterSku.test(searchText)) {
            // Check to see if the first two characters are not digits and remove them if necessary
            if(!IsDigit(searchText.substring(0,1)) && !IsDigit(searchText.substring(1,1))) {
                retval = searchText.substring(2);
            }
            else {
                retval = searchText;
            }            
        }
    }
    
    return retval;
}

function RedirectProduct(xml) {
    var matchedSKU = '';
     
     //see if sku is valid   
    $(xml).find('results').find('product').each(function() {
        matchedSKU = $('sku', this).text();    
    });  
    
    if(matchedSKU.length > 0) {
        window.location.href = '/products/product.aspx?sku=' + matchedSKU + '&free_text=' + freeTextValue;;
    } else {
        window.location.href = defaultURL;
    }
}

/*
 Author: avc
 Date:   5/12/2009
 Input:  sku
 Ouput:  xml for product if a match is found
 About: 
  Allows you to verify a sku.
*/
function ValidateSKU(sku, callback){
    $.ajax({
       type: "GET",
       dataType: "xml",
       url: "/WebServices/Product.asmx/ViewProductDetailBySKU",
       data: 'sku='+sku,
       error: function(xml){
        //debug('failed');
       },       
       success: function(xml){
        //call the callback function
        callback(xml);
       }
    });
}

/*
 Author: avc
 Date:   5/26/2009
 Input:  sku
 Ouput:  url to send user to
 About: 
    Will use product family information to redirect see the webservice for more.
*/
function SearchPageRedirect(sku){
    $.ajax({
       type: "GET",
       dataType: "xml",
       url: "/WebServices/Product.asmx/SearchPageRedirect",
       data: 'searchtext=' + sku,
       error: function(xml){
        window.location.href = defaultURL;
       },       
       success: function(xml){
        var url = '';
        
        $(xml).find('string').each(function() {
            url = $(this).text();    
        });
        
        if(url == '') {
            window.location.href = defaultURL;
        } else {
            //06-09-09 avc >> removed per jeff
            window.location.href = url;// + '?free_text=' + encodeURIComponent(freeTextValue);
        }
       }
    });
}

function IsDigit(inputValue) {
    return regexSingleDigit.test(inputValue);
}

function goSelectSite(multisiteDropDown)
{
  if (multisiteDropDown.value)    
  {
    var url;
    for  (var i=0; i< multisiteDropDown.options.length; i++)
    {
      if (multisiteDropDown.options[i].value == multisiteDropDown.value)
      {
        url = multisiteDropDown.options[i].attributes ["url"].value;
        break;
      }
    }
    window.location.href= url;
  }
}