﻿
// Dogpile Search
function submitSearch()
{
    var dpKeyword = document.getElementById("URL_ENCODED_KEYWORDS").value;
    document.forms.ddf_DogpileSearch.action = "http://www.dogpile.com/dogpile/ws/redir/_iceUrlFlag=11?_IceUrl=true&qcat=web&qkw=" + dpKeyword;

    document.forms.ddf_DogpileSearch.submit();
}


function clearText(input)
{
    if (input == "email")
    {
        if(document.getElementById("tb_Email").value == "enter email")
        {
            document.getElementById("tb_Email").value = "";
            
            if (document.getElementById("tb_ZipCode").value == "")
            {
                document.getElementById("tb_ZipCode").value = "enter zip code";
            }
        }
        
    }
    else if(input == "zipcode")
    {
        if(document.getElementById("tb_ZipCode").value == "enter zip code")
        {
            document.getElementById("tb_ZipCode").value = "";
            
            //if (document.getElementById("tb_Email").value == "" || isNaN(document.getElementById("tb_ZipCode").value))
            //{
            //    document.getElementById("tb_Email").value = "enter email";
            //}
        }
    }
}


// Can't find city link runs function
function gotoZip()
{
    document.getElementById("textCity").style.display = "none";
    document.getElementById("findCity").style.display = "none";
    document.getElementById("findCityLink").style.display = "none";
    document.getElementById("textZip").style.display = "block";
    document.getElementById("findZip").style.display = "block";
    document.getElementById("findZipLink").style.display = "block";

    document.getElementById("tb_ZipCode").value = "enter zip code";
    document.getElementById("tb_City").value = "";

    document.getElementById("cityVal").style.display = "none";
    document.getElementById("findCity").style.borderColor = "#000";
    document.getElementById("findCity").style.borderWidth = "0px";

    document.getElementById("hdnEntryMode").value = "zip";

    if (document.getElementById('containerEmailInput') != null)
    {
        document.getElementById('containerEmailInput').style.height = '70px';
        document.getElementById('modEmailContainer').style.height = '210px';
    }
    else
    {
        document.getElementById('containerEmailHomeInput').style.height = '70px';
        document.getElementById('modEmailHomeContainer').style.height = '620px';
    }
}

// Return back to city textbox
function gotoCity()
{
   document.getElementById("textCity").style.display = "block";
   document.getElementById("findCity").style.display = "block";
   document.getElementById("findCityLink").style.display = "block";
   document.getElementById("textZip").style.display = "none";
   document.getElementById("findZip").style.display = "none";
   document.getElementById("findZipLink").style.display = "none";
   
   document.getElementById("tb_ZipCode").value = "";
   
   document.getElementById("zipVal").style.display = "none";
   document.getElementById("tb_ZipCode").style.borderColor = "#000";
   document.getElementById("tb_ZipCode").style.borderWidth = "0px";

   document.getElementById("hdnEntryMode").value = "city";

   if (document.getElementById('containerEmailInput') != null) 
   {
       document.getElementById('containerEmailInput').style.height = '70px';
       document.getElementById('modEmailContainer').style.height = '210px';
   }
   else 
   {
       document.getElementById('containerEmailHomeInput').style.height = '70px';
       document.getElementById('modEmailHomeContainer').style.height = '620px';
   }
}

// Function for Dropdown city list to populate hidden textbox
function getCity()
{
   var i = document.ddf_SubscribeForm.ddlCity.selectedIndex; 
   document.getElementById("tb_City").value = document.ddf_SubscribeForm.ddlCity.options[i].text;

   if (document.getElementById("tb_City").value == "select city")
   {
        document.getElementById("tb_City").value = "";
   }
}

