<?xml version="1.0" encoding="UTF-8" ?>
<Module>
	<ModulePrefs 
		 title="Travel Deals on Expedia" 
		 description="Hot Travel Deals  from Expedia.com. Cheap flights and hotels, cruises and top deals." 
		 title_url="http://www.expedia.com/daily/outposts/rss/expedia_rss.asp"
		 author="Maxim Kazitov"
     author_email="mvkazit@tut.by"
     screenshot="http://www.yogageneration.com/~mvkazit/expedia/iexpedia/screen.jpg" 
     thumbnail="http://www.yogageneration.com/~mvkazit/expedia/iexpedia/thumbnail.gif"
		 directory_title="IG Expedia Hot Deals"
		 height="250"
		 width="250">
    <icon>http://www.yogageneration.com/~mvkazit/expedia/iexpedia/icon.gif</icon>
    <Require feature="setprefs"/>
    <Require feature="dynamic-height"/>
	</ModulePrefs>
	<UserPref name="hasCfg" default_value="false" datatype="hidden"/>
	<UserPref name="pkgOrigCitySel" default_value="false" datatype="hidden"/>
	<UserPref name="tripTypeSel"    default_value="0" datatype="hidden"/>
	<UserPref name="fltOrigCitySel" default_value="0" datatype="hidden"/>
	<UserPref name="fltTypeSel"     default_value="0" datatype="hidden"/>
	<UserPref name="htlTypeSel"     default_value="0" datatype="hidden"/>
	<UserPref name="pkgTypeSel"     default_value="0" datatype="hidden"/>
	<UserPref name="mdbDealTypeSel" default_value="0" datatype="hidden"/>
	<UserPref name="fltDestCitySel" default_value="0" datatype="hidden"/>
	<UserPref name="pkgDestCitySel" default_value="0" datatype="hidden"/>
	<UserPref name="destNameSel"    default_value="0" datatype="hidden"/>
	<Content type="html">
