﻿/* ------------------------------------------------------------------------------------------  */
// SEARCH PAGE
/* ------------------------------------------------------------------------------------------  */
var hayjax_search_resultsBlock = null;
var hayjax_search_productTypeBlock = null;
var hayjax_search_categoriesBlock = null;
var hayjax_search_tagsBlock = null;
var hayjax_search_timeBlock = null;
var hayjax_search_keysBlock = null;
var hayjax_search_input_keys = null;

var hayjax_search_author= '';
var hayjax_search_type = '';
var hayjax_search_cats = '';
var hayjax_search_months = '';
var hayjax_search_tags = '';
var hayjax_search_keys = '';
var hayjax_search_page = '';
var hayjax_search_perPage = '';

var hayjax_search_selected_link = null;
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_reloadURL() {

	hayjax_search_productTypeBlock = hayjax_find('div_search_productTypeBlock'); 
	hayjax_search_categoriesBlock = hayjax_find('div_search_categoriesBlock'); 
	hayjax_search_tagsBlock = hayjax_find('div_search_tagsBlock');
	hayjax_search_timeBlock = hayjax_find('div_search_timeBlock');
    hayjax_search_keysBlock = hayjax_find('div_search_keysBlock');
    hayjax_search_input_keys = hayjax_find('search_input_keys');
    
    var mapping= {Book:'Books',Calendar:'Calendars',DVD:'DVDs',AudioBook:'Audio Books',Cards:'Cards',GeneralMerchandise:'Gift Collection',Event:'Events',allProducts:'All Products'};
    if(hayjax_search_productTypeBlock!=null) hayjax_search_productTypeBlock.innerHTML = mapping[hayjax_search_type.replace(' ','')];
    
    if(hayjax_search_categoriesBlock!=null) {
		hayjax_search_categoriesBlock.innerHTML = hayjax_search_cats.split(',').join('<br />');
		if(hayjax_search_categoriesBlock.innerHTML=='') hayjax_search_categoriesBlock.innerHTML='None';
    }
    if(hayjax_search_tagsBlock!=null) {
		hayjax_search_tagsBlock.innerHTML = hayjax_search_tags.split(',').join('<br />');
		if(hayjax_search_tagsBlock.innerHTML=='') hayjax_search_tagsBlock.innerHTML='None';
    }
    if(hayjax_search_timeBlock!=null) {
		hayjax_search_timeBlock.innerHTML = hayjax_search_months > 0 ? (hayjax_search_months == 1 ? 'Month' : hayjax_search_months + ' Months') : 'None';
		if(hayjax_search_timeBlock.innerHTML=='') hayjax_search_timeBlock.innerHTML='None';
    }
    if(hayjax_search_keysBlock!=null){ 
        hayjax_search_keysBlock.innerHTML = hayjax_search_keys;
    }
    if(hayjax_search_keysBlock!=null){ 
        hayjax_search_input_keys.value = hayjax_search_keys;
    }
    return 'partial_searchresults.aspx?type=' + hayjax_search_type + '&cats=' + hayjax_search_cats + '&tags=' + hayjax_search_tags + '&months=' + hayjax_search_months + '&page=' + hayjax_search_page + '&author=' + hayjax_search_author + '&keys=' + hayjax_search_keys + '&sort='+hayjax_search_sort + '&perPage=' + hayjax_search_perPage + '';
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_updateNavigation() {
	hayjax_search_renderProductTypes('hayjax_div_search_icons', hayjax_search_type);
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_changeType(newType) {
    
    hayjax_search_type = newType;
    hayjax_search_page = 1;
    hayjax_search_updateNavigation();
    hayjax_search_doIt();  
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_changeKeywords(keywords) {
    hayjax_search_keys = keywords;
    hayjax_search_page = 1;
    hayjax_search_doIt();
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_renderProductTypes(where, curType) {
    // hate having to do stuff like this
    var txts = [ 'Books','Calendars','DVDs','Audio Books','Cards','Gift Collection','Events' ];
    var typs = [ 'Book','Calendar','DVD','Audio Book','Cards','General Merchandise','Event' ];
    var imgs = [ 'books','calendars','dvds','cds','oracleCards','giftCollection','events' ];
    var i = 0;
    var output = '';
    var mark;
    for(i=0;i<typs.length; i++) {
        output+= '<div class="search_nav_icon"><p><a onClick="javascript:hayjax_search_changeType(\''+typs[i]+'\')">';
        mark = curType==typs[i];// | curType=='allProducts';
        if(mark) {
            output+='<img width="58" height="59" src="/images/icons/'+imgs[i]+'_bw.jpg"  />';            
        } else {
            output+='<img width="58" height="59" src="/images/icons/'+imgs[i]+'.jpg" onmouseout="javascript:this.src=\'images/icons/'+imgs[i]+'.jpg\';" onmouseover="javascript:this.src=\'images/icons/'+imgs[i]+'_bw.jpg\';" />';            
        }
        output+='</a><br /><a onClick="javascript:hayjax_search_changeType(\''+typs[i]+'\')" '+ (mark ? 'style="color:#404040;"' : '') +'>'+txts[i]+'</a>';
        output+='</p></div>';
    }
    output += '<div style="clear:left;"><p>';
    if(curType!='allProducts') {
		output += '<a onClick="javascript:hayjax_search_changeType(\'allProducts\')" '+(curType=='allProducts' ? 'style="color:#404040"' : '')+'><img src="images/allProductsFullButton.jpg" onmouseout="javascript:this.src=\'images/allProductsFullButton.jpg\';" onmouseover="javascript:this.src=\'images/allProductsFullButton_bw.jpg\';"></a>';
    } else {
		output += '<a onClick="javascript:hayjax_search_changeType(\'allProducts\')" '+(curType=='allProducts' ? 'style="color:#404040"' : '')+'><img src="images/allProductsFullButton_bw.jpg" onmouseout="javascript:this.src=\'images/allProductsFullButton_bw.jpg\';" onmouseover="javascript:this.src=\'images/allProductsFullButton.jpg\';"></a>';
    }    
    output += '</p></div>';
    hayjax_find(where).innerHTML = output;
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_toggleCat(link, newCat) {
    hayjax_search_cats = hayjax_search_toggleString(hayjax_search_cats, newCat);
    hayjax_search_page = 1;
    link.style["fontWeight"] = hayjax_search_cats.indexOf(newCat)>-1 ? 'bold' : 'normal';
    hayjax_search_doIt();
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_toggleMonths(link, months, prefix, total) {
    if (months != hayjax_search_months)
    {
		hayjax_search_months = months;
		for(i=1; i<=total; i++)
		{
			document.getElementById(prefix + i).style["fontWeight"] = 'normal';
		}
		link.style["fontWeight"] = 'bold';
	}
    else
    {
		hayjax_search_months = 0;
		link.style["fontWeight"] = 'normal';
	}
    hayjax_search_page = 1;
    hayjax_search_doIt();
}
/* ------------------------------------------------------------------------------------------  */

function hayjax_search_removeTags() {
    hayjax_search_tags = '';
    hayjax_search_page = 1;
    // what to do about highlighted tags...
	hayjax_search_doIt();
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_toggleTag(link, newTag) {
   hayjax_search_tags = hayjax_search_toggleString(hayjax_search_tags, newTag);
   hayjax_search_page = 1;
   link.style["fontWeight"] = hayjax_search_tags.indexOf(newTag)>-1 ? 'bold' : 'normal';
   hayjax_search_doIt();
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_toggleString(mainStr, subStr) {
    var result = '';
    var list = mainStr.split(',');
    var found = false;
    var i;
    for(i=0; i<list.length; i++) {
        if(list[i]!='') {
            if(list[i]!=subStr) {            
                if(result!='') result+=',';
                result+=list[i];                
            } else {
                found = true;
            }
        }
    }
    if(!found) {
        if(result!='') result+=',';
        result+=subStr;
    }
    return result;
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_setPage(page) {
    if(page>0)  {
        hayjax_search_page = page;
        hayjax_search_doIt();
    }
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_setPerPage(select) {
	var curItem = (hayjax_search_page-1) * hayjax_search_perPage;
    hayjax_search_perPage = select.options[select.selectedIndex].value;
    hayjax_search_page =  1;//Math.floor(1*curItem/hayjax_search_perPage)+1;
    hayjax_search_doIt();
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_setSort(select) {
    hayjax_search_sort = select.options[select.selectedIndex].value;
    hayjax_search_page = 1;
    hayjax_search_doIt();
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_doIt() {
	var hayjax_search_resultsBlock = hayjax_find('div_search_resultsBlock');
	if(hayjax_search_resultsBlock!=null) {
        var h = hayjax_search_resultsBlock.clientHeight;
        if(h==0) h = hayjax_search_resultsBlock.style.height;
	    hayjax_search_changeContent('<p style="height:'+h+'px">Searching...</p>');
	    hayjax_loadXMLDoc(hayjax_search_reloadURL(),hayjax_search_changeContent);
	}
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_search_changeContent(newContent,context) {
	var hayjax_search_resultsBlock = hayjax_find('div_search_resultsBlock');
    hayjax_search_resultsBlock.innerHTML = newContent;
}
/* ------------------------------------------------------------------------------------------  */
// AUTHORS
/* ------------------------------------------------------------------------------------------  */
function hayjax_authors_setToFrom(id,newFrom,newTo) {
    var cont = new Object();
    cont.targetID = id;
    hayjax_loadXMLDoc('partial_authorresults.aspx?from=' + newFrom + '&to=' + newTo, hayjax_authors_changeContent, cont);
}
function hayjax_authors_changeContent(newContent,context) {
    var hayjax_search_resultsBlock = hayjax_find(context.targetID);
    hayjax_search_resultsBlock.innerHTML = newContent;
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_sessionstatus_addToBasket(ids,imageNode, targetURL) {
	var cont = new Object;
	cont.image = imageNode;
	cont.targetURL = targetURL;
	hayjax_loadXMLDoc('partial_sessionstatus.aspx?add='+ids,hayjax_sessionstatus_changeContent,cont);
	if(imageNode!=null) {
	    imageNode.src='images/addingToBasketButton.gif';
	}
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_sessionstatus_changeContent(newContent,context) {
	var contentArea = hayjax_find('div_sessionstatus_contentblock'); 
	if(contentArea!=null) contentArea.innerHTML = newContent;	
	var exp;
	if(context!=null) {
	    try {
	        context.image.src='images/addedToBasketButton.gif';
	        if(context.targetURL!=null) {
				window.location = context.targetURL;
	        }
	    } catch(exp) {}
	} else {
	    hayjax_show_messageOverlay('Successfully added to basket');
	}
}
/* ------------------------------------------------------------------------------------------  */
// NEWS
/* ------------------------------------------------------------------------------------------  */
function hayjax_newsSearchPaged_changePage(page) {
	
	hayjax_loadXMLDoc('partial_NewsResultsPaged.aspx?page='+page,hayjax_newsSearchPaged_changeContent);	
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_newsSearchPaged_changeContent(newContent,context) {
	var contentArea = hayjax_find('div_news_resultsBlock'); 
	contentArea.innerHTML = newContent;		
}
/* ------------------------------------------------------------------------------------------  */
// EVENTS CALENDAR
/* ------------------------------------------------------------------------------------------  */
function hayjax_events_cal_changeMonth(m,y) {
	hayjax_loadXMLDoc('partial_EventCalendar.aspx?m='+m+'&y='+y,hayjax_events_cal_changeContent);	
}

function hayjax_events_cal_changeContent(newContent,context) {
	var contentArea = hayjax_find('events_calendar'); 
	contentArea.innerHTML = newContent;		
}

/* ------------------------------------------------------------------------------------------  */
// EVENTS
/* ------------------------------------------------------------------------------------------  */

function hayjax_events_changeSelection(eventId, slots, radioId, workshopId) {

	hayjax_set_radio_value('s_'+radioId, workshopId);
	hayjax_events_updateSelection(eventId, slots);
	
}
/* ------------------------------------------------------------------------------------------  */

function hayjax_events_toggleSelection(eventId, slots, radioId, workshopId) {

    var cur = hayjax_get_radio_value('s_'+radioId);
    var newVal = (cur==workshopId) ? '' : workshopId;
	hayjax_set_radio_value('s_'+radioId, newVal);
	hayjax_events_updateSelection(eventId, slots);
	
}
/* ------------------------------------------------------------------------------------------  */

var hayjax_events_lastQuote = new Date();
/* ------------------------------------------------------------------------------------------  */

function hayjax_events_updateSelection(eventId, slots) {
    hayjax_events_changeQuote('<p>Please wait whilst we verify your selection...</p>',null);
    var url = 'partial_eventselection.aspx?id=' + eventId + "&workshops=";
    var i;
    var ws = '';
    var img;
    var img2;
    var stat;
    var sls;
    var context = new Object;
    var selectedAll = true;
    for(i=0; i<slots.length; i++) {
        sls = document.getElementsByName(slots[i]);
        for (var j=0; j < sls.length; j++) {
            var v = sls[j].value.replace(/-/g,'_');
            if(v!='') {                
                img = hayjax_find('img_'+v);
                //img2 = hayjax_find('img2_'+v);
                stat = sls[j].checked ? 'images/selectedStatus.jpg' : 'images/availableStatus.jpg';
                if(img!=null) img.src = stat;
                //if(img2!=null) img2.src = stat;
            }
        }
        var k = hayjax_get_radio_value(slots[i]);
        if(k!='') {
            if(ws!='') {
                ws+=',';
            }
            ws+=k;            
        } else {
			selectedAll = false;
        }
    }
    if(selectedAll) {
		url+=ws;
		hayjax_events_lastQuote = new Date();
		context.requestStamped = new Date();    
		hayjax_loadXMLDoc(url,hayjax_events_changeQuote, context);
	} else {
		hayjax_events_changeQuote('<p>You must select a workshop from every slot.</p>',null);
	}
}
/* ------------------------------------------------------------------------------------------  */

function hayjax_get_radio_value(radioName) {
    var radios = document.getElementsByName(radioName);
    for (var i=0; i < radios.length; i++) {
        if (radios[i].checked) { return radios[i].value; }
    }
    return "";
}
/* ------------------------------------------------------------------------------------------  */

function hayjax_set_radio_value(radioName, radioValue, onUnchecked) {
	var curVal = hayjax_get_radio_value(radioName);
	if(curVal!=radioValue) {
		if(onUnchecked) onUnchecked(curVal);
	}
	var radios = document.getElementsByName(radioName);
    for (var i=0; i < radios.length; i++) {
		if(radios[i].value==radioValue) {
			radios[i].checked = true; //(radios[i].value==radioValue);
        }
    }
}
/* ------------------------------------------------------------------------------------------  */

function hayjax_events_changeQuote(newHTML,context) {
    if(context==null || context.requestStamped >= hayjax_events_lastQuote) {
        if(context!=null) hayjax_events_lastQuote = context.requestStamped;
        var blk = hayjax_find('div_eventquoteblock');
        blk.innerHTML = newHTML;
    }
}
/* ------------------------------------------------------------------------------------------  */

/* ------------------------------------------------------------------------------------------  */
// Stock Management
/* ------------------------------------------------------------------------------------------  */
function hayjax_sessionstatus_addStock(eventid,ids,imageNode,stockqty, availabilityNode, reservedNode, soldNode, txtBox) {
    var addingImage = 'images/btnAdjusting.jpg';
    if(imageNode.src.indexOf(addingImage)<0) {
	    $("#updateProgress").show();
	    var cont = new Object;
	    cont.image = imageNode;
	    cont.eventId = eventid;
	    cont.availabilityNode = availabilityNode;
	    cont.reservedNode = reservedNode;
	    cont.soldNode = soldNode;
	    cont.txtBox = txtBox;

	    hayjax_loadXMLDoc('partial_stocksessionstatus.aspx?eventid='+ eventid+'&add='+ids+'&qty='+stockqty,hayjax_stocksessionstatus_changeContent,cont);
	    // change image to 'processing' image
	    imageNode.src=addingImage;
    } else {
        window.alert('Please wait for previous action to complete.');
    }
}
/* ------------------------------------------------------------------------------------------  */
function hayjax_stocksessionstatus_changeContent(newContent,context) {
  
	if(context!=null) {
	        var data = newContent.split(',');
	        $("#updateProgress").hide();
	        if(data[0]=='Success!') {
	            context.image.src='images/btnAdjust.jpg';
	            if(context.availabilityNode) {
	                hayjax_find(context.availabilityNode).innerHTML = data[1];
	                hayjax_find(context.reservedNode).innerHTML = data[2];
	                hayjax_find(context.soldNode).innerHTML = data[3];
	                $("#" + context.txtBox).val("");
	            }
	            
	        } else {
	            context.image.src='images/btnFailed.jpg';
	        }
	} 
}

/* ------------------------------------------------------------------------------------------  */