// Deals Validation
function validate() {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var address = document.forms.ddf_SubscribeForm.elements["tb_Email"].value;
    
    var city = document.getElementById("tb_City").value;
    var zip = document.getElementById("tb_ZipCode").value;
    
    if(document.getElementById("findCity").style.display != "none")
    {
        if(reg.test(address) == false) 
        {
            // Validation error message
            document.getElementById("emailNote").style.color = "#cc0000";
            document.getElementById("emailNote").firstChild.nodeValue = "* invalid email address";
            document.getElementById("tb_Email").style.borderColor = "#cc0000";
            document.getElementById("tb_Email").style.borderWidth = "2px";
            
            document.getElementById("tb_Email").value = "";
        }
        else
        {
            // Correct validation email
            document.getElementById("emailNote").style.color = "#000";
            document.getElementById("emailNote").firstChild.nodeValue = "Your email is our secret. Promise.";
            document.getElementById("tb_Email").style.borderColor = "#000";
            document.getElementById("tb_Email").style.borderWidth = "0px";
        }
        
        if(city == "")
         {
            // Correct validation city
            document.getElementById("cityVal").style.display = "block";
            document.getElementById("findCity").style.borderColor = "#cc0000";
            document.getElementById("findCity").style.borderWidth = "2px"; 
        }
        else
        {
            document.getElementById("cityVal").style.display = "none";
            document.getElementById("findCity").style.borderColor = "#000";
            document.getElementById("findCity").style.borderWidth = "0px"; 
        }
        
        if (reg.test(address) != false && city != "" )
        {
            document.forms.ddf_SubscribeForm.submit();
        }
    }
    else if(document.getElementById("findZip").style.display != "none")
    {
        if(reg.test(address) == false) 
        {
            // Validation error message
            document.getElementById("emailNote").style.color = "#cc0000";
            document.getElementById("emailNote").firstChild.nodeValue = "* invalid email address";
            document.getElementById("tb_Email").style.borderColor = "#cc0000";
            document.getElementById("tb_Email").style.borderWidth = "2px";
            
            document.getElementById("tb_Email").value = "";
        }
        else
        {
            // Correct validation email
            document.getElementById("emailNote").style.color = "#000";
            document.getElementById("emailNote").firstChild.nodeValue = "Your email is our secret. Promise.";
            document.getElementById("tb_Email").style.borderColor = "#000";
            document.getElementById("tb_Email").style.borderWidth = "0px";
        }
        
        if(zip == "" || zip == "enter zip code" || zip.length != 5 || isNaN(document.getElementById("tb_ZipCode").value))
         {
            // Correct validation zip code
            document.getElementById("zipVal").style.display = "block";
            document.getElementById("tb_ZipCode").style.borderColor = "#cc0000";
            document.getElementById("tb_ZipCode").style.borderWidth = "2px"; 
        }
        else
        {
            document.getElementById("zipVal").style.display = "none";
            document.getElementById("tb_ZipCode").style.borderColor = "#000";
            document.getElementById("tb_ZipCode").style.borderWidth = "0px";
        }
        
        if (reg.test(address) != false && zip != "" && zip != "enter zip code" && zip.length == 5 && !isNaN(document.getElementById("tb_ZipCode").value) )
        {
            document.forms.ddf_SubscribeForm.submit();
        }
    }
}

var imageLoaded = {};

//Takes an image and turns it into a scaled then cropped thumbnail
function makeThumbnail(img, newWidth, newHeight, type) {

    if(imageLoaded[img.attr('src')])
    {
        return;
    }

    imageLoaded[img.attr('src')] = true;
    
    var aspectRatio = img.width() / img.height();

    var newAspectRatio = newWidth / newHeight;
    //calculate the new image dimensions and cropping positions
    var w = newWidth;

    var h = Math.floor(newWidth / aspectRatio);
    var sx = 0;
    var sy = Math.floor((h - newHeight) / 2);
    if (aspectRatio > newAspectRatio) {
        w = newHeight * aspectRatio;
        h = newHeight;
        sy = 0;
        sx = Math.floor((w - newWidth) / 2);
    }

    //where cropping is not completely central, adjust rectangle for pixel rounding
    var sw = sx + newWidth;
    var sh = sy + newHeight;
    //build the cropping rectangle css property
    var cText = 'rect(';
    cText += sy + 'px, ';
    cText += sw + 'px, ';
    cText += sh + 'px, ';
    cText += sx + 'px)';
    //apply image styles. for non-jquery, could adapt this accordingly

    img.css('position', 'absolute');

    img.css('width', w);
    img.css('height', h);

    img.css('clip', cText);

    //inform IE7 to use nice, non-crusty resampling
    img.css('-ms-interpolation-mode', 'bicubic');
    img.css('display', 'block');

    //Offset the image back to it's original position after the clipping
    img.css('left', -sx);
    img.css('top', -sy);
} 
       