<![CDATA[
<link rel="stylesheet" type="text/css" href="http://www.yogageneration.com/~mvkazit/expedia/iexpedia/ig_expedia.css"/>
<script language="javascript" type="text/javascript">
/****************************************************************/
/*                     Global Settings                          */
/****************************************************************/
var m_UsrPref   = new _IG_Prefs(__MODULE_ID__);

var m_FeedUrl   = "http://b2b.expedia.com/daily/outposts/rss/getRSSDeals.asp";
var m_ReaderUrl = "http://fusion.google.com/add?feedurl=";

var m_CntList = new Array(
				 "pkgOrigCitySel", "fltOrigCitySel", 
         "htlTypeSel",     "fltTypeSel", 
         "pkgTypeSel",     "mdbDealTypeSel", 
         "fltDestCitySel", "pkgDestCitySel", 
         "destNameSel",    "tripTypeSel");
				 
var m_frmMask =
        {
        "package":{"origCity":true,  "pkgOrigCity":true,  "fltOrigCity":false, "destForm":true,  "htlType":false, "fltType":false, "pkgType":true,  "mdbDealType":false},
        "flight" :{"origCity":true,  "pkgOrigCity":false, "fltOrigCity":true,  "destForm":true,  "htlType":false, "fltType":true,  "pkgType":false, "mdbDealType":false},
        "hotel"  :{"origCity":false, "destForm":true,  "htlType":true,  "fltType":false, "pkgType":false, "mdbDealType":false},
        "cruise" :{"origCity":false, "destForm":false, "htlType":false, "fltType":false, "pkgType":false, "mdbDealType":false},
        "mdb"    :{"origCity":false, "destForm":false, "htlType":false, "fltType":false, "pkgType":false, "mdbDealType":true}
        }; 							

/****************************************************************/
/*                     'Page' functions                         */
/****************************************************************/
_IG_RegisterOnloadHandler(pgLoad);

function pgLoad()
{
    loadSettings();
    onChange_TripType();
    getRSSFeed();
}

/****************************************************************/
/*                     User Settings                            */
/****************************************************************/
function loadSettings()
{
   if(m_UsrPref.getBool("hasCfg"))
	 {
	    setDisplay({"optionsBody":false, "feedContent":true});
		  for(var i=0; i<m_CntList.length;i++)
		  {
			  setSelectIndex(m_CntList[i], m_UsrPref.getInt(m_CntList[i]));
		  }
	  }
	  else
	  {
		  onClick_Options();
	  } 
}

function saveSettings()
{
	for(var i=0; i<m_CntList.length;i++)
	{
		m_UsrPref.set(m_CntList[i], getSelectIndex(m_CntList[i]));
	}
	m_UsrPref.set("hasCfg", true); 
}

/****************************************************************/
/*                     RSS Processing                           */
/****************************************************************/
function getRSSFeed() 
{  
	_IG_FetchFeedAsJSON(buildURL(), parseResponse);
}

function parseResponse(obj) 
{  
	var html = ""; 
  if(obj && obj.Entry)
	{
		var n = obj.Entry.length;
		for(var i=0; i<n; i++)
		{
			html+= buildEntryHTML(obj.Entry[i]);
		}
	}
	rssRender(html); 
}

function rssRender(html)
{
    var body = _gel("feedContent");
    var link = _gel("saveFeed");
	  body.innerHTML = html;
    link.href = m_ReaderUrl+escape(buildURL()+"&reader=google");
    _IG_AdjustIFrameHeight();
}

function buildEntryHTML(entry)
{
	var html = "";
	if(entry != null)
	{
    html = "<div class='rssEntry'>"
		html+= "<a href='"+entry.Link+"' target='_blank'>"+entry.Title+"</a>"
		html+= "</div>";      
    if(entry.Description)
    {
        html+= "<div>"+entry.Description+"</div>";
    }
	}
	return html; 
}

/****************************************************************/
/*                     Options Form Processing                  */
/****************************************************************/
function onChange_TripType()
{
    setDisplay(m_frmMask[getTripType()]); 
    onChange_DestType();
}

function onChange_DestType()
{
    var isCity  = getSelectValue("destTypeSel") == "city";
    setDisplay({"fltDestCity":(isCity && isFlight()), "pkgDestCity":(isCity && !isFlight()), "destName":!isCity});
}

function onClick_Options()
{
	setDisplay({"optionsBody":true, "feedContent":false, "btnOptionsCnt":true, "btnFeedCnt":false});
}

function onClick_OptionsOk()
{
	saveSettings();
  getRSSFeed();
	setDisplay({"optionsBody":false, "feedContent":true, "btnOptionsCnt":false, "btnFeedCnt":true});
}

function onClick_OptionsCancel()
{
	loadSettings();
	setDisplay({"optionsBody":false, "feedContent":true, "btnOptionsCnt":false, "btnFeedCnt":true});

}

function onMouseOver_Button(obj){
	obj.style.textDecoration='underline'; 
	obj.style.cursor='pointer';
}
 
function onMouseOut_Button(obj){
	obj.style.textDecoration='none'; 
	obj.style.cursor='auto';
}

function onMouseOver_Logo(obj){
	obj.src='http://www.yogageneration.com/~mvkazit/expedia/iexpedia/bgTopRightOn.jpg';
	obj.style.cursor='pointer';
}
function onMouseOut_Logo(obj){
	obj.src='http://www.yogageneration.com/~mvkazit/expedia/iexpedia/bgTopRight.jpg';
	obj.style.cursor='auto';
}
function buildParams()
{
    return  {
        "eapid"    : 35043,
        "tpid"     : 1,
        "type"     : (!isMDB()) ? getTripType() : null,
        "orig"     : getOrigin(),
        "dest"     : getDestinationCity(),  
        "destType" : getDestinationName(),
        "cat"      : getDealClass(),
        "mdbcat"   : getMDBType()
    };
}

function buildURL()
{
    var url = m_FeedUrl+"?";
    var params = buildParams();
    
    for(v in params)
    {
        if(params[v] != null)
        {
            url+=v+"="+params[v]+"&";
        }
    }
    return url;
}

function getSelectValue(id)
{
    var elSel = _gel(id);
    var val = elSel.options[elSel.selectedIndex].value;
    return val;
}

function getSelectIndex(id)
{
    var elSel = _gel(id);
    return elSel.selectedIndex;
}

function setSelectIndex(id, idx)
{
    var elSel = _gel(id);
    elSel.options[idx].selected = true;
}

function setDisplay(list)
{
    for(var val in list)
    {
        var el = _gel(val);
        var tg = el.tagName;
        var sh = (tg == "INPUT") || (tg == "SPAN") || (tg == "A")? "inline" : "block" ;
        el.style.display = list[val] ? sh : "none";
    }
    _IG_AdjustIFrameHeight();
}

function getTripType()
{
    return getSelectValue("tripTypeSel");
}

function isFlight()
{
    return getTripType() == "flight";
}

function isHotel()
{
    return getTripType() == "hotel";
}

function isPackage()
{
    return getTripType() == "package";
}

function isMDB()
{
    return getTripType() == "mdb";
}

function getOrigin()
{
    if(isFlight())
    {
        return getSelectValue("fltOrigCitySel");
    } 
    else if(isPackage())
    {
        return getSelectValue("pkgOrigCitySel");
    }
    return null;
}

function isDestination()
{
    return isHotel() || isFlight() || isPackage();
}

function getDestinationCity()
{
    if((getSelectValue("destTypeSel") == "city") && isDestination())
    {
        if(isFlight())
        {
            return getSelectValue("fltDestCitySel");
        } else
        {
            return getSelectValue("pkgDestCitySel");        
        }
    }
    return null;
}

function getDestinationName()
{
    if((getSelectValue("destTypeSel") == "destination") && isDestination())
    {
        return getSelectValue("destNameSel");
    }
    return null;
}

function getDealClass()
{
    var val = "general";
    if(isHotel())
    {
        val = getSelectValue("htlTypeSel");
    }
    else if(isFlight())
    {
        val = getSelectValue("fltTypeSel");
    }
    else if (isPackage())
    {
        val = getSelectValue("pkgTypeSel");
    }
    
    return val != "general" ? val : null;
}

function getMDBType()
{
    if(isMDB())
    {
        return getSelectValue("mdbDealTypeSel");
    }
    return null;
}
</script>

<div id="mainBody">
  <div id="header">
	  <div id="headerInn"><a href="http://www.expedia.com/" target="_blank"><img onmouseover="onMouseOver_Logo(this)" onmouseout="onMouseOut_Logo(this)" src="http://www.yogageneration.com/~mvkazit/expedia/iexpedia/bgTopRight.jpg" border="0"/></a></div>
  </div>
  <div id="content">
	    <div id="feedContent">
      <!-- Feed Container -->    	
	    </div>
     
      <!-- HTML Template for User Configuration  -->
      <div id="optionsBody">
          <div id="tripType" class="frmInput">
              <label>Trip Type:</label>
	          <select id="tripTypeSel" onchange="onChange_TripType()">
		          <option value="package">Flight + Hotel vacation</option>
		          <option value="hotel">Hotel only</option>
		          <option value="flight">Flight only</option>
		          <option value="cruise">Cruise</option>
		          <option value="mdb" selected="selected">Deals</option>
	          </select>
          </div>

          <!-- Packages, Flights -->
          <div id="origCity">
              <div id="pkgOrigCity" class="frmInput">
                  <label>Leaving from:</label>
                  <select id="pkgOrigCitySel" selected="selected">
                      <option value="178232">Atlanta</option>
                      <option value="178239">Boston</option>
                      <option value="178248">Chicago</option>
                      <option value="178253">Dallas</option>
                      <option value="178254">Denver</option>
                      <option value="601750">Fort Lauderdale</option>
                      <option value="178265">Houston</option>
                      <option value="178276">Las Vegas</option>
                      <option value="178280">Los Angeles</option>
                      <option value="178286">Miami</option>
                      <option value="178287">Minneapolis-St. Paul</option>
                      <option value="178293">New York City</option>
                      <option value="178294">Orlando</option>												
                      <option value="178297">Philadelphia</option>
                      <option value="178298">Phoenix</option>
                      <option value="178304">San Diego</option>
                      <option value="178305">San Francisco</option>
                      <option value="178307">Seattle</option>
                      <option value="6023509">Tampa</option>														
                      <option value="178318">Washington DC</option>
                  </select>
              </div>
              <!-- OR -->
              <div id="fltOrigCity" class="frmInput">
                  <label>Leaving from:</label>
                  <select id="fltOrigCitySel" selected="selected">
                      <option value="178232">Atlanta</option>
                      <option value="178234">Austin</option>
                      <option value="178239">Boston</option>
                      <option value="178247">Charlotte</option>
                      <option value="178248">Chicago</option>
                      <option value="178249">Cincinnati</option>
                      <option value="178250">Cleveland</option>
                      <option value="178253">Dallas</option>
                      <option value="178254">Denver</option>
                      <option value="178255">Detroit</option>
                      <option value="601750">Fort Lauderdale</option>
                      <option value="HFD">Hartford</option>
                      <option value="180077">Hawaii (Oahu & Honolulu)</option>
                      <option value="178265">Houston</option>
                      <option value="178266">Indianapolis</option>
                      <option value="178273">Kansas City</option>
                      <option value="178276">Las Vegas</option>			
                      <option value="178280">Los Angeles</option>
                      <option value="178286">Miami</option>
                      <option value="602647">Milwaukee</option>
                      <option value="178287">Minneapolis-St. Paul</option>
                      <option value="178292">New Orleans</option>
                      <option value="178293">New York City</option>
                      <option value="178294">Orlando</option>			
                      <option value="178298">Phoenix</option>
                      <option value="178297">Philadelphia</option>			
                      <option value="601717">Pittsburgh</option>
                      <option value="178299">Portland (Oregon)</option>
                      <option value="180015">Providence</option>
                      <option value="RDU">Raleigh</option>
                      <option value="180049">Sacramento</option>
                      <option value="178302">Salt Lake City</option>
                      <option value="178303">San Antonio</option>
                      <option value="178304">San Diego</option>			
                      <option value="178305">San Francisco</option>
                      <option value="178307">Seattle</option>
                      <option value="178309">St. Louis</option>
                      <option value="6023509">Tampa</option>				
                      <option value="178318">Washington DC</option>
                  </select>
              </div>
          </div>

          <!-- Package, Hotel, Flight -->
          <div id="destForm">
              <div id="destType" class="frmInput">
	              <label>Going to:</label>
	              <select id="destTypeSel" onchange="onChange_DestType()">
		              <option value="city" selected="selected">A city</option>
		              <option value="destination">A destination type</option>
	              </select>
              </div>
              <div id="destName" class="frmInput">
                  <label>Destination Type:</label>
                  <select id="destNameSel" selected="selected">
                      <option value="Caribbean">Caribbean</option>
                      <option value="Casino">Casino</option>
                      <option value="Europe">Europe</option>
                      <option value="Family">Family</option>
                      <option value="Florida">Florida</option>
                      <option value="Golf">Golf</option>
                      <option value="Honeymoon">Honeymoon</option>
                      <option value="Mexico">Mexico</option>
                      <option value="Shopping">Shopping</option>
                      <option value="SpringBreak">Spring Break</option>
                      <option value="Sun">Sun</option>
                      <option value="Urban">Urban</option>
                  </select>
              </div>
              <!-- OR -->
              <!-- Flight -->
              <div id="fltDestCity" class="frmInput">
                  <label>Destination City:</label>
                  <select id="fltDestCitySel" selected="selected"> 
                      <option value="601722">Anaheim/Disneyland</option>
                      <option value="178232">Atlanta</option>
                      <option value="178234">Austin</option>
                      <option value="178239">Boston</option>
                      <option value="178247">Charlotte</option>
                      <option value="178248">Chicago</option>
                      <option value="178249">Cincinnati</option>
                      <option value="178250">Cleveland</option>
                      <option value="178253">Dallas</option>
                      <option value="178254">Denver</option>
                      <option value="178255">Detroit</option>
                      <option value="601750">Fort Lauderdale</option>
                      <option value="602729">Fort Myers</option>
                      <option value="HFD">Hartford</option>
                      <option value="180077">Hawaii (Oahu & Honolulu)</option>
                      <option value="178265">Houston</option>
                      <option value="178266">Indianapolis</option>
                      <option value="178273">Kansas City</option>
                      <option value="178276">Las Vegas</option>
                      <option value="178279">London</option>
                      <option value="178280">Los Angeles</option>
                      <option value="178286">Miami</option>
                      <option value="602647">Milwaukee</option>
                      <option value="178287">Minneapolis-St. Paul</option>
                      <option value="178292">New Orleans</option>
                      <option value="178293">New York City</option>
                      <option value="178294">Orlando/Disney World</option>
                      <option value="179898">Paris</option>
                      <option value="178297">Philadelphia</option>
                      <option value="178298">Phoenix</option>
                      <option value="601717">Pittsburgh</option>
                      <option value="178299">Portland (Oregon)</option>
                      <option value="180015">Providence</option>
                      <option value="RDU">Raleigh</option>
                      <option value="602688">Reno</option>
                      <option value="179899">Rome</option>
                      <option value="178303">San Antonio</option>
                      <option value="178304">San Diego</option>
                      <option value="178305">San Francisco</option>
                      <option value="180028">Santa Fe</option>
                      <option value="178307">Seattle</option>
                      <option value="178309">St. Louis</option>
                      <option value="6023509">Tampa</option>
                      <option value="178314">Toronto</option>
                      <option value="602986">Tucson (Arizona)</option>
                      <option value="178315">Vancouver</option>
                      <option value="178318">Washington DC</option>
                      <option value="601759">West Palm Beach</option>
                  </select>			
              </div>    
              <!-- OR -->
              <!-- Package and Hotels -->
              <div id="pkgDestCity" class="frmInput">
                  <label>Destination City:</label>
                  <select id="pkgDestCitySel" selected="selected">
                      <option value="601722">Anaheim/Disneyland</option>
                      <option value="178232">Atlanta</option>
                      <option value="178239">Boston</option>
                      <option value="178248">Chicago</option>
                      <option value="178253">Dallas</option>
                      <option value="178254">Denver</option>
                      <option value="601750">Fort Lauderdale</option>
                      <option value="602729">Fort Myers</option>
                      <option value="180073|180074|180075|180077">Hawaii</option>
                      <option value="178265">Houston</option>
                      <option value="180041">Lake Tahoe</option>
                      <option value="178276">Las Vegas</option>
                      <option value="178279">London</option>
                      <option value="178280">Los Angeles</option>
                      <option value="178286">Miami</option>
                      <option value="178287">Minneapolis-St. Paul</option>
                      <option value="601685">Myrtle Beach</option>
                      <option value="178292">New Orleans</option>
                      <option value="178293">New York City</option>
                      <option value="178294">Orlando/Disney World</option>
                      <option value="179898">Paris</option>
                      <option value="178297">Philadelphia</option>
                      <option value="178298">Phoenix</option>
                      <option value="602688">Reno</option>
                      <option value="179899">Rome</option>
                      <option value="178303">San Antonio</option>
                      <option value="178304">San Diego</option>
                      <option value="178305">San Francisco</option>
                      <option value="178307">Seattle</option>
                      <option value="6023509">Tampa</option>
                      <option value="178314">Toronto</option>
                      <option value="602986">Tucson (Arizona)</option>
                      <option value="178315">Vancouver  </option>
                      <option value="178318">Washington DC</option>
                      <option value="601759">West Palm Beach</option>
                  </select>			
              </div>    
          </div>

          <div id="mdbDealType" class="frmInput">
              <label>Deal Type:</label>
              <select id="mdbDealTypeSel">
                  <option value="205" selected="selected">Top Destinations</option>
                  <option value="206">Top Weekly Deals</option>
                  <option value="132">This Week's Hotel Deals</option>
                  <option value="207">Deals By Theme</option>
                  <option value="28">Best Car Deals</option>
                  <option value="20">Best Flight Deals</option>
                  <option value="12">Best Hotel Deals</option>
                  <option value="18">Best Package Deals</option>
                  <option value="182">Last Minute Car Deals</option>
                  <option value="29">Last Minute Hotel Deals</option>
              </select>
          </div>

          <div id="htlType" class="frmInput">
	          <label>Deal Type:</label>
	          <select id="htlTypeSel">
		          <option value="general" selected="selected">General</option>
		          <option value="luxury">Luxury</option>
		          <option value="last-minute">Last Minute</option>
	          </select>
          </div>

          <div id="pkgType" class="frmInput">
	          <label>Deal Type:</label>
              <select id="pkgTypeSel">
	              <option value="general" selected="selected">General</option>
	              <option value="luxury">Luxury</option>
	              <option value="last-minute">Last Minute</option>
              </select>
          </div>

          <div id="fltType" class="frmInput">
	          <label>Deal Type:</label>
	          <select id="fltTypeSel">
		          <option value="general" selected="selected">General</option>
		          <option value="last-minute">Last Minute</option>
	          </select>
          </div>
      </div>
  </div>
  <div id="footer">
	  <div id="footerLeftInn"><img src="http://www.yogageneration.com/~mvkazit/expedia/iexpedia/spacer.gif" width="7" height="21" /></div>
      <div id="footerRightInn">
    	  <table cellspacing="0" border="0" id="btnOptionsCnt">
        	  <tr>
            	  <td id="btnOk" width="50%" onclick="onClick_OptionsOk()" onmouseover="onMouseOver_Button(this);" onmouseout="onMouseOut_Button(this);">Get the deals!</td>
                <td class="divider"><img src="http://www.yogageneration.com/~mvkazit/expedia/iexpedia/bgBottomDivider.jpg" border="0"/></td>
                <td id="btnCancel" width="50%"  onclick="onClick_OptionsCancel()" onmouseover="onMouseOver_Button(this);" onmouseout="onMouseOut_Button(this);">Cancel</td>
            </tr>
    	  </table>
    	  <table cellspacing="0" border="0" id="btnFeedCnt">
        	  <tr>
            	  <td id="btnOk" width="50%" onclick="onClick_Options()" onmouseover="onMouseOver_Button(this);" onmouseout="onMouseOut_Button(this);">Other deals</td>
                <td class="divider"><img src="http://www.yogageneration.com/~mvkazit/expedia/iexpedia/bgBottomDivider.jpg" border="0"/></td>
                <td id="btnCancel" width="50%" onmouseover="onMouseOver_Button(this);" onmouseout="onMouseOut_Button(this);"><a id="saveFeed" href="#" target="_blank">Save these deals</a></td>
            </tr>
    	  </table>         
      </div>
      <div style="clear:both"></div>
  </div>
</div>

	]]>
	</Content>
</Module>